A lightweight 3D physics engine for JavaScript, converted from OimoPhysics.
Oimo.js is a lightweight 3D physics engine for JavaScript that provides real-time physics simulation for web applications and games. It is a full JavaScript conversion of the OimoPhysics library, enabling developers to add realistic physics interactions like collisions, gravity, and joints to their 3D scenes. The engine prioritizes performance and accessibility with a straightforward API.
JavaScript developers building 3D web applications or games who need efficient, real-time physics simulation without the overhead of larger engines. It is particularly suited for those integrating physics into frameworks like Three.js.
Developers choose Oimo.js for its lightweight design and essential physics features, offering a balance of performance and simplicity. Its Web Worker support allows physics calculations to run off the main thread, preventing UI blocking in interactive applications.
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.
Prioritizes being lightweight and performant for web applications without heavy overhead, as emphasized in the project's philosophy.
Can run physics calculations in a Web Worker to avoid blocking the main thread, demonstrated in the Worker test example for responsive UIs.
Offers multiple broadphase algorithms (brute force, sweep and prune, volume tree) for optimized collision handling, configurable in the World setup.
Provides a simple API for adding physics objects and joints with clear properties, as shown in usage examples with minimal boilerplate.
Only supports spheres, boxes, and cylinders, lacking advanced shapes like meshes or soft bodies, which restricts physics complexity and realism.
Both the home and documentation pages are marked as 'in progress', making it challenging for users to find comprehensive guidance and examples.
Notes about shape name changes in the last version indicate breaking changes that can disrupt existing projects during updates.
Mention of a new ES6 worker version in a different repository (PHY) suggests that this version may not be actively maintained or updated.