Skip to content
Ilya Glushchenko edited this page Jun 18, 2018 · 6 revisions

Pegasus

Build Status Build status

About

Pegasus is a cross-platform C++ game physics engine that is written with the data-oriented design in mind with minimum external dependencies (GLM and SPDLog). The aim of this project is to implement a robust, modern and simple to use API for game physics computations. The main motivation to write this engine was curiosity and desire to write physics code that utilizes a modern approach to software development, such as cache friendly code, high parallelization ability (CPU and GPU with CS), robust memory management with modern C++ standard versions.

Join discord chat.

Overview

Collision primitives

Plane

Box

Sphere

Collision detection

Collision detection is handled using custom implementations of Jacobi Eigenvalue, Quickhull Convex Hull, Half-Edge Data Structure, CSO, GJK and EPA algorithms.

Collision resolution

Collision resolution is based on the constraint collision model and implemented using such techniques as Sequential Impulses, Restitution Slop, and Warm Starting to help improve the overall stability of the system.

Integration

Pegasus provides an API for creation of Dynamic and Static rigid bodies. Creating new simulation is as simple as creating new Scene object, and a population of the new Scene could be performed through high-level OOP based API or through low level Functional handle-based API, which provides a developer with the flexibility when performance is needed.

Clone this wiki locally