Valor Traffic Circle — 3D Campus Pickup Simulator

Tools and approach

  • DATA: the school’s own published traffic plan — the 2015 State Plane engineering drawing, the arrival/departure circle plan, and the April 2016 dismissal map, which revised the direction both circles run
  • BUILT WITH: Three.js as a single self-contained static directory — no build step, no server, no API key. The whole app is index.html, one stylesheet and eight JavaScript modules
  • DATA MODEL: one file, plan.js, holds every road, driveway, circle, building, walkway and sign as coordinates in metres. The engine reads only that file, so when the traffic circle changes the plan data is updated and nothing else is touched
  • NOTE: the translations are in the twelve languages the school itself asks families about on its scholar application — Kurdish and Somali included, because those are the ones Nashville’s Valor families actually speak

Tap any traffic circle in the scene and everything else dims while that loop lights up and the camera flies in to it, and the panel gives you the written directions for that specific route — enter at ALL CARS ENTER, run the loop, leave at EXIT ONLY, or take the west exit to Bass Ave if you are turning left onto Nolensville. Tap a sign or a driveway and it tells you what that one is for.

Traffic runs the whole time: cars circulate the loops in both lanes, buses work the bus lane out to Nolensville Road, families walk the pedestrian spine and the guarded crossing at spot X, and the traffic officers stand where they stand. Nobody ever stops in a lane, which is the entire point of the thing.

3D voxel diorama of the Valor Nolensville campus showing two traffic circles, the three school buildings, parking lots and the student waiting area, with the Flagship traffic circle highlighted in orange and its six numbered directions in the side panel
The Nolensville campus diorama with the Flagship traffic circle highlighted. The loop pulses in orange, everything else dims, and the panel gives the six numbered steps for that route.

Everything is measured in metres against the original plan’s 0.5 m scale bar, the brand orange and navy come straight from the live school’s own stylesheet, and the colours on the signs repaint themselves when you change language — including right-to-left for Arabic, Kurdish and Persian.

Review

THE GOOD: Putting the geometry in one data file was the decision that made the rest easy. The 2016 map reversed both circles against the 2015 plan, and reversing them was a one-word change (flow: 'ccw') rather than an edit to drawing code. It is also what makes the app reusable for a different campus — the same engine, a different plan.js.

THE BAD: The first working version spent 588 draw calls, because every car was six separate meshes and every person was five. It ran fine on a workstation and would have been miserable on a phone held in a pick-up line. Merging each vehicle into one geometry and instancing it per colour took it to 124.

THE WORSE: Every automated check passed while the people were invisible. A 1.7 m walker subtended about 6 pixels at the opening camera distance — technically present, functionally gone — and no count-based test can see that. It took measuring the apparent size rather than looking at the screenshot, because looking at the screenshot produced three confident claims about defects that did not exist while missing the one that did.

What we learned

This was the first project where the drawing was the input rather than the code: three engineering PDFs, one of which contradicted the others, and the answer came from reading the arrow glyphs on the map rather than the legend text under it. It was also the first to need a language set chosen from evidence — the school’s own application form lists what families speak at home, and that list is not the list anyone would have guessed.

And it was the first where a count is not evidence. Cars: 49. People: 42. Draw calls: 124. Every one of those numbers was correct while the thing they described was unreadable. The check that mattered was one division — object height, camera distance, field of view — and it turned out a fix has to be written as a number in a test or it will come back.

The AI wrote these directions, and they are machine-translated into your language. The app says so on every screen, because a mistranslated school pick-up instruction is the one kind of wrong this kind of app is not allowed to be quietly about.