Riemann is a 3D Geometry Processing / Collision Detection / Physics Engine with zero dependencies. This is a personal learning project, I want to write my own physics engine to understand some of the key algorithm that makes a physics engines works.
This project is named after the 19th-century German mathematician Bernhard Riemann, who invented Riemannian geometry and the concept of manifold.
Rigid Body Dynamics Simulation
-
Simulation and Collision Detection for various shapes
- Sphere
- Oriented Box
- Capsule
- Cylinder
- Convex Mesh
- Triangle Mesh
- Height Field
-
Collision detection
- Raycast Test
- Overlap Test
- Sweep Test
- Bounding Volume Hierarchy
- Sweep and Prune
- Gilbert–Johnson–Keerthi algorithm
- Expanding Polytope algorithm
-
Numerical Method
- Symplectic Euler / Implicit Euler / Verlet Integrator
- Jacobian Matrix
- Sequential Impulse Solver
- Global LCP Solver using Projected Gauss-Seidel
Position Based Dynamics
Fluid Dynamics Solver
Vehicle Dynamics / Autonomous Driving Simulation