PlayRho icon indicating copy to clipboard operation
PlayRho copied to clipboard

An interactive physics engine & library.

PlayRho

A way to play with physical behaviors like the conservation of momentum.

PlayRho is a real-time oriented physics engine and library that's currently best suited for 2-D games. The project name is the composition of the verb play with the noun rho where rho is the Greek letter often used to represent physical quantities like momentum.

Background

PlayRho started off as a port by Louis Langholtz of the Box2D 2.3.2 physics engine to "modern C++". It's evolved into a derivative work by Louis and other contributors to the code base. Like its predecessor, PlayRho is also licensed under a Zlib License.

Some general goals of this project are:

  • Supporting value semantics over reference semantics. Values are in and pointers are out!
  • Conforming to the C++ Core Guidelines, particularly in regards to things like avoiding global variables, preferring concrete types, and preferring pure functions.
  • Using and supporting newer features of the C++ language standards up to C++17;
  • Openness to contributions including pull requests with new features; and
  • Providing a continuous integration backed, build automation supported, unit test validated, and benchmark assessed, project.

Continuous Integration Status

iOS Linux CMake macOS Xcode Windows VS2017 Coverage CodeQL
Build Status Build Status Build Status Build status Coverage Status CodeQL

Additional Resources

  • Changes Document: provides a run-down of changes between PlayRho and Box2D 2.3.2.
  • Building Document: information on how to build this project and run the Testbed.
  • User Documentation & API Pages: user documentation and programming interface pages for release 1.1.0 of this project.
  • Issues Web Interface: for questions, bugs reports, or suggestions associated with this project.