Skip to the scenes

Real-time software rasterization - no GPU

Triangles, filled and depth-tested, on the CPU

Every scene below is drawn without a graphics card. A software rasterizer projects each triangle to the screen once, fills only the pixels it covers, and resolves who is in front with a per-pixel z-buffer - the O(covered pixels) path, not the ray-per-pixel one the offline renderers walk. The spinning box holds roughly two thousand frames a second on a single core; the four-camera halls run all four live viewports, a shared sun shadow map, and a planar floor mirror well past three hundred frames a second. Physics ticks on a fixed 120 Hz clock so the motion is reproducible; the renderer only shows what the simulation decided. Written in plain C# against the .NET base class library - no GPU, no game engine, no shader, and no image files on this page except the frames the program rendered.

~2,000fps, lit box, one core @ 480x320
531 / 307fps, cube / flagship - 4 live views
120 Hzfixed physics tick, deterministic
z-bufferper-pixel depth, back-face culled
0external dependencies - just the BCL
Four live camera views of one hall: six material-different balls, a glass orb, a velvet rope and a patrolling guard, all sharing one physics world and one shadow map
Flagship hall - everything live at once 4 cameras, 2x2 762 x 538 307 fps avg, worst 10.6 ms
A tilted cube, yellow top and pink and green sides, spinning on a grey ground under one light, with a green frame-time readout in the corner
The raster path Spinning lit box The foundation the rest is built on: a cube of twelve triangles, back-face culled, flat-Lambert shaded, and filled into an RGB plus depth buffer. One core, no tiling, no GPU - it clears about two thousand frames a second at 480x320, roughly seventy times the 30 fps real-time bar. The green corner HUD is the live per-frame cost, printed by the program. z-buffer - flat Lambert - ~2,000 fps single core (bench) - 480x320
A 2x2 grid of four camera angles on the same scene: colored boxes and a sphere on a checkerboard floor, with mirror reflections and cast shadows, orbit top front and diagonal views
Multi-view engine Four cameras, one state The same simulation - an icosphere integrated at 120 Hz, restitution contacts, adaptive sub-stepping - rendered from four cameras at once, each sampling one shared sun shadow map and a planar floor mirror fed by a reflected-camera pass. The four viewports render in parallel off one already-ticked frame. 4 cameras - shared shadow map + planar mirror - 531 fps avg, 4x 384x264
Four views of a hall with six colored balls, a pale glass orb, columns, a red rope and a guard figure on a checkerboard floor
Everything at once Flagship hall The integration exe: six material-different balls and a glass reliquary orb share one physics world, the orb thermal-shocks into twelve mass-conserving Voronoi shards, a hero laps the hall brushing a position-based velvet rope, and a perception-driven guard escalates and stands down. Four live cameras, one shadow map, per-view mirror - all above three hundred frames a second. balls + orb -> 12 shards + rope + guard AI - 307 fps avg, 4 views
Split screen: a circular telescope scope with cross-hair reticle on the left, a third-person chase on the right, a red snowmobile fleeing a dark avalanche down a white slope
Seamless loop Avalanche chase A snowmobile rigid body - slope gravity, traction, aero drag, a fishtailing yaw, spring-damper suspension - outrunning a bulk avalanche with an entraining powder front. The left pane is a real telescope: field of view cycles 3x, 10x, 20x with a mil-dot reticle and zoom-scaled jitter. The danger dips to a threshold and recovers, so the clip loops with no cut. snowmobile vs avalanche - telescope 3x/10x/20x - 96-frame seamless loop
Split screen: a telescope scope with reticle on the left, a third-person surf camera on the right, a surfer carving down the face of a pale rolling wave
Seamless loop Endless wave surfer A surfer and board on a Gerstner wave, h = A sin(kx - wt), with buoyancy, planing lift, drag, down-face gravity, and rail carving, plus a near-wipeout roll that counter-steers back. The wave is periodic and the frequency is snapped to the seam, so the surfer returns to the opening pose - an endless ride with no keyframes. Gerstner wave - buoyancy + planing lift - 96-frame seamless loop