News for hackers. Stuff that matters.
Re:Nphysics – 2 and 3-dimensional rigid body physics engine ... by santaclaus on Sunday September 01, 2013 @10:39PM (#6313199)
How does the code handle the jump from SE(2) to SE(3) in a clean fashion? Pretty much any integrator you cook up will keep your configuration in SE(2), but a discrete integrator of the Newton-Euler equations takes a bit more care.
Re:Nphysics – 2 and 3-dimensional rigid body physics engine ... by kyzyl on Monday September 02, 2013 @03:07AM (#6313826)
So, I don't know Rust very well and their code is not really documented at all, so this is just a guess. But...

It seem that the default world container assigns an integrator called "BodySmpEulerIntegrator", for which I can't seem to find the source. In any case, with a name like that I would have two predictions:

a) 'Smp' stands for 'simple' in which case this would be a stock/naive/vanilla Euler integrator. If that's indeed true, then I suspect the answer is that it will NOT handle the transition to SE(n>2), as they tend to blow up when the Hamiltonian becomes at all stiff. That is usually the case for your standard 6N+2 dof system in 3D.

b) 'Smp' stands for 'symplectic', which would make the default integrator some form of symplectic euler integrator. To my knowledge any SI should handle a 3D non-timevariant, non-chaotic Hamiltonian. This seems much more likely, given the amount of effort they've put in. Indeed, if you look at the examples that have a 2- and 3-D version, they don't seem to reassign the integrator.

That's a lot of guess-work on my part, though.

Re:Nphysics – 2 and 3-dimensional rigid body physics engine ... by unwind on Monday September 02, 2013 @05:42AM (#6314321)
This would appear to be the source of BodySmpEulerIntegrator, or at least a starting-point (I don't know Rust): https://github.com/sebcrozet/nphysics/blob/916199c0a67219482....
Re:Nphysics – 2 and 3-dimensional rigid body physics engine ... by dbaupp on Monday September 02, 2013 @05:49AM (#6314342)
It calls[1] into a module called `euler`[2], and that looks like a very basic euler integrator.

[1]: https://github.com/sebcrozet/nphysics/blob/916199c0a67219482...

[2]: https://github.com/sebcrozet/nphysics/blob/916199c0a67219482...

Re:Nphysics – 2 and 3-dimensional rigid body physics engine ... by kyzyl on Monday September 02, 2013 @02:38PM (#6316456)
Well again the code is nearly completely opaque to me (goes to show you that there is such a thing as too much abstraction) but again based off of the name "semi_implicit_integrate" it would be crazy for this to be anything but a Semi-Implicit Euler integrator. That falls into the class of symplectic integrators, so it should handle SE(3) fine.

There is also a explicit method in there, which probably won't handle it very well.

On the other hand, I hesitate to argue with the author about their own code... or are you just the OP?

Re:Nphysics – 2 and 3-dimensional rigid body physics engine ... by dbaupp on Monday September 02, 2013 @04:58PM (#6317157)
I'm just an interested onlooker, yes.