Skip to content

Latest commit

 

History

History
61 lines (42 loc) · 2.99 KB

File metadata and controls

61 lines (42 loc) · 2.99 KB

Field Notes: Building a World That Remembers

Aether Garden — Thousand Token Wood hackathon, June 2026

The idea

Most AI demos forget. You type a prompt, get a character sheet, close the tab. The output dies with the session.

Aether Garden is the opposite: a persistent fantasy world running on MiniCPM 3-4B (OpenBMB) via Modal. When you open it, the world is already days old. Other visitors have summoned strange souls. An hourly simulation has been writing history whether anyone is watching.

The AI is load-bearing. Remove inference and you have a database of text — not a world.

What we built

The brain

  • SQLite world state: 8 sacred locations, entities, relationships, interactions, world events, Book of Ages
  • Entity generation: visitor description → structured JSON → validated profile → permanent soul
  • Autonomous tick (hourly on Modal): world event → 2–4 interactions → memory compression → dream fragments → lifecycle → backup to HF Dataset
  • Location special mechanics: Library memory fragments, Clock Forest accelerated aging, Mirror Bog contradictions, Moon Market memory trades, Valley dreams

The face

  • Custom Gradio UI with mystical CSS, SVG world map, Realm Pulse live ticker
  • Three.js diorama per location: cutout souls, bloom, particles, simulation-synced behaviors (meeting, sleeping, enthroned, relationship-aware drift)
  • Soul Cards: downloadable 1200×675 share images — the viral artifact
  • Bonds tab: 3D relationship graph of every alliance and rivalry the simulation forged

What surprised us

  1. Small models are enough for structured JSON + poetic prose if prompts are tight and you retry on failure.
  2. Persistence is the product. Judges opening a world with Day 15 history feel the magic immediately.
  3. The diorama sells "alive." Binding the 3D scene to the latest encounter and relationship data changed everything — ambient wandering wasn't enough.
  4. Modal cold starts hurt UX. Pre-warming on boot + rotating wait copy during summon helps; min_containers=1 on demo day is essential.

Stack

Layer Choice
Frontend Gradio 5 + custom HTML/CSS + Three.js iframe
Inference MiniCPM3-4B on Modal A10G
Portraits SDXL-Turbo
Database SQLite WAL
Backup Private HF Dataset
Simulation Modal scheduled function

What we'd do next

  • Fine-tune MiniCPM on accumulated entity generations for sharper voice
  • Real-time WebSocket presence so visitors see arrivals live
  • glTF characters instead of 2.5D cutouts

Prize strategy

  • Primary targets: Thousand Token Wood, Off-Brand, Modal, Best Agent, Best MiniCPM, Tiny Titan
  • Optional badges: Well-Tuned (fine-tuned model), Sharing is Caring (public traces), Field Notes (this post)
  • Not pursued: Off the Grid (would sacrifice always-on shared world)

Try it

Summon something strange. Come back tomorrow. Read the Book of Ages. Someone you never met will have changed your soul's life.

The world remembers.