Skip to content

kadir014/nova-physics

Repository files navigation

Nova Physics is a lightweight and easy to use 2D physics engine designed with game development in mind.

You can also read this page in
EN

Features

  • Simple and user-friendly interface
  • Portable codebase with no dependencies
  • Rigid body dynamics
  • Discrete collision detection
    • Circle shape
    • Convex polygon shape
    • Testing shapes against shapes
    • Testing shapes against point
    • Ray casting
  • One-shot contact manifold generation between shapes
  • Multiple shapes per body
  • Broadphase strategies
    • Bruteforce
    • Bounding volume hierarchy tree
  • Material properties (friction, restitution and density)
  • Constraints between bodies
    • Distance constraint - can also behave like spring
    • Hinge constraint
    • Spline path constraint
  • Erin Catto's sequential impulse solver algorithm
  • Great stacking stability
  • Semi-implicit (symplectic) Euler integrator
  • Collision filtering with masks and grouping
  • Built-in profiler
  • Optional double-precision mode
  • Various interactive demos using SDL2 & OpenGL

Building

The library uses C99 standard and depends only on the C STL.

For further instructions see here.

Examples

Example demos are in examples directory, enable building demos option in the build system (if not already enabled).

Documentation

You can access the documentation including the API reference here.

If you are just getting started, you can use the introduction page.

Resources & References

Nova is a passion and learning project for me, and following are some of the many great resources that helped me along the way.

License

MIT © Kadir Aksoy

Nova Physics is, and always will be, free and open-source. Although I would greatly appreciate sponsorships!