All projects

FirstFolk

A vibe-coded experiment. A 3D settlement builder in your browser: found a village, win over the valley, fill the Crown.

Year
2026
Status
Live
Stack
  • TypeScript
  • Three.js
  • Preact
FirstFolk at version 0.30, from above: a thatched village of timber-framed huts and workshops with little pointy-hatted settlers carrying goods between them, trees and a lake around the edge, resource counts and a Crown bar across the top, and a build menu along the bottom.

What it is

FirstFolk is a vibe-coded experiment: a 3D settlement builder that runs offline in your browser. You found a village in a valley, get it through the seasons, win over the neutral folk who already live there, and race an AI rival to fill a Crown. A game takes about 30 to 45 minutes.

Why I built it

I wanted to see how far I could get by describing a game to Claude Code and letting it do the work. I had just read Simon Willison’s Battle Drones write-up, and I’m not a big gamer: I’ve only really played Age of Empires II, The Settlers II and Total War: Rome II, so FirstFolk is my attempt at a mix of them.

I wrote up how it went in My experience of vibe coding a game with Blender MCP and OpenAI image generation.

Technical notes

  • It’s TypeScript, Three.js and Preact, with no server.
  • The simulation is deterministic, so Claude could play thousands of AI-versus-AI games headlessly and I could tune the game from the results. The last run was 336 duels: each of the seven playing styles wins between 44% and 59% of the time.
  • The buildings and settlers were modelled in Blender, driven by Claude through the Blender MCP server.
  • The images were generated with OpenAI’s image models during development, and the whole bill came to $3.98.
  • The soundtrack is synthesised in code, so there’s no audio file in the project.
  • In just over 24 hours it went from nothing to v0.30: about 19,000 lines of TypeScript, 191 tests and 38 releases.