← All work
2024C++DirectX 11Physics

ECS Physics Engine

A custom made 3D rigid body physics engine built on top of a custom made archetype ECS engine, rendered using my DirectX 11 framework.

Duration
2 months
Platform
PC
Module Grade
100%
ECS Physics Engine

Features

Many Objects
A pile of objects

Many Collision Object Types

Collision can be done with points, triangles, spheres, AABBs and OBBs.

Stacked Objects
A stack of objects

Stable Collision & Stacking

By utilising an iterative process in the collision resolution, the process becomes more stable.

Contact Point Visuals
Debug visual for contact points

Debug Controls

Through the ImGui menus you can enable visuals such as contact points and bounding boxes (from the broad phase AABB tree)

There are also options for what clicking the mouse down on an object:

  1. Select Mode - Selects the object to view in the Entity Editor panel
  2. Push Mode - Apply a force to the object based on where you click
  3. Drag Mode - Constantly pulls the object towards the mouse location
Bounding Box Visuals
Debug visual for bounding boxes
Terrain Collision
A pile of spheres resting on a hill

Stable Collision & Stacking

A static collision object can be generated from a height map that allows objects to roll around on terrain.

UML Class Diagram

UML Class Diagram
UML diagram of physics framework and ecs engine
Tanks →Next project