A way to play with physical behaviors like the conservation of momentum.
PlayRho is a real-time oriented, platform independent, physics engine and library. It's currently best suited for interactive 2-D games or demos. The project's 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.
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. Many other open source physics engines exist, like: Bullet Physics and Chipmunk.
The PlayRho library component itself requires only a standards compliant C++17 compiler and standard library implementation. It's continuous integration backed and unit test proven to compile and work on at least Linux, macOS, and Windows. See the status badges above for up-to-date status of builds, tests, documentation, code-security, and more.
By design, new development is done in the default/master branch, merged in by pull requests, and then possibly backported to a release branch if not API breaking. While the master branch is intended to always be buildable and runnable, its interface is not meant to be stable and it's not meant for use unless you're specifically looking to help develop this project. For use in projects, choose from a more stable tagged release or a release branch.
- 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 non-constant 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.
- Providing a continuous integration backed, build automation supported, unit test validated, and benchmark assessed, project.
- Changes Document: provides a run-down of changes between releases.
- Building & Installation Document: information on how to build and install this project.
- API Documentation: application programming interface (API) pages for this project.
- Issues Web Interface: for bugs reports or feature requests associated with this project.
- stackoverflow.com playrho tag: for questions and answers on this project.