Code Monkey home page Code Monkey logo

Comments (5)

jrouwe avatar jrouwe commented on May 23, 2024 1

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.

jrouwe avatar jrouwe commented on May 23, 2024

Hello,

Do you have a practical use case where the gyroscopic forces are important?

from joltphysics.

akb825 avatar akb825 commented on May 23, 2024

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.

jrouwe avatar jrouwe commented on May 23, 2024

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.

akb825 avatar akb825 commented on May 23, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.