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

  • Thread starter g3ronimo
  • Start date
  • Tags
    Jacobian
In summary, the conversation discusses the speaker's attempts to create their own physics engine, specifically focusing on solving contact constraints and understanding the Jacobian matrix and its connection to collision response. They mention their limited knowledge in matrices and request resources for a simplified explanation. The conversation also touches on the sequential impulse solver and its effectiveness in solving contact constraints, with a recommendation to search for it and Brian Mirtich for more information.
  • #1
g3ronimo
3
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
  • #3
Could you give me an example how to use it with forces? ( and or torques )
 
  • #4
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:
  • #5
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:
 
  • #6
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:

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

1. What is the Jacobian?

The Jacobian is a mathematical concept used in multivariate calculus to represent the relationship between two sets of variables. It is a matrix of first-order partial derivatives that describes how small changes in the input variables affect the output variables of a function.

2. How is the Jacobian used in science?

The Jacobian is used in various scientific fields, including physics, engineering, and economics. It is commonly used in the study of fluid dynamics, optimization problems, and in the analysis of complex systems.

3. What is the importance of understanding the Jacobian?

Understanding the Jacobian is crucial for solving problems involving multiple variables and functions. It allows for the calculation of important quantities such as the gradient, which is used in optimization algorithms. Additionally, it helps in understanding the behavior of a system and making predictions.

4. How is the Jacobian calculated?

The Jacobian is calculated by taking the partial derivatives of each output variable with respect to each input variable and arranging them in a matrix. The resulting matrix is known as the Jacobian matrix, and the determinant of this matrix is called the Jacobian determinant.

5. What are some common applications of the Jacobian?

The Jacobian has many applications in science, including in physics (for calculating forces and energy), economics (for analyzing supply and demand), and computer graphics (for transforming objects in 3D space). It is also used in machine learning and robotics for tasks such as inverse kinematics and motion planning.

Similar threads

  • General Math
Replies
11
Views
1K
Replies
14
Views
1K
  • STEM Academic Advising
Replies
11
Views
2K
Replies
8
Views
249
Replies
6
Views
189
  • STEM Career Guidance
Replies
21
Views
897
Replies
2
Views
2K
  • STEM Academic Advising
Replies
24
Views
2K
  • Differential Equations
Replies
1
Views
4K
  • Thermodynamics
Replies
5
Views
1K
Back
Top