QuarkPhysics Save Abandoned

A 2D Soft Body and Rigid Body Physics Engine.

Project README

Quark Physics

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.

Examples | API Documentation | wiki(coming soon)

Note: The project is in the development phase until v1.0.


Example 01

Show Examples

Example 02 Example 02 Example 02 Example 03 Example 02

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
    • QMesh Editor app for editing mesh features of the bodies (coming soon)
  • Rigid bodies

    • 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;

    ./build.sh -r

Another way is that compiling the project directly via gcc if you're on linux call;

    ./run_linux_fast.sh -r

Using

Copy the "QuarkPhysics" named subfolder in the main folder to your project and use it.

Third Party

  • nlohmann's json for the json parsing. (Importing meshes via *.qmesh files)
  • SFML library for window,input,opengl.

Roadmap

  • 1.0
    • API revisions
    • Optimizations
    • Bug fixes
  • 1.1
    • Automatic conversion of concave polygons to convex polygons
    • Add Static-dynamic feature to the particles
    • Breakable spring connections.
    • UV mapping features to QMesh
  • 1.2
    • Determinism (with fixed point method)
    • Destructable rigid bodies.
    • Continuous collision dedection (CCD)
    • Multithreading
  • 1.3
    • Fluid dynamics
Open Source Agenda is not affiliated with "QuarkPhysics" Project. README Source: erayzesen/QuarkPhysics
Stars
60
Open Issues
0
Last Commit
10 months ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating