DAILY DIRT RALLYBASH TV SPORTS BROADCAST

How the Daily Track Is Generated

One track a day, identical for every player, built from nothing but the date. This is the whole algorithm: a seeded random number generator, a loop that grows outward, and sixteen tiles that fit together.

The promise of Daily Dirt Rally is that everyone drives the same track on the same day. There is no track database to keep in sync and no download — the layout is recomputed from the calendar date whenever it is needed, and the same date always produces the same track. This guide explains exactly how, because the mechanism is simple enough to be worth understanding and it tells you what shapes to expect before you drive.

Step one: the date becomes a number

The seed is the date string itself — 2026-09-07 and nothing else. Those characters are folded into a single integer with a classic string hash, and that integer feeds a small deterministic generator that produces the sequence of pseudo-random values every later step consumes.

Two properties matter here. It is deterministic: the same date always yields the same number sequence, on any machine, which is what makes a shared daily track possible without storing anything. And it is unpredictable enoughthat consecutive dates produce completely unrelated layouts — yesterday’s circuit tells you nothing about today’s.

Step two: a square grows into a circuit

Every track begins life as the smallest possible loop: a 2×2 square of grid cells, four cells in a ring. That is not a track, it is a starting point.

The generator then runs between fifteen and twenty-four expansion steps. Each step:

  1. picks one edge of the current loop at random — two neighbouring cells;
  2. picks a perpendicular direction, outward or inward, at random;
  3. projects those two cells one step in that direction;
  4. checks whether either projected cell already belongs to the loop — and if either does, abandons this step entirely;
  5. otherwise splices the two new cells into the loop between the original pair.

Each successful step replaces a straight section with a three-sided detour, so the loop grows a bump. Repeat that fifteen-plus times on a loop that is itself getting longer and more convoluted and you get the interlocking rectilinear circuits you actually drive.

Why track length varies day to day

Expansion steps that would collide with the existing loop are skipped rather than retried, so the number of attempts is not the number of successes. Some days most steps land and you get a long, tangled circuit; other days the loop boxes itself in early and the track stays compact. That is why the segment count on the front page moves around instead of being constant.

Step three: cells become tiles

The loop at this point is just an ordered list of grid coordinates. To turn it into artwork, the generator walks the list and asks one question per cell: which of my four neighbours are the previous and next cells in the loop?

The answer is packed into a four-bit number — north is 1, east is 2, south is 4, west is 8 — so a cell that connects north and south scores 5, and one that connects north and east scores 3. Sixteen values are possible, and there is one piece of tile art for each. Because the path is a closed loop, every cell has exactly two connections, so in practice you only ever see six of them:

ValueConnectionsTile
5North + SouthVertical straight
10East + WestHorizontal straight
3North + EastCorner
6South + EastCorner
9North + WestCorner
12South + WestCorner

This is why every circuit is built from right angles and long straights rather than sweeping curves: the tiles are square, 360 units on a side, and they only ever meet edge to edge. It is also why the four-tile straight matters so much when you plan nitro use — the geometry comes in fixed units, so you can count them.

Step four: the collision masks

Each tile ships with a 16×16 grid recorded from its own artwork, marking every cell as drivable dirt or solid grass. That grid — not the tile’s square footprint — is what the game tests your truck against, which is why the boundary described in the track limits guide follows the ragged painted edge exactly.

Storing the mask alongside the art rather than deriving a hitbox by hand means the two can never drift apart. If a tile is redrawn, its mask is regenerated from the new pixels.

Step five: checkpoints, start line and metadata

Checkpoints are placed mechanically: every eighth tile around the loop, plus the final tile before the lap closes. On a typical sixteen-tile circuit that gives you a small number of well-separated gates, which is enough to make cutting the course impossible without being restrictive. The start line sits on the first tile of the loop, facing east.

The server also computes the numbers you see on the front page: checkpoint count, total distance (tiles multiplied by tile size), and a difficulty rating derived from the mix of surfaces on the circuit. That last one is currently not very informative — as explained in the track limits guide, daily tracks are cut entirely as dirt at the moment, so the surface mix is the same every day and the rating does not move. It will start meaning something when varied surfaces reach the daily generator.

What this means for you as a driver

  • The track is knowable. It does not change while you practise. Every second you invest in learning today’s braking points pays off for the rest of the day and then resets cleanly at midnight.
  • Straights come in whole tiles. Count them on the minimap and plan your boosts around four-tile runs.
  • All corners are 90 degrees. There are no decreasing-radius surprises. Once you have a technique for one corner you have a technique for all of them.
  • Nobody has a track advantage. Same seed, same layout, same everywhere — the only variables are your line and your nitro discipline.

Trying it yourself

The generator is a few hundred lines of TypeScript with no external dependencies, and the daily layout is served over a plain JSON endpoint, so anyone curious can inspect a day’s track data directly. If you build something interesting with it — a route planner, a lap-time simulator, a visualiser — we would genuinely like to see it. The contact page reaches a real inbox.

Next: how times are recorded and what keeps the leaderboard honest.