Skip to content
Product

Orbitour

A trip planner where the 3D city is the interface: AI agents plan real days, and you fly through them stop by stop.

Role
Creator · full stack
Type
AI product
Stack
  • React
  • TypeScript
  • three.js
  • Node.js
  • OpenAI API
  • MongoDB
  • SSE
Highlight
Grounded multi-agent planning over verified places, flown through on photorealistic 3D tiles.
Fly from stop to stop over the real city

The problem

AI trip planners invent places, ignore geography and hand you a flat list. Planning should be grounded in real, verified places, and you should be able to see the trip, not just read it.

What I built

Name a city and say what you like. A crew of code tools and two AI agents builds a day-by-day plan on real streets. You then fly through it one stop at a time over Google's photorealistic 3D tiles, and change it by hand or by typing what you want.

How it's built

  1. 01Your requestcity · interests
  2. 02Surveyorcity & must-sees
  3. 03LibrarianOSM · Wikipedia
  4. 04ScoutAI · picks places
  5. 05Verifierverified only
  6. 06Plannergroup into days
  7. 07Routerorder & legs
  8. 08Food findermeals & lodging
  9. 09Timekeepervisit times
  10. 10Forecasterweather
  11. 11CriticAI · review
  12. 12Trip in 3Dsaved & opened
Planning pipeline: code tools and two AI agents, run in sequence and streamed to the client.
  • A multi-stage pipeline: deterministic tools discover, rank, verify, route and time the trip; two AI agents (Scout and Critic) select and review.
  • Agents can't invent places: every pick must come from a verified candidate set built from OpenStreetMap, Wikipedia and Wikidata.
  • Preferences like budget, accessibility and diet are enforced in code, and the Critic rejects and replaces invalid stops.
  • Progress streams to the client over Server-Sent Events, with pins appearing as places are verified.
  • Cinematic stop-to-stop camera flights with isolated, deterministic, unit-tested camera math.
  • Cost-aware: responses cached in memory and MongoDB, field masks on routing calls, and rendering pauses in background tabs.

Decisions

Code decides, AI selects

Routes, distances and timing are computed deterministically. Models only choose among verified options, and every output is validated with Zod.

Degrade, don't fail

Routing falls back to clearly labelled estimates and place discovery can switch sources, so the pipeline keeps going when an upstream service doesn't.

Tested like a product

Vitest covers the pipeline, ranking rules, camera math, editing, persistence and APIs, and CI runs type checks, builds and tests on every push.

What happened

  • A working planner from prompt to 3D fly-through, open source on GitHub.
  • Runs with no keys on a sample trip, and scales up to the full 3D experience with them.