Alternatives to ammo.js
ammo.js is probably the most popular and well-known JavaScript physics engine. It's very versatile and can produce high-quality simulations. However, it has quite high performance and memory requirements. Therefore, you should investigate whether it's really the best choice for your application. For example, if you're making a 2D game, a 2D physics engine might be more appropriate.
In fact, there are several alternatives to ammo.js:
| Physics Engine | JS | WASM | 2D | 3D |
|---|---|---|---|---|
| box2d.js | ✓ | ✓ | ✓ | |
| Matter.js | ✓ | ✓ | ||
| p2.js | ✓ | ✓ | ||
| cannon.js | ✓ | ✓ | ||
| Oimo.js | ✓ | ✓ |
In December 2018, Nvidia open-sourced the PhysX physics engine. While there's no JS/WASM port of PhysX yet, it would probably be the most competitive physics runtime compared to Bullet/ammo.js. When a web port becomes available, it will be added to the table above.