awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
schteppe avatar

schteppe/cannon.js

0
View on GitHub↗
4,979 stars·738 forks·JavaScript·MIT·20 viewsschteppe.github.com/cannon.js↗

Cannon.js

cannon.js is a JavaScript 3D physics engine designed for calculating rigid body dynamics and collisions in three-dimensional space. It functions as a rigid body dynamics engine that models mass, friction, and velocity to determine object movement, while providing a mathematical framework for applying physical constraints and joints.

The engine supports a variety of collision volumes, including spheres, boxes, convex polyhedrons, heightfields for terrain simulation, and complex triangle meshes. It provides tools for identifying intersections between these shapes and calculating the exact areas of contact for physical interactions.

The system covers broad simulation capabilities including geometric analysis for computing mesh properties, the application of physical constraints to create mechanical assemblies, and the synchronization of physics simulation data with external 3D meshes for visualization.

Features

  • 3D Physics Engines - Implements a 3D physics engine in JavaScript for calculating real-time rigid body dynamics and collisions.
  • Rigid Body Physics Engines - Provides a comprehensive mathematical engine for calculating real-time collisions and physical forces for 3D spatial objects.
  • Collision Detection - Identifies intersections between 3D shapes using discrete collision detection and interaction filters.
  • 3D Collision Detection Frameworks - Provides a framework for calculating geometric intersections between spheres, boxes, polyhedrons, and meshes.
  • Overlap Detection - Detects overlaps between physical bodies and identifies specific contact points.
  • Mechanical Joint Constraints - Supports linking physical bodies with joint constraints such as hinges and distance locks to build mechanical assemblies.
  • Rigid Body Solvers - Implements a rigid body solver to resolve physical interactions and maintain geometric constraints.
  • Physics Simulations - Provides a mathematical framework for simulating physical collisions and constraints in 3D environments.
  • Rigid Body Dynamics - Models the motion and interaction of solid 3D objects using mass, friction, and restitution.
  • Separating Axis Theorem Collisions - Implements the Separating Axis Theorem to detect intersections between convex 3D shapes.
  • Local-to-World Coordinate Transformations - Converts shape-relative vertices into global scene coordinates to determine accurate intersection points.
  • Mesh-Based Collision Geometry - Uses indexed vertex arrays to define complex 3D geometry for precise collision detection.
  • Sequential Impulse Solvers - Calculates rigid body movement using sequential impulse solvers to resolve constraints and collisions.
  • Quaternion Rotations - Handles 3D orientation and angular velocity using quaternions to avoid gimbal lock.
  • Fixed-Step Integrators - Uses fixed-step integration to ensure stability and determinism in the physics simulation.
  • Mesh Property Calculators - Computes critical geometric data including face normals and approximate volume for triangle meshes to support physics calculations.
  • Game Physics Integration - Integrates physics simulation data with 3D meshes to visualize movement and collisions in a browser.
  • Physical Heightfield Simulations - Generates physical surfaces from height data to create interactive floors and landscapes.
  • Mesh and BVH Queries - Provides utilities to query mesh elements by transforming local vertices into world space coordinates.
  • Render Mapping - Implements capabilities to map rigid body position and orientation data to external 3D objects for visualization.
  • Visual State Synchronizations - Provides a mechanism to synchronize physics simulation state with 3D meshes for real-time visual updates.
  • Mass Property Calculation - Calculates mass, centroids, and rotational inertia based on the geometry of convex polyhedrons.
  • Fixture Shape Definitions - Provides definitions for 3D rectangular prisms used for collision detection and mass calculations.
  • Heightfield Generators - Generates 3D terrain surfaces from height data points for use as physical boundaries in simulations.
  • Static Surface Definitions - Allows the definition of infinite flat surfaces to simulate floors and walls.
  • Collision Hull Clipping - Trims faces and shapes against hulls and planes to determine exact areas of overlap for physics responses.
  • Graphic Libraries - Physics engine for 3D web applications.

Star history

Star history chart for schteppe/cannon.jsStar history chart for schteppe/cannon.js

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Cannon.js

These projects share indexed features with Cannon.js. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • dimforge/rapierdimforge avatar

    dimforge/rapier

    5,471View on GitHub↗

    Rapier is a cross-platform physics engine and rigid body dynamics solver designed for 2D and 3D simulations. It functions as a collision detection system and a robotics simulation framework, providing a consistent API for calculating physical interactions across different environments. The engine distinguishes itself with specialized robotics capabilities, including a toolkit for importing URDF and STL models to control multibody chains. It supports precise mechanical movement through inverse kinematics calculations and the application of PID controllers for dynamic body control. The simulat

    Rust
    View on GitHub↗5,471
  • erincatto/box2derincatto avatar

    erincatto/box2d

    9,505View on GitHub↗

    Box2D is a 2D physics engine and rigid body simulator designed to compute collisions, forces, and joints in a two-dimensional plane. It functions as a collision detection library and a constraint-based physics solver that calculates the movement and interaction of solid objects using mass, friction, and restitution properties. The engine ensures consistency across different hardware architectures through a deterministic trigonometry implementation. It prevents high-speed objects from passing through boundaries using continuous collision detection and time-of-impact interpolation. The system

    C
    View on GitHub↗9,505
  • jrouwe/joltphysicsjrouwe avatar

    jrouwe/JoltPhysics

    9,685View on GitHub↗

    JoltPhysics is a high-performance C++ physics engine designed for multi-threaded simulation of 3D rigid bodies and soft bodies. It serves as a deterministic simulation framework, ensuring identical results across different platforms and architectures to support networked synchronization. The engine distinguishes itself through a focus on concurrent execution across multiple CPU cores to handle large numbers of active bodies. It provides specialized systems for vehicle physics, including wheeled and tracked models, as well as soft body physics for deformable objects and cloth. The simulation

    C++c-plus-pluscppgame-development
    View on GitHub↗9,685
  • liabru/matter-jsliabru avatar

    liabru/matter-js

    18,256View on GitHub↗

    Matter-js is a 2D rigid body physics engine written in JavaScript for simulating realistic physical interactions, collisions, and dynamics in web browsers. It functions as a web physics simulation library that calculates motion, gravity, and constraints for objects rendered on a web canvas. The library includes a built-in canvas physics visualizer to draw physical bodies, joints, and constraints for debugging and gameplay. It distinguishes itself through a plugin system that supports recursive dependency resolution and internal method patching to inject custom logic into the engine's executio

    JavaScriptcanvasjavascriptphysics
    View on GitHub↗18,256
Compare all 30 related projects→

Frequently asked questions

What does schteppe/cannon.js do?

cannon.js is a JavaScript 3D physics engine designed for calculating rigid body dynamics and collisions in three-dimensional space. It functions as a rigid body dynamics engine that models mass, friction, and velocity to determine object movement, while providing a mathematical framework for applying physical constraints and joints.

What are the main features of schteppe/cannon.js?

The main features of schteppe/cannon.js are: 3D Physics Engines, Rigid Body Physics Engines, Collision Detection, 3D Collision Detection Frameworks, Overlap Detection, Mechanical Joint Constraints, Rigid Body Solvers, Physics Simulations.

Which projects share features with schteppe/cannon.js?

Projects with overlapping indexed features include: dimforge/rapier — Rapier is a cross-platform physics engine and rigid body dynamics solver designed for 2D and 3D simulations. It… erincatto/box2d — Box2D is a 2D physics engine and rigid body simulator designed to compute collisions, forces, and joints in a… jrouwe/joltphysics — JoltPhysics is a high-performance C++ physics engine designed for multi-threaded simulation of 3D rigid bodies and… liabru/matter-js — Matter-js is a 2D rigid body physics engine written in JavaScript for simulating realistic physical interactions,… godotengine/godot-demo-projects — This repository is a comprehensive collection of functional 2D and 3D demo projects and implementation samples for the… kripken/ammo.js — ammo.js is a JavaScript port of the Bullet physics engine, compiled via Emscripten to provide a high-performance…