Agentic Town — Bramblestoke village where 12 named villagers visibly pursue daily goals
A 3D AGENTIC demo: Bramblestoke village with 12 named villagers each pursuing daily goals across 5 districts. Each villager has a VISIBLE BRAIN — goal, need, plan, mood. Like RimWorld meets Animal Crossing meets Stardew.
Built with:three.js r0.160 (single file)5 districts + white-flash portal transitions every 60-90slocalStorage Bramblestoke brain memory + relationships graph across reseeds
#threejs#agentic#autoplay
## What this is
A 3D recreation of Bramblestoke Village, a fictional medieval-cozy village where twelve named villagers each visibly pursue daily goals across five districts. Market Square has vendors, a fountain, and the town crier. Residential Row has cottages, gardens, and picket fences. Workshops contains the smithy, mill, weaver, and baker. Green Commons has an old oak tree, picnic spot, and meadow. Town Hall has the council chamber, mayor's office, and library. White-flash transitions move the camera between districts every sixty to ninety seconds. Karina the smith's apprentice (commissioning a sword), Brom the smith (keeping the forge stocked), Mayor Wilfred (settling disputes), Ellis the baker (delivering bread by noon), Tilda the weaver (finishing the Mayor's commission), Hob the miller (grinding eight sacks of flour), Vianne the herbalist (picking wild thyme), Father Cormac (tending the chapel garden), Ned the town crier (announcing five events), Marjorie the librarian (shelving returns), Dorian the wandering bard (earning fifty coppers), and Rina the kid (chasing the cat through five districts) each have a goal, a need, a plan, a current step, and a mood. The AGENTIC THINK PANEL in the top-right surfaces the focused villager's brain. Goal trails are painted to a canvas-texture ground overlay in per-villager color and fade after a few seconds. Decision diamonds pop above villagers' heads when they transition to a new plan step. Interaction sparkles fire when two villagers meet within three units, with the gossip log writing to localStorage. The STORY CHYRON rotates Acts 1, 2, and 3 every three minutes splicing in the saved gossip. The RELATIONSHIPS GRAPH OVERLAY toggles every thirty seconds, redrawn from memory. Twenty-four director cameras cycle. Eighty instanced ambient peasants fill the village.
The village *remembers*. localStorage saves villager goals, plans, who-met-whom, gossip, and who-helped-whom between reseeds. Each ten-minute reseed advances the day; gossip compounds, friendships form, Karina's sword commission progresses one step, the Mayor's commissioned tunic gets closer to done.
You don't play it. You watch it. And it remembers.
## Why this is mind-blowing
The chyron is the secret weapon: "Day 4 Act 2 — Karina pays Brom 200g for the iron sword. Across the village, Ellis delivers bread to the chapel before noon. Rina catches the cat under the oak tree." That single line stitches three districts in one beat — Karina on the Workshops smithy-close camera with Brom (decision diamond as Karina hands over coins, interaction sparkle, plan-step ticks 2 of 4), Ellis on the Town Hall chapel-side camera with the bread basket (goal trail visible from baker's), and Rina on the Green Commons oak-tree-base camera with the cat finally caught (story chyron Act 2 climax). Multiply that by twelve villagers each with a brain panel showing goal/need/have/plan/step/mood, goal trails painted to the ground in twelve distinct colors, decision diamonds popping every time a plan step ticks forward, interaction sparkles + gossip log every time two villagers meet, a relationship graph that compounds across day++ reseeds, and a Stardew-Valley-cozy chyron beating Acts 1-3 every three minutes, and you've got a RimWorld-ant-farm-cozy stream that genuinely earns its agentic scope. Tone is cozy medieval-village: ALL FICTIONAL.
Prompt
Build a single-file HTML page that recreates "a fictional medieval-cozy village where 12 named villagers visibly pursue daily goals" as a continuous 3D autoplay world with AGENTIC story-engine mechanics.
CONCEPT: BRAMBLESTOKE VILLAGE — fictional medieval-cozy village with 5 districts. 12 named villagers each pursue daily goals.
Hard constraints:
- One HTML file, < 200KB.
- three.js r0.160.0 from unpkg, IIFE strict, full disposable cleanup, reseed every ~10 min.
- First body line: <!-- ROUND18_AGENT v1 -->
- localStorage memory under key `bramblestoke_brain_v1` — saves villager goals/plans/relationships compounding across reseeds.
Round 17 PORTAL spec retained:
- 5 districts + own palette, white-flash transitions every 60-90s
- 24 director cameras + mini-map
Round 18 AGENTIC spec (NEW):
1. AGENTIC THINK PANEL — focused villager's brain (goal/need/have/plan/step/mood)
2. GOAL TRAILS painted to canvas-texture ground overlay
3. DECISION DIAMOND over villager on plan-step transitions
4. INTERACTION SPARKLES + gossip log when villagers meet
5. STORY CHYRON rotates Acts 1-3 every ~3min splicing saved gossip
6. RELATIONSHIPS GRAPH OVERLAY toggles every 30s
Tone: cozy medieval-village. ALL FICTIONAL.
Paste this into Claude, Cursor, or Copilot. Change one thing that matters to you.
What I learned shipping it
How to portal a camera between 5 village districts in one demo using white-flash transitions + own-palette per district
How to make 12 villagers each have a VISIBLE BRAIN with goal/need/plan/step/mood + render goal trails as canvas-texture overlays
How to use localStorage to persist a relationship graph + gossip log compounding across day++ reseeds