QuarkPhysics is a 2D physics engine designed for games. Its goal is to provide a reasonable approach to simulate rigid bodies, soft bodies, and different physics models together.
Show Examples
![Example 02](/QuarkPhysics/images/example_02.gif)
![Example 02](/QuarkPhysics/images/example_04.gif)
![Example 02](/QuarkPhysics/images/example_05.gif)
![Example 03](/QuarkPhysics/images/example_03.gif)
![Example 02](/QuarkPhysics/images/example_06.gif)
Features
- General Features
- Primitive shape types (circle, polygon, rectangle, etc.)
- Physical properties (mass, area, restitution, etc.)
- The API is designed specifically for 2D video games.
- Raycasting
- Collision layer masks for advanced collision filtering
- SAP for broadphase
- Supports sleeping islands to improve CPU performance.
- Flexible and advanced event system.
- It uses pixels directly as a unit without any abstractions.
- Unlimited shape-mesh support for bodies.
- Simple and consistent API
- External .qmesh file support. There is also QMeshEditor app for create/edit/manage qmesh files.
- Rigid bodies
- Convex polygons support.
- Joints to connect bodies.
- Reasonable stability for stacked objects.
- Kinematic bodies for creating controllable physics objects.
- Area bodies for detecting and reporting collisions.
- Soft Bodies
- Springs to connect particles.
- Mass-spring model.
- Area-volume preserving model.
- Shape matching features.
- Self collisions.
- PBD dynamics.
- Internal springs and internal particles for adding more complexity to soft body simulations.
- Customizable constraints for adding more control to simulations.
- Advanced particle methods.
Building Examples
You need to install SFML and CMake on your system before.
Download project, enter the main folder, and call this:
Or you can compile the project directly via gcc if you’re on linux by calling this:
Using
Copy the “QuarkPhysics” named subfolder in the main folder to your project and use it.
Third Party
Roadmap
- 1.0
- API revisions (v0.9x)
- Optimizations ( v0.9x)
- Bug fixes
- 1.1
Automatic conversion of concave polygons to convex polygons (added v0.9x)
- Fluid dynamics
- 1.2
- UV mapping features to QMesh
- Destructable rigid bodies.
- 1.3
- Continuous collision dedection (CCD)
- Multithreading