From 36471bbad7f9fdc55d41904e25bb7a220e305b51 Mon Sep 17 00:00:00 2001 From: Karti Tripathi Date: Tue, 4 Aug 2026 22:09:44 -0700 Subject: [PATCH] Tera, because Simulate was already spoken for MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two names in this repo were quietly colliding with things that already ship. `lumbridge-simulate` is a Rust crate in the private monorepo — the Governor's memory-admission simulator, with a public product page — and in its vocabulary a "Scene" is a set of models, not a three.js scene. Naming a 3D engine the same thing would have put two different meanings on both words at once. Meanwhile world1.lumbridgecorp.com has been serving Tera — Lumbridge since before any of this: the world already had a name. So the map view is Tera, the interiors product is Spaces, an Office is one building's interior and a Space is a room inside it. ARCHITECTURE.md opens with that table now, because the next few thousand lines all depend on it. The Phaser 2D world comes down rather than being migrated. Its tileset is precisely what stopped it being open-sourceable, and there are no real users to strand. Co-Authored-By: Claude Opus 5 --- ARCHITECTURE.md | 57 +++++++++++++++++++++++++++++++++--------------- NOTICE | 10 ++++----- README.md | 13 ++++++----- index.html | 2 +- package.json | 4 ++-- src/cities/sf.ts | 2 +- vite.config.ts | 4 ++-- 7 files changed, 58 insertions(+), 34 deletions(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index fba255c..eb73737 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -1,16 +1,39 @@ -# Lumbridge Simulate Engine — architecture +# Tera — architecture -**LSE** is the third of the three: `lumbridge-compute`, `lumbridge-bench`, -`lumbridge-simulate`. A 3D engine for walkable places — a city from above, an -office from inside, one renderer and one asset library. +**Tera** is the map view: a city 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. -Ships at `lumbridgecorp.com/live`. Apache 2.0, self-hostable, Gitea. +Lives at `tera.lumbridgecorp.com`. Apache 2.0, on the fleet's own Gitea. + +## The names + +Getting these straight early matters, because two of them were nearly overloaded +onto things that already exist. + +| name | what it is | +| --- | --- | +| **Lumbridge Simulate** | the product line these sit under | +| **Tera** | the map view. Cities — SF, LA, NYC — from above. Public, no login. | +| **Spaces** | the interiors product. Offices you enter, host, and self-host. | +| **Office** | one building's interior, belonging to a tenant. You go *into* an office. | +| **Space** | a room or zone inside an Office — a desk bay, a meeting room, a lounge. | + +Two things this avoids. `lumbridge-simulate` is already a **Rust crate** in the +private monorepo — the Governor's memory-admission simulator — and in its +vocabulary a **"Scene" is a set of models**, not a three.js scene. This engine +therefore does not take either word for itself: it is Tera, and its three.js +scene stays an implementation detail behind `createScene()`. + +One overload survives on purpose: *Spaces* the product versus *a Space* the +room. It sits at two different levels and matches how people already talk about +offices, so it is kept rather than invented around. --- ## 1. Why this is its own repo, and why it is public -LSE began as `/live` inside Workie, the private career portal. That is now +Tera began as `/live` inside Workie, the private career portal. That is now **deleted**, not deprecated — a 3D city engine has no business living in a job tracker, and Workie is a private repo besides. @@ -22,21 +45,21 @@ extraction is a chance to ship something private by accident. The point of this project — a reusable asset library other people can build on and self-host — needs a repo that *is* the open-source artefact. -So: **`lumbridge-public/lumbridge-simulate` on the fleet's own Gitea.** Not +So: **`lumbridge-public/tera` on the fleet's own Gitea.** Not GitHub. Self-hosting the forge is the same claim the engine makes: the whole thing runs on hardware you own, and nothing about it requires somebody else's platform to stay alive. -### World 1 is this +### The 2D world comes down -This is the part that makes LSE load-bearing rather than a demo. The existing -Lumbridge world is a Phaser 2D office, and its tileset is what stops it being -open-sourceable. World 1 becomes **the San Francisco city view plus the office -interiors**, rendered here, with original assets. +The existing Lumbridge world at `world1.lumbridgecorp.com` is a Phaser 2D +office, and its tileset is exactly what stops it being open-sourceable. It has +no real users, so it is being retired rather than migrated — Tera and Spaces +replace it outright, with original assets, which is the whole point. -That reframes the whole repo: LSE is not a map that happens to live next to the -platform, it is the platform's renderer. The city is the outside of the world -and the offices are the inside of it, and a tenant moves between them. +That reframes this repo: it is not a map that happens to sit next to the +platform, it is the platform's renderer. The city is the outside of the world, +offices are the inside, and a tenant moves between them. --- @@ -188,7 +211,7 @@ now. LA gets six. NYC, later, gets Manhattan plus the inner boroughs. ## 6. How Workie feeds it -Workie stays the system of record for companies. LSE never gets a database. +Workie stays the system of record for companies. Tera never gets a database. ``` Workie GET /api/live/markers (private, tailnet) -> status colours @@ -238,7 +261,7 @@ are the outside and the inside of one world, and moving between them is a camera transition, not a different application. Reference point: the per-office spatial products in this space (Simile and -friends) are the shape to aim at. The difference LSE is going for is that this +friends) are the shape to aim at. The difference Spaces is going for is that this one is Apache 2.0 and self-hostable — you can run your own world on your own hardware, which is the same claim `lumbridge-compute` makes about compute. diff --git a/NOTICE b/NOTICE index 818ca91..f40f041 100644 --- a/NOTICE +++ b/NOTICE @@ -1,4 +1,4 @@ -LSE — Lumbridge Simulate +Tera — the map view of Lumbridge Simulate Copyright 2026 Lumbridge Corp. This product includes software developed at Lumbridge Corp. @@ -8,17 +8,17 @@ Licensed under the Apache License, Version 2.0 (see LICENSE). ORIGIN AND ORIGINALITY ---------------------- -LSE's city view was inspired by the interaction model of two prior works — +Tera's city view was inspired by the interaction model of two prior works — Levels.fyi Atlas, and Nutlope's NYC AI Atlas (https://github.com/Nutlope/ nyc-ai-atlas), which itself credits Levels.fyi. What was taken is the *idea*: a left-hand chapter legend, animated camera flights into map areas, clickable place labels, and ambient motion in the scene. -No code, geometry, or asset from either work is present here. LSE's renderer, +No code, geometry, or asset from either work is present here. Tera's renderer, its terrain system, its block-lattice building placement, and every coordinate in every city pack were written from scratch. The two projects do not even share a subject: the NYC atlas renders hand-traced Manhattan on flat ground, -and LSE's premise is relief — a city you cannot read without its section. +and Tera's premise is relief — a city you cannot read without its section. Stating this plainly matters, because at the time of writing the NYC AI Atlas repository carries no LICENSE file. Absent a licence grant, the default is that @@ -46,7 +46,7 @@ TRADEMARKS This repository contains no third-party logos, wordmarks, or brand assets. -Organisation logos displayed by applications built on LSE are fetched at +Organisation logos displayed by applications built on Tera are fetched at runtime and are never redistributed as part of this project. All trademarks, service marks, and trade names are the property of their respective owners. Any use is nominative — to identify the organisation referred to — and does not diff --git a/README.md b/README.md index f39bc47..6371b52 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ -# Lumbridge Simulate Engine +# Tera -**Lumbridge Simulate** — a 3D engine for walkable places. Cities from above, -buildings from inside, one renderer and one asset library. +The map view of **Lumbridge Simulate** — cities from above, in three.js. +Its other half, **Spaces**, is the offices you walk into: one engine and one +asset library, seen from outside and from inside. -Apache 2.0. Runs at [lumbridgecorp.com/live](https://lumbridgecorp.com/live). +Apache 2.0. Runs at [tera.lumbridgecorp.com](https://tera.lumbridgecorp.com). ![San Francisco](docs/sf.jpg) @@ -29,8 +30,8 @@ npm run dev ## Using the engine ```ts -import { createScene } from "@lumbridge/simulate/engine/scene.ts"; -import SAN_FRANCISCO from "@lumbridge/simulate/cities/sf.ts"; +import { createScene } from "@lumbridge/tera/engine/scene.ts"; +import SAN_FRANCISCO from "@lumbridge/tera/cities/sf.ts"; const scene = createScene(canvas, { city: SAN_FRANCISCO, diff --git a/index.html b/index.html index 0dd7d71..ef73ef0 100644 --- a/index.html +++ b/index.html @@ -36,7 +36,7 @@

San Francisco

-

Lumbridge Simulate Engine

+

Tera · Lumbridge Simulate

diff --git a/package.json b/package.json index bc9d9d6..c6c5f30 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "@lumbridge/simulate", + "name": "@lumbridge/tera", "version": "0.1.0", - "description": "Lumbridge Simulate Engine (LSE) — a 3D engine for walkable places. Cities from above, buildings from inside.", + "description": "Tera \u2014 the map view of Lumbridge Simulate. Cities from above; with Spaces, offices you can walk into.", "license": "Apache-2.0", "type": "module", "main": "src/index.ts", diff --git a/src/cities/sf.ts b/src/cities/sf.ts index be27d01..ce8220c 100644 --- a/src/cities/sf.ts +++ b/src/cities/sf.ts @@ -1,5 +1,5 @@ /** - * San Francisco — a LSE city pack. + * San Francisco — a Tera city pack. * * Pure data. Coastlines, hills, districts, landmarks and camera chapters, * traced by hand to be recognizable rather than survey-accurate: the diff --git a/vite.config.ts b/vite.config.ts index cbe3cb5..2c4d448 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,8 +1,8 @@ import { defineConfig } from "vite"; export default defineConfig({ - // Mounted under lumbridgecorp.com/live/ in production; the trailing + // Mounted under tera.lumbridgecorp.com in production; the trailing // slash matters, since every asset URL is resolved against it. - base: process.env.LSE_BASE ?? "/", + base: process.env.TERA_BASE ?? "/", build: { outDir: "dist", target: "es2022" }, });