Your org as a living low-poly 3D city. Districts are zones, buildings are
apps, cranes are builds, fires are failures, and the sun tracks your real
local time. A Theme
theme, game profile, full write surface. A
Theme Labs experiment —
unsupported, fun on purpose.
Upstream: konstructio/theme-metropolis.
Rendering: three.js (vendored in static/vendor/, no build step, no CDN).
Server: the starter theme's Go static server (go:embed), built by
Cloud Native Buildpacks (go-dist) — no Dockerfile.
go run . # http://localhost:8080 — standalone SAMPLE CITY mode
open harness.html # mock Konstruct parent: launched mode with fixturesDev-only query params:
?time=HH:MM— override the day/night clock (e.g.?time=23:00for neon night)
theme-manifest.yaml— source of truth for the theme's self-descriptionTHEME.md— header block generated from the manifest (never edit by hand)static/theme.js— byte-for-byte copy from theme-starter; never editstatic/js/—main.jsboot,store.jsCityState,bridge.js(only module that touchestheme),city/world geometry,engine/renderer + animation,ui/HUD/inspector/wizards/game screensharness.html— local-only mock parent window answering theme postMessages with fixtures; lives at repo root so it never ships in the embedded bundle