Inspiration

We wanted the feeling of doodling a mountain on a napkin and then walking on it with other people. Most “draw something” apps stop at a flat image. Most multiplayer worlds are pre-authored maps. Infinite Terra sits in the gap: one careless sketch becomes permanent land, buildings, creatures, and sky in a shared 3D place that gets weirder and more yours the more strangers show up.

What it does

Infinite Terra is a public, shared 3D world anyone can visit and grow.

In under a minute, with no tutorial:

  1. Click to look around · WASD to walk · Shift to run
  2. Contribute with one key:
    • E — draw terrain or a building silhouette
    • R — create an animal (outline → pattern → sound → walk path)
    • T — draw a cloud into the shared sky
    • F — plant vegetation / a biome patch on the ground under you
  3. Commit → it appears where you’re standing (or hanging overhead), live for everyone

What your input becomes

  • Terrain — a ridgeline sketch becomes walkable mountains (darker/thicker ink = higher ground)
  • Buildings — a front-view silhouette becomes a full structure with culture-styled exteriors; walk through the door into generated multi-floor interiors with stairs and furniture
  • Animals — colored outline + pattern sketches extrude into solid 3D creatures; record a short voice clip and a 5-second walk path; hear them when you get close
  • Clouds — soft white strokes become clouds hanging over that spot in the shared sky
  • Vegetation — type something like “cherry blossom” or pick a biome → hundreds of plants instance across the terrain with species-specific shapes and colors

Other travellers show up as glowing wisps (including inside the same building/floor). The landscape is a community garden, not a personal sandbox.

The Observatory (/dashboard) is a live analytics view of real contributions — growth over time, mix by type, spatial density / frontier, palette + weather mood, and a short curator insight grounded in the live numbers.

How we built it

Stack: Next.js, React Three Fiber / Three.js, Supabase (Postgres + Realtime Broadcast), Recharts for the Observatory, optional Gemini for curator notes.

The technical core is the transformation pipeline — not “AI draws a prettier picture,” but local, deterministic synthesis from a tiny sketch:

Terrain — Sketch → Synthesize

  • Ink density → heightmap
  • Blur (pen jitter → landform)
  • Fractal detail weighted by altitude (peaks rugged, valleys walkable)
  • Hydraulic erosion (~12,000 virtual droplets carve valleys)
  • Rendered as walkable Three.js terrain

We store the 64×64 sketch (~2KB), not the heightmap. Every client re-runs the same synthesize() and gets identical mountains — cheap sync, no desync.

Buildings — Silhouette → Enterable Structure

  • Bounding box / ink → width, depth, height
  • Roof peak detection + floor-band profile so L-shapes and tapers survive
  • Type classification (bungalow, tower, mansion, …)
  • Deterministic culture styles (mediterranean, nordic, japanese, colonial, tudor, adobe, modern, …)
  • Kitbash exterior + seeded interiors (rooms, stairs, furniture); terrain pads flatten at the door so you can actually walk in

Animals — Outline → Living Creature

  • Color outline + pattern layers → solid 3D extruded mesh
  • Optional mic clip (proximity audio) + recorded patrol path + speed
  • Synced to the shared world so strangers meet your creature in the wild

Sky — Stroke → Cloud

  • Soft white sketch → sky cloud asset over that location, blended into the daytime sky / fog system alongside any weather cells

Vegetation — Name → Forest

  • Plant/biome string maps to species-aware geometry, color, and dense instanced placement on real terrain height

Shared layer

  • Assets in world_assets; traveller positions over Broadcast (~10Hz, not DB writes)
  • Presence works outdoors and indoors (same building + floor)

Observatory

  • Same realtime table + traveller channel as the world
  • Live charts, map, themes, and a curator note generated from computed stats (not fake demo data)

Challenges we ran into

  • A traced drawing is not a mountain. Naively lifting ink into height made wobbly ramps. Blur + fractal detail + hydraulic erosion are what make it read as landscape.
  • Sync without shipping megabytes. Storing heightmaps would be huge and fragile; sketch-as-recipe + deterministic re-synthesis fixed that.
  • Buildings that look like the doodle and you can enter. Floor profiles, roof detection, culture kits, and door-aligned terrain flattening so silhouette quirks become real massing you can walk through.
  • Creatures that feel authored, not pasted. Multi-step input (outline, pattern, sound, path) had to stay under a minute while still producing a colored 3D mesh with behavior.
  • Realtime presence at walk speed. Position updates had to be Broadcast, not row writes.
  • Demo reliability. The critical transform path stays local/deterministic so judging can’t die on a model rate limit.

Accomplishments that we're proud of

  • A named, demoable transformation: one moment of drawing → permanent 3D world geometry, live for everyone
  • Not just land — buildings you enter, animals you hear, clouds you draw into the sky, forests you plant
  • A world that gets better with more people — denser skyline, stranger fauna, overlapping clouds, more travellers
  • The Observatory — real usage data you can explore live, plus a grounded curator insight
  • Something a stranger can figure out in under 60 seconds: click, walk, press a key, draw, commit

What we learned

  • The “interesting middle” of a hackathon project is often geometry + simulation + realtime sync, not another prompt box
  • Deterministic pipelines beat opaque generation when you need multiplayer consistency and a live demo
  • Community artifacts need cheap contribution + expensive-feeling results — tiny sketch in, rich place out
  • Surfacing usage data (Observatory) makes the shared artifact legible to judges and visitors
  • Input can stay simple even when the transform is deep — one key, one sketch, one commit

What's next for Infinite Terra

  • Keep the world up after the weekend as a living doodle-planet
  • Sync vegetation the same way as terrain/buildings so forests are fully shared
  • Richer creature behaviors and collaborative “districts” where groups shape a region together
  • Deeper Observatory insights (themes across sketches, contribution “eras”)
  • Lightweight curation so the frontier stays walkable and fun as it grows

Built With

Share this project:

Updates

Submission history