Greyhound Racing — Procedural Race Simulation

pavelzosim:~/atlas_SYS.ONLINE / UTC+3

01 Overview

This was the first time I built a complete 3D production entirely from scratch, solo — environment, characters, simulation, systems, and final compositing, all one person. It's an R&D piece from June 2016: realistic-looking greyhound-racing footage with a different, randomized finish every time.

Broadcast-style render of greyhounds racing down the track, with motion blur and chromatic aberration matching a live sports feed
Final composite, graded to read as a live broadcast feed rather than a 3D render.

Tools: Cinema 4D, Octane Render, Anima Crowd Simulation, ZBrush, Substance Painter, Photoshop, and After Effects.

02 Environment: the stadium

The stadium model runs to roughly 2,600 objects, built from a real dog-racing track using real-world measurements and about 360 reference photos and videos. An XPresso controller system exposes stadium lighting and time-of-day as simple parameters, so a lighting pass doesn't mean touching individual lights by hand.

To keep the tribunes from reading as empty geometry, crowd on the stands is generated with the Anima crowd simulation plugin.

Split wireframe and rendered view of the full stadium model, with inset details of the starting gate and a greyhound in racing jacket
Full stadium — wireframe against the rendered pass, with starting-gate and dog detail insets.
Wireframe view of the grandstand, floodlights, and trackside fencing built to real-world scale
Grandstand and floodlight wireframe, built at real scale from the reference stadium.

03 Dog sculpting, shading, rigging, and animation

The greyhound started as a high-poly ZBrush sculpt, retopologized down to a production mesh with a baked normal map. Three separate diffuse textures were built in Substance Painter and Photoshop, and a Cinema 4D shader randomizer handles per-dog coat color and race-jacket number variation at render time — no dog in a race needs a manually authored material.

Rigging uses a straightforward FK bone chain; the gallop cycle is a 34-frame idle animation.

Greyhound production model next to its retopologized low-poly mesh and unwrapped UV shells
ZBrush sculpt through to the retopologized production mesh and UV layout.
Five poses from the greyhound's FK skeleton gallop cycle, shown in sequence
FK rig — five poses from the 34-frame gallop cycle.

04 Random generator and broadcast graphics

The race needed to feel like a contest rather than a fixed animation loop, so each dog runs on its own randomized speed value that changes several times over the course of the run — built with Cinema 4D, C.O.F.F.E.E, and Python.

Each dog also gets a random name pulled from a text file, and the same names drive the broadcast-style leaderboard graphic: it shows the current top three during the run, then locks in each dog's time at the finish. Camera movement and focus are calculated continuously from the pack's average position, so the shot follows the race instead of running a scripted path.

C.O.F.F.E.E expression node network calculating rotation and position values that drive the random race logic
C.O.F.F.E.E node network behind the random speed and camera-tracking logic.
Broadcast-style leaderboard graphic listing six greyhounds by random name, position, and time
Broadcast leaderboard — names, positions, and times driven by the same generator.

05 Render, compositing, and post-production

Rendering runs on Octane. The heavy stadium environment is rendered once as a background plate and reused underneath the runners — a choice that also made random camera rotation cheap, since the expensive part of the scene never needs re-rendering per shot. The main challenge at this stage was separating the right depth planes cleanly so the composited dogs read correctly against that reused background.

Render time was pushed down close to real-time, and post-production stayed intentionally simple: a compositing pass over PNG sequences in After Effects.

Gallery: clean render pass next to the isolated matte used to separate the dogs from the reused stadium plate.
Wide broadcast-style shot of the greyhound pack racing along the trackside advertising boards
Wide trackside shot from the finished composite.
Finished race clip, graded to broadcast look.
Closer running clip showing the gallop cycle and per-dog material variation in motion.

06 Result

This was one of the first projects I built completely solo, end to end — every discipline from environment art through simulation systems to final compositing held by one person, the same shape of ownership that shows up throughout later client work. It's a decade old now, made in tools I don't use day to day anymore, but the underlying instinct — find the repeating pattern, build a system instead of hand-authoring each result — is the same one behind the procedural work on this site today.

// END OF ARTICLE // GREYHOUND_RACING_RND // EOF