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:
Hello! Let's say I have a cavity resonant at 10 GHz with a Q factor of 1000. Given the Lorentzian shape of the cavity, I can also drive the cavity at, say 100 MHz. Of course the response will be very very weak, but non-zero given that the Loretzian shape never really reaches zero. I am trying to understand how are the magnetic and electric field distributions of the field at 100 MHz relative to the ones at 10 GHz? In particular, if inside the cavity I have some structure, such as 2 plates...
Back
Top