Skip to content

Travel Simulator

Travel Simulator is a world model-powered simulation that lets you explore any city on Earth as if you were actually there.

Core trick

Renders real locations as Gaussian splats in three.js and conditions character dialogue on profile fields passed in the URL.

Tags

Description

Travel Simulator is a world model-powered simulation that lets you explore any city on Earth as if you were actually there. Travel to real locations, walk the streets, and interact with AI-powered characters who hold personalized, context-aware conversations tailored to your interests, background, and goals.
davidfromkansas/travel-simulator★ 00 forksJavaScriptCreated Jun 13, 2026 · last push Jun 16, 2026

README excerpt

# Travel Simulator

An immersive travel simulator: build a player profile, spin a 3D globe, click a
country, and walk a character around a real-feeling town built from photos.

This is a **monorepo** of two apps that connect at one well-defined seam:

```
┌─────────────────────────────┐        enterCountry("italy")        ┌──────────────────────────┐
│  onboarding/                │  ───────────────────────────────▶  │  world/                  │
│  React + r3f                │   (handoff seam, profile in URL)    │  three.js + Spark        │
│  • onboarding form          │                                     │  • Gaussian-splat town   │
│  • 3D globe + markers       │   mounted in-page via <iframe>      │  • walkable character    │
└─────────────────────────────┘                                     └──────────────────────────┘
```

| App | Stack | Owns |
| --- | --- | --- |
| [`onboarding/`](./onboarding) | Vite + React + TypeScript, `@react-three/fiber` + `drei` | onboarding form, 3D globe, country selection, the handoff seam |
| [`world/`](./world) | Vite + vanilla three.js + `@sparkjsdev/spark` | the 3D town (Gaussian splats), character movement, collisions |

## Run the full experience

The two apps run as separate dev servers (different origins, for now), but the
root scripts boot both at once so you can't forget one:

```bash
npm run install:all   # installs root + onboarding + world (one time)
npm run dev           # boots BOTH servers: onboarding :5173 + world :5174
```

Team