{"id":13503116,"url":"https://github.com/dimforge/nphysics","last_synced_at":"2025-05-15T20:03:21.954Z","repository":{"id":8467614,"uuid":"10066380","full_name":"dimforge/nphysics","owner":"dimforge","description":"2 and 3-dimensional rigid body physics engine for Rust.","archived":false,"fork":false,"pushed_at":"2021-07-27T08:26:13.000Z","size":5133,"stargazers_count":1639,"open_issues_count":44,"forks_count":120,"subscribers_count":56,"default_branch":"master","last_synced_at":"2025-05-07T17:05:30.689Z","etag":null,"topics":["joints","physics","physics-engine","rigid-bodies"],"latest_commit_sha":null,"homepage":"https://nphysics.org","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"phamd1989/django-twilio-app","license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dimforge.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["dimforge"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2013-05-14T22:33:10.000Z","updated_at":"2025-04-20T13:20:59.000Z","dependencies_parsed_at":"2022-08-30T05:23:24.573Z","dependency_job_id":null,"html_url":"https://github.com/dimforge/nphysics","commit_stats":null,"previous_names":["sebcrozet/nphysics","rustsim/nphysics"],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimforge%2Fnphysics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimforge%2Fnphysics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimforge%2Fnphysics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dimforge%2Fnphysics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dimforge","download_url":"https://codeload.github.com/dimforge/nphysics/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254059498,"owners_count":22007768,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["joints","physics","physics-engine","rigid-bodies"],"created_at":"2024-07-31T22:02:37.764Z","updated_at":"2025-05-15T20:03:19.648Z","avatar_url":"https://github.com/dimforge.png","language":"Rust","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"http://nphysics.org/img/logo_nphysics_full.svg\" alt=\"crates.io\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://discord.gg/vt9DJSW\"\u003e\n        \u003cimg src=\"https://img.shields.io/discord/507548572338880513.svg?logo=discord\u0026colorB=7289DA\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/nphysics2d\"\u003e\n         \u003cimg src=\"https://img.shields.io/crates/v/nphysics3d.svg?style=flat-square\u0026label=crates.io%20(nphysics2d)\" alt=\"crates.io (nphysics2d)\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/nphysics3d\"\u003e\n         \u003cimg src=\"https://img.shields.io/crates/v/nphysics3d.svg?style=flat-square\u0026label=crates.io%20(nphysics3d)\" alt=\"crates.io (nphysics3d)\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://travis-ci.org/dimforge/nphysics\"\u003e\n        \u003cimg src=\"https://travis-ci.org/dimforge/nphysics.svg?branch=master\" alt=\"Build status\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align = \"center\"\u003e\n    \u003cstrong\u003e\n        \u003ca href=\"http://nphysics.org\"\u003eUsers guide\u003c/a\u003e | \u003ca href=\"http://nphysics.org/rustdoc/nphysics2d/index.html\"\u003e2D Documentation\u003c/a\u003e | \u003ca href=\"http://nphysics.org/rustdoc/nphysics3d/index.html\"\u003e3D Documentation\u003c/a\u003e | \u003ca href=\"https://discourse.nphysics.org\"\u003eForum\u003c/a\u003e\n    \u003c/strong\u003e\n\u003c/p\u003e\n\n⚠️**This crate is now passively-maintained. It is being superseded by the [Rapier](https://rapier.rs) project.**⚠️\n\n-----\n\nnphysics\n========\n**nphysics** is a 2 and 3-dimensional physics engine for games and animations.\nIt uses [ncollide](http://ncollide.org) for collision detection, and\n[nalgebra](http://nalgebra.org) for vector/matrix math. 2D and 3D\nimplementations both share the same code!\n\n\nExamples are available in the `examples2d` and `examples3d` directories. Interactive\n3D are available [there](http://demo.nphysics.org/). Because those demos are based on\nWASM and WebGl 1.0 they should work on most modern browsers. Feel free to ask for help\nand discuss features on the official [user forum](http://users.nphysics.org).\n\n## Why another physics engine?\nThere are a lot of physics engine out there.\nHowever having a physics engine written in Rust is much more fun than\nwriting bindings and has several advantages:\n\n- It shows that Rust is suitable for soft real-time applications.\n− It features an efficient implementation of multibodies using the reduced-coordinates approach. Constraint-based joints are also supported.\n- It shows that there is no need to write two separate engines for 2D and 3D:\n  genericity wrt the dimension is possible (modulo low level arithmetic\n  specializations for each dimension).\n- In a not-that-near future, C++ will die of ugliness. Then, people will\n  search for a physics engine and **nphysics** will be there, proudly\n  exhibiting its _Rusty_ sexiness.\n\n## Features\n- Static, dynamic, and kinematic rigid bodies.\n- Common convex primitives: box, ball, convex polyhedron.\n- Concave geometries built from convex primitives: compound geometries, triangle mesh, polylines.\n- Multibodies using reduced-coordinates approaches or constraints-based joints.\n- Multibody joint limits and motors.\n- Stable stacking due to non-linear a position-based penetration correction and one-shot contact manifold generation.\n- Island based sleeping (objects deactivation when they are at rest).\n- Ray casting.\n- Swept sphere based continuous collision detection.\n- Ball-in-socket joint.\n- FixedJoint joint.\n- Sensors.\n- Deformable bodies (aka. soft-bodies)\n- Kinematic bodies\n- WASM support\n\n## What is missing?\n**nphysics** is a very young library and needs to learn a lot of things to\nbecome a grown up. Many missing features are because of missing features on\n**ncollide**. Features missing from **nphysics** itself include:\n\n- more joints, joint limits, joint motors and breakable joints.\n- parallel pipeline\n- GPU-based pipeline\n\n## Dependencies\nThe libraries needed to compile the physics engine are:\n\n* [ncollide](http://ncollide.org): the collision detection library.\n* [nalgebra](http://nalgebra.org): the linear algebra library.\n\nThe libraries needed to compile the examples are:\n\n* [kiss3d](http://kiss3d.org): the 3d graphics engine.\n","funding_links":["https://github.com/sponsors/dimforge"],"categories":["Rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdimforge%2Fnphysics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdimforge%2Fnphysics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdimforge%2Fnphysics/lists"}