Comments (5)
You're right, there is an effect when the object has 2 different axis of inertia too, it just doesn't exhibit the Dzhanibekov effect. In any case the gyroscopic forces are now implemented in the same way as Bullet or PhysX.
from joltphysics.
Hello,
Do you have a practical use case where the gyroscopic forces are important?
from joltphysics.
For my own immediate usage, I'm in the early process of integrating physics into my project, part of which includes having a generalized interface that makes it easy to swap out the underlying physics engine as needed. When trying to ensure as much feature parity as possible, and using Jolt, Bullet, and PhysX as references, this was one hole that I noticed for Jolt.
That said, there are a few practical use cases that come to mind:
- You've recently added some experimental motorcycle vehicle support. Given that gyroscopic forces on the wheels are what keep two-wheeled vehicles upright in real life, this could allow for more accurate simulations.
- In zero-gravity environments gyroscopic forces would be more pronounced, as many (most?) objects will have spin and without the influence of gravity the effect will be more noticeable in the motion of objects.
- Simulation of a spinning top would be a rather obvious example. If you wanted to create a physics-based Beyblade (or legally distinct equivalent 😉) game, for example, gyroscopic forces would be required.
from joltphysics.
It was easy to add, so I added it but:
You've recently added some experimental motorcycle vehicle support. Given that gyroscopic forces on the wheels are what keep two-wheeled vehicles upright in real life, this could allow for more accurate simulations.
The vehicles don't use rotating rigid bodies for wheels, they fake wheels by doing ray/shape casts. This gives more control over the simulation but doesn't allow this effect. B.t.w. gyroscopic forces only occur when an object has 3 different moments of inertia but wheels only have 2. I think this is a nice video explaining the effect: https://www.youtube.com/watch?v=1VPfZ_XzisU
Simulation of a spinning top would be a rather obvious example. If you wanted to create a physics-based Beyblade (or legally distinct equivalent 😉) game, for example, gyroscopic forces would be required.
Also this would normally not see an effect since tops are (close to) symmetric around their rotation axis so only have 2 different moments of inertia.
from joltphysics.
Thanks for the commit and the instructional video.
B.t.w. gyroscopic forces only occur when an object has 3 different moments of inertia but wheels only have 2.
Based on the video and this clarification, I think you're referring to the "tennis racket" effect as described in the video. In these cases I described for the motorcycle or top, my understanding (granted from high school physics quite some time ago) was that the gyroscopic effect would try to keep the rotation along the largest moment of inertia. So in the case of a rotating disk (like a wheel or a wide top), with two moments of inertia as you describe, it would try to keep rotation oriented with the axis perpendicular to the disk and could counteract the forces of gravity, such as keeping a two-wheeled vehicle (at least one that is using rigid bodies for the wheels) upright or a top from toppling over.
Is this a separate force, or a subset of what you're describing and already covered with your commit? I just wanted to make sure we're using the same terminology and I'm not misunderstanding either what you're describing or the gyroscopic forces implemented by other engines such as Bullet or PhysX.
from joltphysics.
Related Issues (20)
- CMakeLists.txt for cmake HOT 4
- How is Jolt with networked games?
- Building with clang using ninja on windows HOT 5
- Use standard types HOT 2
- SixDOFConstraint needs to be able to have non-symmetrical rotation limits
- Toggling manifold reduction doesn't result in any contact callbacks HOT 2
- Mouse input is too sensitive when running samples on a remote machine over Parsec HOT 5
- [Feature Request] Soft-soft collisions and self-collisions HOT 3
- MeshShape: SaveBinaryState and sRestoreFromBinaryState dont work like intended HOT 2
- Performance regression with 9d63f5a2d1b9e426a54dce6c8979e22ff6004eba HOT 9
- Speculative contact distance affects sensors HOT 1
- Core.h wasn't updated to reflect on the new version HOT 1
- Jolt Complilation Fails on Manjaro Linux HOT 2
- Incorrect moment of inertia for capsule HOT 4
- Soft bodies assert when colliding with ragdolls HOT 4
- Should BodyInterface::MoveKinematic check for SucceededAndIsInBroadPhase ? HOT 2
- Weird angular impulse behaviour (rotational inertia)
- The simulation runs too fast HOT 2
- Build fails using default CMakeLists HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from joltphysics.