Build a 3D city in three.js that IS this repository. Take your time, be creative.
First mine the repo into JSON: one pass over `git log --no-merges --name-only`
plus a file census. Per directory — lines, files, commits, commits in the last
30 days, top authors. Per person — commits, first/last activity, what they touch.
Then build the city from that data. Every visual property must be a measurement.
Nothing decorative.
Zone it into three areas with genuinely different architecture. Here's the one
rule that matters: DON'T map size to height everywhere.
frontend/UI → SUBURBS. A module is an estate of detached houses.
Lines buy LAND, files buy HOUSES. Two storeys, never more.
backend/core → DOWNTOWN. A module is a setback tower. Lines buy HEIGHT.
tests/infra → THE WORKS. A module is a hangar with a barrel-vault roof.
Lines make it LONGER, not taller.
Make height mean lines-of-code everywhere and all three zones look like the same
city. Spending the measure in a different dimension per zone is the whole trick.
Score every module on how well it's built — has its own docs, test ratio, average
file size, largest file — and let that decide how handsome the building is, in
its zone's vernacular: raw concrete through to landmark. Don't soften it. The
most important module in the repo scoring worst and getting a concrete slab is
the most interesting thing the city will ever tell anyone.
The people are the contributors. Sized by commit count, coloured by the area they
work in, walking routes through the code they've actually touched. Anyone quiet
for a month stands as a bronze statue instead of pretending to still be here.
Bots fly.
Night, dusk and day. Street lamps that actually light the road. Hover for the
numbers, click to inspect, a mode with no UI at all, and a tour that flies the
whole thing.
No build step and no new dependencies: plain ES modules, three.js from a CDN
import map. Then screenshot it and iterate on what you see — most of the design
only becomes obvious once it's rendered.