California gets roads, traffic, and a car to follow
This commit is contained in:
+23
-2
@@ -1,6 +1,6 @@
|
||||
# Tera — architecture
|
||||
|
||||
**Tera** is the map view: a city from above, rendered in three.js, public and
|
||||
**Tera** is the map view: California and its cities from above, rendered in three.js, public and
|
||||
self-hostable. **Spaces** is the other half — the offices you walk into. They
|
||||
are one engine and one asset library, seen from outside and from inside.
|
||||
|
||||
@@ -78,9 +78,11 @@ lumbridge-simulate/
|
||||
│ └── scene.ts # lights, sky, camera flights, render loop
|
||||
├── src/interiors/ # the inside of the world — floorplans, desks, presence
|
||||
├── src/assets/ # the library. Original meshes and materials, Apache 2.0.
|
||||
├── src/transport/ # serialisable route packs + renderer-free fixed-step sim
|
||||
├── src/cities/ # data packs. Pure geography, no code.
|
||||
│ ├── california.ts # state/corridor scale; LA ↔ SF continuity
|
||||
│ ├── sf.ts # ~1000 lines of coastline, hills, districts, landmarks
|
||||
│ └── la.ts # LA / OC / Riverside
|
||||
│ └── socal.ts # LA / OC / Riverside
|
||||
├── src/adapters/ # where outside data plugs in
|
||||
│ └── workie.ts # Workie API -> Marker[]
|
||||
└── src/main.ts # the standalone demo app
|
||||
@@ -97,6 +99,25 @@ and a city share the projection, camera, lighting and render loop, and differ
|
||||
only in what they put in the scene. That is why `scene.ts` owns the loop and
|
||||
knows nothing about terrain specifically.
|
||||
|
||||
`transport` also stays outside the renderer. A `TransportPack` is plain JSON and
|
||||
`VehicleSimulation` returns plain geographic poses. Three.js enters only in the
|
||||
`roadTraffic` render layer, which projects poses through the active `World`.
|
||||
That separation lets a future authoritative session server replay the same
|
||||
route simulation without importing a browser or a GPU.
|
||||
|
||||
### 2.1 Product/control-plane boundary
|
||||
|
||||
Tera/Spaces is the authoritative renderer and simulation client. The separate
|
||||
`lumbridgecorp` service remains the control plane: identity, tenant registry,
|
||||
membership, billing, provisioning, and short-lived launch grants. It must not
|
||||
grow a second world renderer or own frame-by-frame simulation.
|
||||
|
||||
The public Tera build remains zero-config and useful without any service. Hosted
|
||||
presence, multiplayer, profiles, webcam faces, and media surfaces arrive through
|
||||
adapters whose absence cannot stop the city, office, traffic, or sky from
|
||||
running. This is the replacement path for the retired Phaser World 1; it is not
|
||||
a migration of that renderer.
|
||||
|
||||
---
|
||||
|
||||
## 3. Three rules that keep Apache 2.0 honest
|
||||
|
||||
Reference in New Issue
Block a user