Skip to Main Content

Aether

Aether is a C++ project for building a simple real-time 3D rigid body physics simulation with OpenGL visualization.

Description

Aether


Aether is an educational physics simulator designed to help high school and secondary school students understand complex physics concepts through interactive visualization. Instead of memorizing equations, students can experiment with real-time simulations of rigid bodies, collisions, constraints, fluids, and heat transfer. The simulator bridges the gap between theory and practice by letting students observe how physics concepts manifest in a dynamic 3D world.

Students can experiment with familiar scenarios, objects falling under gravity, collisions between different shapes, springs bouncing, objects floating in water, and even thermal energy transfer, building intuition about how the physical world works.

Target Audience: High school and secondary school students studying physics who want to visualize and understand concepts through hands-on simulation.

Key Goal: Implement core physics concepts from scratch with a clean, modular architecture that prioritizes correctness and educational clarity.


Current Scope

  • Rigid body simulation

  • Gravity

  • Collision detection and response

  • Friction

  • Spring constraints

  • Rope

  • Rod

  • Fluids (Buoyancy)

  • Thermodynamics (Heat Transfer)

  • Real-time 3D rendering

Issues & PRs Board
Pull Request
feat: implemented Vec3 class and basic CLI timestop loop
Pull Request
fix: moved rigidbody and collision implementations from header files
Pull Request
feat: centralized the integration part in PhysicsWorld handling updat…
Pull Request
Feat/openglsetup
Pull Request
feat: implemented general collider and spherical collider
Pull Request
feat: handeled collision between sphere and sphere
Pull Request
Feature/boxcollider
Pull Request
feat: implemented detection and resolution of sphere and box collision
Pull Request
feat: implemented map to handle func calls for collision resolution
Pull Request
feat: added window with body rendering as dots in real time
Pull Request
chore: added a simple stress test to debug
Pull Request
feat: friction done
Pull Request
fix: improve physics stability with fixed timestep and rigidbody vali…
Pull Request
Feat: added 3d movement WASD
Pull Request
feat: added pause button using imgui
Pull Request
added fps and frametime
Pull Request
Chore/centralizing constants
Pull Request
feat: added unique restitution coeff and friction coeff to each rigid…
Pull Request
feat: rendering shapes for bodies and axes
Pull Request
checkpoint: saving a stable checkpoint because breaking changes are to be implemented in near futurre
Pull Request
contactfeat
Pull Request
Feat/contact mechanism
Pull Request
feature: added mouse rotation
Pull Request
feat: implemented friction and tweaked config constant
Pull Request
feat:bodyid
Pull Request
feat:added ramp shape and its properties
Pull Request
feat: added ramp to sphere collision
Pull Request
Featforce
Pull Request
feat: rendering ramp
Pull Request
chore: added mit-license and updated the readme.md
Pull Request
feat: added testcases for different scenerios
Pull Request
Feat/warmstart
Pull Request
Feat/ ramp ramp contact
Pull Request
feat: implemented the base strcuture for contact manifolds
Pull Request
feat: implemented the base strcuture for contact manifolds
Pull Request
feat: implemented the base strcuture for contact manifolds
Pull Request
Featmanifold
Pull Request
Feat/body menu UI
Pull Request
Manifoldcheck
Pull Request
Manifoldcheck
Pull Request
Feature/ramp manifold
Pull Request
feat:added manifolds for ramps
Pull Request
box-box multimanifold
Pull Request
feat: improvements and restructure
Pull Request
fix: fixed naming convention id assignment order
Pull Request
checkpoint: second save to main
Pull Request
Revert "checkpoint: second save to main"
Pull Request
Revert "fix: fixed naming convention id assignment order"
Pull Request
Revert "feat: improvements and restructure"
Pull Request
Rampramp manifold
Pull Request
Feat/improvements
Pull Request
Fix/residual vel
Pull Request
Featrotationstart
Pull Request
Featrotationstart
Pull Request
feat: implemented distance based constraints ie ropes,rod,spring
Pull Request
feat: added shaders
Pull Request
fix: fixed the issue where the body id was corrupted and causing cons…
Pull Request
Feat/manifold fix
Pull Request
feat/rotationstep
Pull Request
Feat/rotationstep
Pull Request
Feat/manifold fix
Pull Request
Dev
Pull Request
Feat/rotationstep
Pull Request
feat: rendering extended for rope, rod and spring
Pull Request
feat: added a main menu and fixed ui
Pull Request
feat: added function to delete bodies,constraints and performed some …
Pull Request
fixed ui
Pull Request
feat: rendering the rotation
Pull Request
feat: added status message popup and handled cases for body addition/…
Pull Request
Feat/manifold deletion
Pull Request
feat: render polish
Pull Request
feat/box-sphererotation
Pull Request
chore/binary
Pull Request
fix: git wasnt tracking release binaries
Pull Request
UI/guide
Pull Request
feat:added guide option
Pull Request
fix: jittering and rotation energy explosion
Pull Request
Feat/vector display
Pull Request
Rotation/spherefix
Pull Request
ramp patch
Pull Request
Feat/message popup
Pull Request
Feat/ramprampcollision
Pull Request
feat: implemented good prebuilt scenarios
Pull Request
Fluid
Pull Request
Fluid
Pull Request
Feat/new testcases
Pull Request
feat/addedbeaker
Pull Request
Testcase
Pull Request
feat: implemented a special test case showcasing heat transfer throug…
Pull Request
Feat/render fluids
Pull Request
feat/addedtestcases
Pull Request
feat: added styling to the main menu
Pull Request
Feat/update readme
Pull Request
feat: implemented chapter selection along with scenario selection
Pull Request
fix: start screen body spawning fixed
Pull Request
Chore/binaries
Pull Request
Dev