<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://pybullet.org/Bullet/phpBB3/app.php/feed/topic/1279" />

	<title>Real-Time Physics Simulation Forum</title>
	
	<link href="https://pybullet.org/Bullet/phpBB3/index.php" />
	<updated>2007-10-04T07:06:48+00:00</updated>

	<author><name><![CDATA[Real-Time Physics Simulation Forum]]></name></author>
	<id>https://pybullet.org/Bullet/phpBB3/app.php/feed/topic/1279</id>

		<entry>
		<author><name><![CDATA[Jan Bender]]></name></author>
		<updated>2007-10-04T07:06:48+00:00</updated>

		<published>2007-10-04T07:06:48+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5731#p5731</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5731#p5731"/>
		<title type="html"><![CDATA[Re: Impulse-based dynamic simulation library (IBDS)]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5731#p5731"><![CDATA[
Hi, <br><blockquote class="uncited"><div>Hi,<br><br>Since you didn't use the methods described in "Fast Dynamic Simulation of Multi-Body Systems Using Impulses" and "Impulse-based dynamic simulation in linear time" are not yet integrated into the library", which paper can this method be found? Are the methods described in these papers the same method, but "updated" continuities?</div></blockquote>The linear-time method is integrated in the actual version of IBDS. So you can try it. The other one can be found in the paper "Fast Dynamic Simulation of Multi-Body Systems Using Impulses". It will be integrated soon too. <br><br>Jan<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=818">Jan Bender</a> — Thu Oct 04, 2007 7:06 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[bronxbomber92]]></name></author>
		<updated>2007-10-04T01:25:14+00:00</updated>

		<published>2007-10-04T01:25:14+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5728#p5728</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5728#p5728"/>
		<title type="html"><![CDATA[Re: Impulse-based dynamic simulation library (IBDS)]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5728#p5728"><![CDATA[
<blockquote class="uncited"><div>Hi, <br><br>after much work the first version of my impulse-based dynamic simulation library called IBDS is online:<br><br><a href="http://www.impulse-based.de" class="postlink">http://www.impulse-based.de</a><br><br>The impulse-based dynamic simulation is a new method for the simulation of articulated rigid body systems that I have developed during my PhD. It can handle all kinds of joints, velocity constraints, collisions and contacts with friction. The iterative method even can handle models with loops. <strong class="text-strong">The methods described in "Fast Dynamic Simulation of Multi-Body Systems Using Impulses" and "Impulse-based dynamic simulation in linear time" are not yet integrated into the library</strong> but they will soon follow. <br><br>At the moment I just provide project files for VS2005 and VS2003. If you need files for Linux or Mac OS then either wait a bit or make them by your own and send them to me  <img class="smilies" src="https://pybullet.org/Bullet/phpBB3/images/smilies/icon_wink.gif" width="15" height="15" alt=":wink:" title="Wink"> <br><br>Jan</div></blockquote>Hi, <br><br>Since you didn't use the methods described in "Fast Dynamic Simulation of Multi-Body Systems Using Impulses" and "Impulse-based dynamic simulation in linear time" are not yet integrated into the library", which paper can this method be found? Are the methods described in these papers the same method, but "updated" continuities?<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=2017">bronxbomber92</a> — Thu Oct 04, 2007 1:25 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Jan Bender]]></name></author>
		<updated>2007-09-04T10:02:27+00:00</updated>

		<published>2007-09-04T10:02:27+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5270#p5270</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5270#p5270"/>
		<title type="html"><![CDATA[Re: Impulse-based dynamic simulation library (IBDS)]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5270#p5270"><![CDATA[
<blockquote class="uncited"><div>Just FYI, there's probably a better method out there if you're looking to accurately integrate rotations including the gyroscopic (coriolis) effects:<br><br><a href="http://math.ucsd.edu/~sbuss/ResearchWeb/accuraterotation/paper.pdf" class="postlink">http://math.ucsd.edu/~sbuss/ResearchWeb ... /paper.pdf</a><br><br>In a nutshell, Mr. Buss provides both an "augmented" 2nd order method and a 3rd order method, both of which give better results than RK4 at a fraction of the cost.</div></blockquote>Thanks for this hint. I will take a look at it. <br><br>Jan<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=818">Jan Bender</a> — Tue Sep 04, 2007 10:02 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[clanzotti]]></name></author>
		<updated>2007-09-03T13:51:16+00:00</updated>

		<published>2007-09-03T13:51:16+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5252#p5252</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5252#p5252"/>
		<title type="html"><![CDATA[Re: Impulse-based dynamic simulation library (IBDS)]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5252#p5252"><![CDATA[
Hi all,<br><br>Does anyone tried to implement the method described in the paper? I've done a simple test using Scilab (A simple 1d chain) but i get strange bevahior. I've not digged too much into the details and maybe i'm doing something wrong.<br><br>I found the paper interesting (even if some points are a little unclear). <br><br>Maybe Rony can give use some tips?<br><br>P.S. I can upload the Scilab's implementation if some of you are interested.<br><br>Best Regards,<br><br>Carlo Lanzotti<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=111">clanzotti</a> — Mon Sep 03, 2007 1:51 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Dirk Gregorius]]></name></author>
		<updated>2007-08-27T13:44:25+00:00</updated>

		<published>2007-08-27T13:44:25+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5181#p5181</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5181#p5181"/>
		<title type="html"><![CDATA[Impulse-based dynamic simulation library (IBDS)]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5181#p5181"><![CDATA[
Thanks Rony!<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14">Dirk Gregorius</a> — Mon Aug 27, 2007 1:44 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[ronygold]]></name></author>
		<updated>2007-08-27T13:19:50+00:00</updated>

		<published>2007-08-27T13:19:50+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5180#p5180</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5180#p5180"/>
		<title type="html"><![CDATA[Impulse-based dynamic simulation library (IBDS)]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5180#p5180"><![CDATA[
<blockquote class="uncited"><div>My question is how you find the bending springs?</div></blockquote>Once inextensibility constraints are applied, the mesh can be triangulated. In fact, the mesh can start as triangular and the constraints can be applied to a subset of the edges.  Then, you can use any triangle based bending force.<br><br>We used hinge based forces such as "Discrete Shells" (which is the same as the bending force described by Bridson in 2003). Since the mesh deforms almost isometrically, you can also use simpler (but more efficient) hinge based models such as "cubic shells" or "A Quadratic Bending Model for Inextensible Surfaces". <br><br>There exist quad based bending forces such as the one used in "Stable but Responsive Cloth" which we also used. For our sparse set of triangles we did not apply bending resistance, we could have done better job here, like using triangular based force for them, but since we saw no visual artifact from not doing so, we did not bother.<br><br>Regarding our models, I doubt if we can share them. I will have to ask OptiTex -- if they will agree, I will put them on-line and post a message in this forum.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=1882">ronygold</a> — Mon Aug 27, 2007 1:19 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Dirk Gregorius]]></name></author>
		<updated>2007-08-26T11:07:44+00:00</updated>

		<published>2007-08-26T11:07:44+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5177#p5177</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5177#p5177"/>
		<title type="html"><![CDATA[Impulse-based dynamic simulation library (IBDS)]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5177#p5177"><![CDATA[
Maybe you allow for one more question regarding cloth setup. You write that you cloth mesh was imported as <em class="text-italics">quat-dominant</em> mesh. I like the idea and espaecially your argumentation about the benefits of this approach. My question is how you find the bending springs? So far I would create one constraint for each edge and IIRC two shear springs for each diagonal in a quad? I should maybe also ask how you handle the seldom triangle faces for completeness.<br><br>For our projects I simple used triangle meshes since this is easy for an artist to model. All meshes could be flaged as cloth and would then be handled by the cloth simulation. Creating the physical model is simple from this data. I create one constraint for each edge and a "softer" constraint for each diagonal across a shared edge between two adjacent triangles (like Bridson). <br><br>Maybe you can share some of you experiences with cloth authoring? You mention models from OptiTex - are those models available? It might be an interesting experiment to run the models from your paper through a much simpler solver and compare the results...<br><br><br>Cheers,<br>-Dirk<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14">Dirk Gregorius</a> — Sun Aug 26, 2007 11:07 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[ronygold]]></name></author>
		<updated>2007-08-25T20:08:48+00:00</updated>

		<published>2007-08-25T20:08:48+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5175#p5175</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5175#p5175"/>
		<title type="html"><![CDATA[Impulse-based dynamic simulation library (IBDS)]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5175#p5175"><![CDATA[
Thanks for the feedback and the input regarding real time cloth simulation!<br><blockquote class="uncited"><div>Why do you treat them separately and not in the same relaxation loop? E.g. if I would use a chain subsolver I would relax the chains with the contact constraints together.</div></blockquote>Ideally one would like to solve for both inextensibility and collision reaction together, we tried to do it but found that it is something hard to get (with reasonable performance) and that the velocity filter worked well enough for our needs.<br><br>We tried to do this in two ways: <br>1. to treat collisions as constraints and to add them to the linear system and solve for inextensibility and constraints at once. This did not work very well for several reasons: 1. it was slow because the number of constraints changes for every iteration and we had to reallocate my matrix for every time step/iteration. 2. We encountered  some robustness and convergence problems, especially with edge-edge collisions for moving objects. 3. Using this approach, one can get into over constrained or contradicting constraints situations which are hard to deal with.<br><br>2. Apply collision reaction after every linear solve. This approach worked, but it slowed the convergence considerably which made the overall performance slower.<br><blockquote class="uncited"><div>the most basic Newton method uses a new function value f(x_n) and function derivative f'(x_n) each iteration. Are you changing to a new function each iteration: f1(x_1), f2(x_2), ...? </div></blockquote>You are correct, each 'fast projection' iteration considers a different 'f'. For every such 'f' a single newton iteration is performed and then a new 'f' is computed. The process is repeated until the constraints are met up to our threshold. This is not the same as performing several Newton iterations on the same 'f'. See section 4.3 in our paper for more details about why and how this 'f' changes.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=1882">ronygold</a> — Sat Aug 25, 2007 8:08 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Dirk Gregorius]]></name></author>
		<updated>2007-08-25T18:02:01+00:00</updated>

		<published>2007-08-25T18:02:01+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5174#p5174</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5174#p5174"/>
		<title type="html"><![CDATA[Impulse-based dynamic simulation library (IBDS)]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5174#p5174"><![CDATA[
I agree with Erin's numbers. In Lair we did only simple flags and banners which could be solved very fast and also could be solved in parallel on several SPUs. This was never a bootleneck so I didn't made any real measurements. I think the upper limit of simulataineous solved banners was 200 during large battles where the vertex count varies maybe from 100 - 600. Also banners with more than 500 vertices were the minority.<br><blockquote class="uncited"><div>Yes, collision reaction is another velocity filter pass. </div></blockquote>Why do you treat them separately and not in the same relaxation loop? E.g. if I would use a chain subsolver I would relax the chains with the contact constraints together. If you look at this from this perspective I would argue that your stretch solver  is just an even "stiffer" subsolver? This is just out of curiousity, your cloth looks really amazing!<br><br>Cheers,<br>-Dirk<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14">Dirk Gregorius</a> — Sat Aug 25, 2007 6:02 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Erin Catto]]></name></author>
		<updated>2007-08-25T17:35:18+00:00</updated>

		<published>2007-08-25T17:35:18+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5173#p5173</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5173#p5173"/>
		<title type="html"><![CDATA[Impulse-based dynamic simulation library (IBDS)]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=5173#p5173"><![CDATA[
Hi Rony,<br><br>Thanks for visiting the forum and answering some of our questions.<br><br>Our system can simulate roughly 2 vertices per microsecond (3.5 on a dual-core). For a game running at 60Hz, we have 16.6 milliseconds per frame. For cloth we are willing to give about 1ms per frame. So that's roughly 2000-3500 total vertices on screen.<br><blockquote class="uncited"><div>Fast projection method is NOT equivalent to a Newton solve, as fast projection changes its target function for every iteration (which does not happen during Newton's iterations). </div></blockquote>I don't understand your assertion. According to this:<br><br><a href="http://en.wikipedia.org/wiki/Newton%27s_method" class="postlink">http://en.wikipedia.org/wiki/Newton's_method</a><br><br>the most basic Newton method uses a new function value f(x_n) and function derivative f'(x_n) each iteration. Are you changing to a new function each iteration: f1(x_1), f2(x_2), ...?<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=12">Erin Catto</a> — Sat Aug 25, 2007 5:35 pm</p><hr />
]]></content>
	</entry>
	</feed>
