Engine maths and physics
3D rotations and projections onto an ASCII console, team-built animated floating donut, Euler integrators and a spring
C++ · 3D Maths · Projection · ASCII Rendering · Physics · CMake
3rd-year maths and physics work (Gaming Campus, 2025-2026), all rendered in the console.
Context
The engine maths course covered 3D-to-2D rotations and projections, with an ASCII donut as the common thread. The team exam asked to make that donut float and spin. The advanced physics module started with a week of integration exercises.
What I did
The course's ASCII renderer (meshes, projection, settings), the donut's orbit animation for the exam, and the Euler integration exercises.
Links
- The Floating Donut (public fork of the team repository)
- Math-GTech3 (engine maths course and labs)
- 9---Physique-Avancee-DirectX (advanced physics exercises)
Engine maths (November 2025)
DonutMath console program: mesh generation (circle, half circle, rectangle, square), projection to the screen and
ASCII display. Screen size, mesh resolution, background and projection characters, screen and viewer positions set from
command-line arguments.
"The Floating Donut" exam (January 2026, team of 3)
A torus generated, rotated and lit in ASCII, floating in orbit. My additions: the Vector3 struct, the orbit motion
in the animation, and its settings in Settings.
Advanced physics (January 2026)
Numerical integration exercises in C++: explicit Euler, semi-implicit Euler, variable acceleration and a simple spring.