How Does the Jacobian Matrix Impact Collision Response in Physics Engines?

  • Thread starter Thread starter g3ronimo
  • Start date Start date
  • Tags Tags
    Jacobian
AI Thread Summary
Creating a physics engine involves understanding collision response and the use of matrices, particularly the Jacobian matrix. The sequential impulse solver, attributed to Erin Catto, is recommended for solving contact constraints effectively, focusing on how constraints are solved rather than their mathematical form. For better physical accuracy, exploring resources on the sequential impulse solver and the projected Gauss-Seidel method can be beneficial. While Box2D implements a 2D version, Bullet offers a 3D implementation that utilizes Jacobian formulations. Resources like Brian Mirtich's work may provide further insights into these concepts.
g3ronimo
Messages
3
Reaction score
0
Hello,
I'm trying to make my own physics engine. I've already made one with momentum and an very easy
collision solver, but it was creepy and full of bugs because I solved the contacts one after another.
Then I read about the difference between iterative and single pass algotrithms and I tried to get into some deeper math but I was definitely limited by my little knowledge in matrices. So I started to improve this but apart from learning the basic handling with matrices I have some problems understanding the Jacobian matrix and its connection to the collision response. Could you recommend
me some "simpy explained" resources on this topic? I had a look into Game Physics from David Eberly
but the math required for this book is too heavy for me in moment. I am familiar with differentation
and things like that from school but It's hard for me to master resources with such a strong level of
abstraction.

Thanks in advance and excuse for my beginner english:)
 
Physics news on Phys.org
Could you give me an example how to use it with forces? ( and or torques )
 
g3ronimo said:
Hello,
I'm trying to make my own physics engine. I've already made one with momentum and an very easy
collision solver, but it was creepy and full of bugs because I solved the contacts one after another.
Then I read about the difference between iterative and single pass algotrithms and I tried to get into some deeper math but I was definitely limited by my little knowledge in matrices. So I started to improve this but apart from learning the basic handling with matrices I have some problems understanding the Jacobian matrix and its connection to the collision response. Could you recommend
me some "simpy explained" resources on this topic? I had a look into Game Physics from David Eberly
but the math required for this book is too heavy for me in moment. I am familiar with differentation
and things like that from school but It's hard for me to master resources with such a strong level of
abstraction.

Thanks in advance and excuse for my beginner english:)

I don't think moving to a Jacobian form will help you much, providing that what you're doing is physically correct.

The key to solving your contact constraints is how you solve them, not the form that they're in. The method that you're most likely to be interested is the incredibly simple sequential impulse solver attributed to Erin Catto.

One thing that will be useful to you, that you may not find as you study this, is as you iterate through your solver, if the required impulse at a contact is ever negative, then you should completely remove the accumulated impulse from that contact.

Another thing that isn't often discussed is how to solve for any residual interpenetration. It's less critical, but you can just follow a similar method for position too once you've solved for velocity.
 
Last edited:
craigi said:
The key to solving your contact constraints is how you solve them, not the form that they're in. The method that you're most likely to be interested is the incredibly simple sequential impulse solver attributed to Erin Catto.

Can I read about it somewhere or do I have to check the Box2d source code? My main purpose
was to get more physical accuracy and in this context Erin Catto always mentioned the Jacobian.
I think he never really described his solver or maybe I just missed it.:confused:
 
g3ronimo said:
Can I read about it somewhere or do I have to check the Box2d source code? My main purpose
was to get more physical accuracy and in this context Erin Catto always mentioned the Jacobian.
I think he never really described his solver or maybe I just missed it.:confused:

I don't have a good reference for it, but if you search "sequential impulse solver", you should find it. It's really not very complicated. You can guess how it works from its name.

Box2D, as its name suggests is 2 dimensional. The Bullet source code implements it in 3D and uses a Jacobian formulation, if I recall correctly.

I don't know if the sequential impulse solver was ever presented formally. Try searching for Brian Mirtich too.

There is a formal method called projected Gauss-Seidel, but they can be demonstrated to be equivalent and the sequential impulse approach is much easier conceptualise. If you can't find a good reference for it, then you could examine the PGS method and you should be able to see how it works.
 
Last edited:
Thread 'Gauss' law seems to imply instantaneous electric field propagation'
Imagine a charged sphere at the origin connected through an open switch to a vertical grounded wire. We wish to find an expression for the horizontal component of the electric field at a distance ##\mathbf{r}## from the sphere as it discharges. By using the Lorenz gauge condition: $$\nabla \cdot \mathbf{A} + \frac{1}{c^2}\frac{\partial \phi}{\partial t}=0\tag{1}$$ we find the following retarded solutions to the Maxwell equations If we assume that...
Thread 'A scenario of non-uniform circular motion'
(All the needed diagrams are posted below) My friend came up with the following scenario. Imagine a fixed point and a perfectly rigid rod of a certain length extending radially outwards from this fixed point(it is attached to the fixed point). To the free end of the fixed rod, an object is present and it is capable of changing it's speed(by thruster say or any convenient method. And ignore any resistance). It starts with a certain speed but say it's speed continuously increases as it goes...
Maxwell’s equations imply the following wave equation for the electric field $$\nabla^2\mathbf{E}-\frac{1}{c^2}\frac{\partial^2\mathbf{E}}{\partial t^2} = \frac{1}{\varepsilon_0}\nabla\rho+\mu_0\frac{\partial\mathbf J}{\partial t}.\tag{1}$$ I wonder if eqn.##(1)## can be split into the following transverse part $$\nabla^2\mathbf{E}_T-\frac{1}{c^2}\frac{\partial^2\mathbf{E}_T}{\partial t^2} = \mu_0\frac{\partial\mathbf{J}_T}{\partial t}\tag{2}$$ and longitudinal part...
Back
Top