<p>Thanks a lot for your attention to this question in advance!</p>

<p>It is my first try to ask for help on this amazing StackExchange. If I do something inappropriate, please point it out directly so that I can correct this question to be better.</p>

<p>Please let me clear my background first: Recently I am investigating the simulation of rigid bodies.It's really interesting! </p>

<p>Till now, I have implemented 3 different kinds of rigid body/multibody simulators, one of them is by Featherstone method, one of them is by Lagrangian method(Generalized coordinates), and the left one is simply for isolated rigid bodies governed by Newton-Euler equations, respectively。</p>

<p>I use bullet as a collision detection backend in my simulator and begin to implement the collision resolving algorithms(for example, interactive Sequential Impulse or MLCP problem then solve it by PGS, etc) by myself.</p>

<p><strong>The question</strong>: in lots of papers and books, people mentioned 2 different concepts. They say that the rigid body simulation can be roughly classified into "constraint-based" and "impulse-based", later then they reference some famous papers of Mirtich or David Baraff... For example the book "Physics-based animation" written by Kenny Erleben in 2005, chapter 6 and chapter 7.</p>

<p><strong>But I really can not get the point. I felt quite hard to distinguish these 2 concepts "constraint-based" and "impulse-based".</strong> It nearly drove me crazy. </p>

<p>I can use a constraint solver in collision resolving to solve the contact impulse or contact force then push the contacting objects away.</p>

<p>I can also use a constraint solver between rigid bodies and make them into a chain connected by joints. </p>

<p>I can also calculate the force in contact points or user-customed external force and forward the simulation from the second-order "acceleration" term, or vice versa calculate the impulse and drive my simulator from the first-order "velocity".</p>

<p>Would you kindly please help me to sort out my confused thoughts? :(</p>

CC BY-SA 4.0
2020-06-18T10:52:16.767Z
I think this is the wrong community for your question since it is not really about computer graphics. I think [Game Development](https://gamedev.stackexchange.com/) might be better suited for your question.
wychmaster
CC BY-SA 4.0
2020-06-18T11:34:52.530Z
Thanks a lot for your reply! Maybe I should move it to GameDev StackExchange. Btw, does physical-based simulation belong to Computer Graphic Communnity? :O
Xudong
CC BY-SA 4.0
2020-06-18T11:58:29.027Z
I don't think so. See [this link](https://computergraphics.stackexchange.com/help/on-topic). This site is mainly about ... well, computer graphics. So if your question would be about turning a simulation result or animated character into a visual representation, that would be a topic for this community. But purely simulation/animation related questions are discussed in other StackExchange network sites.
wychmaster
CC BY-SA 4.0
2020-06-18T12:15:11.367Z
Thanks a lot for your patient explanation! Though I still felt a little hard to understand the exactly difference between them, I still will move this question to another place. :D
Xudong
CC BY-SA 4.0
2020-07-14T06:16:55.690Z
How about physics stack exchange?
Felipe Gutierrez
<simulation>
Confusion about the concepts of "constraint-based" and "impulse-based" for rigidbody simulation
Xudong
# Confusion about the concepts of "constraint-based" and "impulse-based" for rigidbody simulation

(Asked by: username_0 on 2020-06-17)

Thanks a lot for your attention to this question in advance!

It is my first try to ask for help on this amazing StackExchange. If I do something inappropriate, please point it out directly so that I can correct this question to be better.

Please let me clear my background first: Recently I am investigating the simulation of rigid bodies.It's really interesting!

Till now, I have implemented 3 different kinds of rigid body/multibody simulators, one of them is by Featherstone method, one of them is by Lagrangian method(Generalized coordinates), and the left one is simply for isolated rigid bodies governed by Newton-Euler equations, respectively。

I use bullet as a collision detection backend in my simulator and begin to implement the collision resolving algorithms(for example, interactive Sequential Impulse or MLCP problem then solve it by PGS, etc) by myself.

**The question**: in lots of papers and books, people mentioned 2 different concepts. They say that the rigid body simulation can be roughly classified into "constraint-based" and "impulse-based", later then they reference some famous papers of Mirtich or David Baraff... For example the book "Physics-based animation" written by Kenny Erleben in 2005, chapter 6 and chapter 7.

**But I really can not get the point. I felt quite hard to distinguish these 2 concepts "constraint-based" and "impulse-based".** It nearly drove me crazy.

I can use a constraint solver in collision resolving to solve the contact impulse or contact force then push the contacting objects away.

I can also use a constraint solver between rigid bodies and make them into a chain connected by joints.

I can also calculate the force in contact points or user-customed external force and forward the simulation from the second-order "acceleration" term, or vice versa calculate the impulse and drive my simulator from the first-order "velocity".

Would you kindly please help me to sort out my confused thoughts? :(

**Tags:** simulation

> **Comments:**
> **username_1**: I think this is the wrong community for your question since it is not really about computer graphics. I think [Game Development](https://gamedev.stackexchange.com/) might be better suited for your question.  
> **username_0**: Thanks a lot for your reply! Maybe I should move it to GameDev StackExchange. Btw, does physical-based simulation belong to Computer Graphic Communnity? :O  
> **username_1**: I don't think so. See [this link](https://computergraphics.stackexchange.com/help/on-topic). This site is mainly about ... well, computer graphics. So if your question would be about turning a simulation result or animated character into a visual representation, that would be a topic for this community. But purely simulation/animation related questions are discussed in other StackExchange network sites.  
> **username_0**: Thanks a lot for your patient explanation! Though I still felt a little hard to understand the exactly difference between them, I still will move this question to another place. :D  
> **username_2**: How about physics stack exchange?  

---

## 0 answers

