This city
This website. It's a city I built from scratch, and each district is one section of my portfolio.
How it's made
- The land: real elevation data from a few different coastlines, stitched together so it looks real without being any one place, then worn down with an erosion simulation.
- The city: planned across the whole map first (how dense each area is, the main roads, streets that follow the coast), then generated building by building with Python scripts in Blender.
- In the browser: React and TypeScript for the site, and Three.js with custom shaders to draw about 50,000 buildings, the water, shadows and night lights as you watch. It switches between day and night with your system's light and dark mode.
- The intro: my signature, traced from a scan and drawn stroke by stroke before the ink spreads into the city.
My role
The idea, the art direction and the design calls were mine, from what each district should be to how the camera flies between them. AI coding agents wrote most of the code. My job was deciding what to build and checking every result.
What I learned
I used this site to see how far I could get building something big with AI agents. Most of the work wasn't writing prompts; it was showing what I meant: sketching, collecting reference photos, comparing renders with real cities and other people's work, and checking things myself instead of taking an agent's word for it. Along the way I learned a lot about what Three.js can do.