← All school projects

finished2025

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

GitHub ↗

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

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.