{"repo":"markeasting/THREE-XPBD","free":true,"listed":false,"github":"https://github.com/markeasting/THREE-XPBD","clone":"git clone https://github.com/markeasting/THREE-XPBD.git","description":"XPBD physics in THREE.js","language":"TypeScript","stars":58,"topics":["threejs","xpbd","physics-engine","physics-simulation"],"license":"MIT","category":"game-templates","readme_excerpt":"THREE.js feat. XPBD physics 🌈 Based on Extended Position Based Dynamics by Matthias Müller. Refer to the docs directory to view the papers and source code used in this project. Demo: https://markeasting.github.io/three/ Development npm install - Install dependencies npm run dev - Runs the local dev server npm run build - Build the project Features Core - [x] XPBD update loop - [x] XPBD World / body manager - [x] Rigid bodies - [x] Body 'sleep' feature - [x] applyForce() - [ ] applyTorque() Collision solver - [x] Penetration - [x] Surface properties: friction & restitution - [x] Broad phase (AABB) - [x] Narrow phase (GJK / EPA) - [x] Convex hull generation - [x] Contact manifold generation / clipping algorithm - [ ] Broad phase (sorting algorithm) - [ ] Broad phase (spatial subdivision / octree) - [ ] Narrow phase (optimized primitives: spheres, capsules) - [ ] Object pool for Vec3 instances Constraints - [x] Basic constraint - [x] Mouse picking/dragging - [x] Calculate constraint force - [x] Damping - [ ] Swing / twist limits","default_branch":null,"files":null,"tree":[],"storefront":"/r/markeasting","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/markeasting/THREE-XPBD/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}