In 2004, as a university student, I wrote a physics lab in Delphi 7 and OpenGL for use in lessons. If you’d told me that one day I’d use the same desktop platform to trace light around a black hole and referee a game of eight-ball, I’d have wanted to see the code. The original lab is still there. Browse the Delphi source on GitHub
Today I build Makarov Suites in Munich. Physics, Math and Astronomy are on Steam for Windows. Engineering, Earth and Games are in development. Here are all six in 35 seconds, recorded directly from the applications.
Makarov Physics Suite
Watch the last shot of the Physics reel. A wave travels along a row of coloured pendulums, yet each bob swings in its own plane. They have slightly different lengths, so each one gains a little on its neighbour. The wave is what you see when you follow the whole row.
The reel starts inside a tokamak, then follows the rods on a steam locomotive and the grains in a rotating drum. The drum is a good first experiment to try yourself. Let it get up to speed, then reverse the motor. The drive changes direction while the grains still carry momentum from a moment ago. Physics Suite has 200 modules, but you can spend a while with just that one switch. Makarov Physics Suite on Steam
Makarov Math Suite
Turn the top face of a Rubik’s cube, then the right face. Start again and reverse the order. Follow one corner sticker and you can see why the two sequences give different results. That’s how I introduce permutations in Math Suite.
After the cube comes a paper fold, then the linked circles of the Hopf fibration. The last scene unfolds a polyhedron. Try pausing partway and predicting which edges will meet when it folds back up. Across the 160 math modules, I like giving people a question they can answer by moving the object themselves. Makarov Math Suite on Steam
Makarov Astronomy Suite
Look just above the black hole’s shadow in the opening shot. That bright arc is another view of the accretion disk. Light from the far side bends on its way to the camera. To render it, my fragment shader traces rays through the gravitational field and checks where they meet the disk.
In the galaxy encounter that follows, the two colours tell you which disk each particle came from. Keep an eye on one colour as the galaxies pass and you can follow material being pulled into a tidal tail. The last two shots show the deployment of a segmented space telescope and a pair of neutron stars spiralling together. All four are part of the 120-module Astronomy Suite. Makarov Astronomy Suite on Steam
Makarov Engineering Suite
The tiltrotor at the start has to keep its weight supported while the rotors tilt forward and the wing picks up lift. In the workshop you can change how long that transition takes and watch the altitude during the handover.
The next two machines are a packaging line and a cable-driven robot. The final shot is the one I’d give someone learning how a gearbox works. Follow one of the small planet gears as it spins on its pin and travels around the central gear. Then try holding the carrier instead of the outer ring and predict which way the output will turn. These are working modules in the Engineering development build. Explore the Engineering workshop
Makarov Earth Suite
The Earth reel moves from auroral particles over the globe down to a single stretch of coast. In the second shot, follow the moving markers near the ground, then look higher up. The air flowing inland near the surface has a return path aloft. In the app you can run the coast through a full day and compare the wind reversal with the temperature difference between land and water.
The third shot cuts through the shoreline so you can see a tsunami approaching shallow water from the side. The last looks down into a tropical cyclone. Choosing where to put the camera has been a big part of building Earth Suite. The view that makes a rotating storm legible would hide much of what I want to show at the coast. Browse the Earth experiments in development
Makarov Games Suite
The opening break in eight-ball gave me a different timing problem from the next shot, chess. On the pool table, collisions can change the outcome of a shot long after the player has let go. At the chessboard, several seconds can pass with every piece perfectly still while the computer searches for its reply.
Curling and Reversi round out the reel. Games is my newest Suite, with 24 playable prototypes in the development build. The tabletop renderer keeps the stationary board and pieces in a buffer it can reuse. When a Reversi disc flips, the moving geometry is drawn separately. It’s a small example of how a board game changed the code underneath a platform that began with physics lessons.
Inside the Windows builds
I use C# and .NET with my own OpenGL renderer. A product manifest selects the modules each application loads. For instance, Astronomy and Engineering can both include the lunar rover. When I work on its suspension, there’s one implementation to test and both Suites get the change.
If you’d like to compare two implementations of the same model, I’ve also published a smaller cloth simulation in C# with OpenGL and in Swift with Metal. Cloth simulation source · My GitHub projects
Which would you like me to take apart in a second post — the shader that bends light around the black hole, the contacts between grains in the tumbler, or the collision sequence after the opening break? You can pick another experiment from the catalogue, too. Makarov Suites catalogue · More recordings on YouTube
