Why do the readmes for physics engines rarely specify how they solve contact constraints? This is one of the most difficult parts of writing a physics engine. It might be less important if you're just interested in visuals and making it "look OK" in a videogame, but it has an impact on the dynamics, so especially if you're interested in robotics or accurate simulation of real-world physics, this is really important to specify.
Cross Platform determinism and great serialization capabilities makes this a networked physics programmer's dream!<p>I kinda wish this was in cpp, so that I could integrate it with Godot and have it be considered for upstreaming.<p>Edit:<p>Wait, no ray cast? I'm confused why that wouldn't be implemented. That's a very simple operation, is it not?<p>No continuous collision detection is not so great either, but is okay if the performance is good enough to tick at a high rate.
A few months back I tried - and failed - to write a basic 2d physics engine for my JS canvas library. Before then, I tried to use existing JS physics engines with the library ... but none of them integrated nicely; the closest I got to making something useful was with Matter.js (see Codepen demo[1]).<p>Rapier has a WASM version, and JS bindings. I'm already looking forward to see if I can get the engine working with my code. Is there a JS-focussed community around Rapier where I can ask questions if I get stuck?<p>[1] - <a href="https://codepen.io/kaliedarik/pen/zYvbwBy" rel="nofollow">https://codepen.io/kaliedarik/pen/zYvbwBy</a>
- cross platform bit level determinism<p>- fully serializable state<p>Wow! Sounds like a boon for Javascript game engines like Bevy. I wonder if they'll support PlayCanvas as well.
> Cross-platform determinism: if the enhanced-determinism feature of Rapier is enabled, it will behave in a bit-level cross-platform deterministic way in all platforms that comply with the IEEE 754-2008 floating point standard.<p>Impressive! I've understood this to be a hard problem. Unity has promised this for years but still hasn't delivered, last time I looked.<p>Is there anywhere we could read more about the tradeoffs and challenges involved?<p>Also, how widely has this been tested?<p>Perhaps most importantly: how can I extend this determinism to my own code?
Do these type of physics engine use Newtonian F=MA at their hearts or do they rely on Lagrangian mechanics?<p>My instinct tells me the first as it seems more straightforward, but then I realized I just have no idea.<p>Anyone knowledgeable care to enlighten?
On a side note, does anyone know what happened to Bullet3D? It seemed like this was a really good candidate for driving game physics a few years ago, but it's been rebranded as "PyBullet", the wiki's no longer available, and it seems to have pivoted towards simulation. Also it seems like Bullet3 never got a proper release.<p>Is this a dead project?
Regarding inane comments about the name, take a look at this:<p><a href="https://en.wikipedia.org/wiki/Windows_Mobile#Pocket_PC_2000" rel="nofollow">https://en.wikipedia.org/wiki/Windows_Mobile#Pocket_PC_2000</a><p><i>Pocket PC 2000, originally codenamed "Rapier", was released on April 19, 2000, and was based on the Windows CE 3.0 kernel.</i>