Canonical benchmark brief
03. Vice City — Open World City Generator
Back to all prompts# 03. Vice City — Open World City Generator
A living city you can watch. That's it. That's the whole thing.
## What to make
A procedurally generated 3D city rendered in isometric or top-down perspective, filling the browser window. Buildings rise from a grid. Streets run between them. A sky hangs overhead. The city populates itself and runs.
A sidebar on the right holds the controls. A stats panel in the corner shows live metrics.
### The city
The city is generated procedurally on load and on demand. Each generation is unique — different building heights, different block layouts, different street grids. The algorithm decides:
- Building count and density
- Street width and grid pattern
- Landmark placement (a plaza, a tower, a park)
- Zoning (residential, commercial, industrial, mixed)
The city must feel like a city. Not a spreadsheet. Not a diagram. A place with presence.
### Sidebar controls
**Regenerate City** — Clears the current city and generates a new one from scratch. Buildings spring up with a brief stagger animation (50ms between each row, for visual effect).
**Toggle Day/Night** — Transitions the sky, lighting, and window glows. Day is bright with long shadows. Night is dark with lit windows, street lights, and a visible moon or city glow on the horizon.
**Earthquake Mode** — Shakes the entire view. Buildings sway. Camera oscillates. After 3 seconds the shaking stops and the city settles. The UI shows an "EARTHQUAKE" badge briefly.
**Toggle Traffic** — Adds moving vehicles on the streets. Cars follow the road grid, stop at intersections, and vary in speed and color. Toggle again to remove traffic.
### Stats panel
Top-left, always visible:
- **Buildings** — count of structures rendered
- **Population** — estimated (buildings × average units per building)
- **Render time** — how long the last regeneration took in milliseconds
## Always-visible HUD
Top-right: FPS counter, updates every second.
Bottom-right: Controls legend ("REGENERATE · DAY/NIGHT · EARTHQUAKE · TRAFFIC · scroll to zoom · drag to pan").
## Hard requirements
- Single `index.html`. No build step.
- No external textures fetched at runtime. All geometry and materials are procedural or drawn to canvas.
- Must regenerate in under 3 seconds on a 2020 laptop.
- Traffic, if enabled, runs at 30fps minimum.
- `prefers-reduced-motion`: no camera shake, no stagger animation, no vehicle movement.
## Visual rules
- Isometric or top-down 3D. Camera can zoom and pan, but angle is fixed.
- Buildings are simple extruded blocks — varied heights, varied window patterns, varied roof shapes. They read as buildings from above.
- Streets are flat planes between buildings.
- Day: warm sun, long directional shadows.
- Night: dark sky, ambient city glow, individual lit windows on buildings.
- Cars are simple top-down shapes that move along streets.
- No photorealism. This is a stylized city, not a GTA clone.
- The palette shifts with day/night: warm gold by day, deep blue and amber by night.