A lightweight 3D physics engine for JavaScript, converted from OimoPhysics.
Oimo.js is a lightweight 3D physics engine for JavaScript that simulates rigid body dynamics, collisions, and joints in real-time. It solves the problem of adding realistic physics interactions to web-based 3D applications, games, or simulations without heavy performance overhead.
JavaScript developers building 3D web applications, games with WebGL/Three.js, or interactive simulations requiring physics.
Developers choose Oimo.js for its simplicity, performance, and direct integration with Three.js, offering a pure JavaScript solution converted from a proven physics library (OimoPhysics).
Lightweight 3d physics engine for javascript
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
As a lightweight engine, it offers efficient real-time simulation suitable for web applications without significant performance overhead, aligning with its minimalistic philosophy.
Seamlessly syncs physics bodies with Three.js meshes by copying positions and quaternions after each world.step(), as demonstrated in the basic usage code.
Can run physics calculations in a Web Worker to avoid blocking the main thread, shown in the worker test demo for improved performance in complex scenes.
Features a minimal API with straightforward methods like world.add() and world.step(), making it quick to set up for prototyping, as highlighted in the usage examples.
Documentation is marked as 'in progress', leading to potential gaps in learning resources and troubleshooting, which can hinder adoption for new users.
Only supports basic shapes like spheres, boxes, and cylinders, lacking advanced or custom collision meshes that might be needed for complex 3D models.
Requires manual scaling when integrating with Three.js due to unit differences (meters vs. Three.js units), as noted in the 'Note' section, adding extra setup steps.