A fast, cross-platform JavaScript physics engine for rigid body simulation, collision detection, and response.
GoblinPhysics is a physics engine written entirely in JavaScript for simulating rigid body dynamics, collision detection, and response. It solves the problem of adding realistic physical interactions to web-based 3D applications, games, and simulations without relying on native plugins or external engines. The engine is designed to be fast and work consistently across different platforms and JavaScript environments.
JavaScript developers and game creators building 3D web applications, interactive simulations, or browser-based games that require accurate physics, such as those using WebGL with libraries like Three.js.
Developers choose GoblinPhysics for its pure JavaScript implementation, ensuring broad compatibility and ease of integration, along with its focus on performance and a comprehensive feature set including multiple shape types, constraints, and ray tracing.
Collision Detection & Response in 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.
Pure JavaScript implementation ensures it runs on desktop, mobile, browsers, and Node.js without platform-specific tweaks, as emphasized in the description for broad compatibility.
Supports spheres, boxes, cones, cylinders, planes, convex shapes, meshes, and compound shapes, enabling realistic simulations of complex objects, as listed in the features.
Includes a full test suite and numerous interactive examples, such as mesh shapes and constraints, to verify correctness and aid in debugging and learning.
Provides ray tracing for detection queries, useful for line-of-sight or picking mechanisms in 3D applications, as demonstrated in the examples.
The roadmap lists planned features like more constraints and force generators, indicating current gaps in advanced physics simulations compared to mature engines.
Documentation must be generated locally using gulp, adding complexity and less immediacy compared to pre-hosted, always-available docs.
As a standalone project, it lacks the extensive ecosystem, integrations, and active community of larger engines like Cannon.js, which can slow down troubleshooting.