Version 0.27.5. Loads an assembled city into a first-person Three.js game with streamed kit buildings, physics, NPCs, quests and revisioned saves.
npm install
npm run play -- --port 5306Open the launcher. It lists cities and saved games, imports and exports descriptors, and calls creation APIs for optional interiors and stories. A new city defaults to Big (3000 m). A game with questBundle: null supports free play.
npm run dev enables source reloads. npm run build builds the browser client; the development HTTP routes and resource mounts require the Vite server. npm test runs the contract suites, including local HTTP listeners.
SKILL.md gives a copyable catalog-to-play example. CONTRACT.md links requests, results and errors. docs/INDEX.md maps runtime responsibilities.
/?mode=game&game=<id>restores a catalog game./?mode=game&out=/out/<world>opens a session-only preview.npm run assemble -- --parcel <id> --blueprint <path> --out <dir>builds one parcel;--interioradds its interior.npm run assemble-city -- --blueprint <path> --out <dir>builds a city: ordinary parcels as kit placement records over shared plans, landmarks as generated shells, streets from the Streets piece kit. Options and output layout: Assembly.- Building, city, scale and street-prop previews: preview interfaces.
From the urbe root, node compose/check-matrix.mjs calls Atlas generate and this box's assemble-city across seeds, sizes and flags.
The server mounts sibling Materials catalogs, Atlas samples and Engine out/. Catalogs, maps (PNG masters and their KTX2 builds), models and three's Basis transcoder under /basis/ are revalidated on each load (no-cache with an ETag), so an unchanged file is a 304; a file that is not on disk answers 404. Piece kits, street kits and interior catalogs live once under out/shared (override with URBE_SHARED_DIR). URBE_ATLAS_DIR overrides the sample directory. URBE_MODELS_DIR selects character, animation and prop assets, default ~/models/quaternius. Character installation and prop installation describe their audited stores.
Text dialogue uses LLM_BASE_URL (default http://localhost:8080/v1), LLM_MODEL (default first advertised model), an optional LLM_API_KEY and LLM_TIMEOUT_MS (default 60000, the longest the model server may stay silent). Prompts come from Quests. NPC speech uses the Voice box at VOICE_BASE_URL (default http://localhost:5308, empty for none); the game plays silently without it, and voice=off in the query or the settings turn it off.
Exports contain JSON descriptors and references. Asset packaging and complete-game portability are open in docs/ISSUES.md. Crowd and car capacities default to zero; explicit crowd and cars query values enable them. Large-world moving performance remains an acceptance task.