1
0
This repository has been archived on 2026-08-25. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
tera/.gitignore
T
karti b4eb2fa1a8 The engine can be filmed, by stepping its clock rather than recording it
`films.mjs` renders time-lapses of the running dist/: a locked camera watching
eighteen hours pass, shadow sweeping the city and the windows coming on as the
computed sun goes down. Two ship — the Financial District and the whole board.

Real-time capture was never on the table and would have been the wrong idea
anyway. SwiftShader draws about three frames a second with no GPU, so a screen
recording is a slideshow; and a sunset takes an hour, which is not a length of
video anybody watches. So it is rendered offline the way films always have been:
set the clock, let the frame settle, expose, advance. The output is smooth 30fps
regardless of what the renderer managed while being photographed.

Two shims in `filmClock()` get that done without a reload per frame, which
matters because a reload is fifteen seconds and would put a 180-frame film at
three quarters of an hour. The skew is a live global read on every `Date` call
rather than baked in at load; and `setInterval(…, 60_000)` is compressed to
120ms, which is the load-bearing half — `main.ts` recomputes the sun on a
once-a-minute wall-clock tick, so a shifted clock otherwise sits unrendered.
Only the 60-second interval is touched, by value.

Both are capture-harness lies told to the page. The deployed bundle has no idea
this file exists.

Not wired into the site. This is the capability and two reels to look at.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 16:45:24 -07:00

42 lines
1.7 KiB
Plaintext

node_modules/
dist/
*.local
# Company logos are TRADEMARKS and are never committed — they are fetched at
# runtime and cached in the browser. An Apache-2.0 repo containing them would
# be relicensing marks it does not own. See ARCHITECTURE.md §3.1.
public/logos/
# ---- Self-hoster space ----
#
# Yours, not ours. Drop your own props, kits, office packs and notes here and
# nothing in this repo will look at them, complain about them or ship them.
#
# This is the other half of the no-binary-art gate. That check
# (scripts/check-no-binaries.mjs) enumerates with `git ls-files` and is strict
# only over src/**, so your own legally-clean .glb sitting in public/props/ is
# invisible to it and cannot fail your build — an earlier design walked the
# working tree and would have. Ignoring these paths is what makes that promise
# hold by default rather than by everybody remembering. See CONTRACT.md §7.
#
# Worth knowing before you write one: docs/ is in here too, so documentation
# committed to this repo lives at the root or beside the code it describes.
public/props/
public/kits/
public/offices/
docs/
# Intermediate art for the share cards. Regenerated by
# `scripts/brand-assets/capture.mjs`; the finished cards in `public/` are what
# ships, and these are 2.8 MB of screenshot nobody needs in history.
scripts/brand-assets/art-*.png
# Rendered shots. `scripts/brand-assets/shots.mjs` writes the web-sized copies
# straight into the site checkout and keeps the full-resolution frames here as a
# dated archive; neither is source, and the archive is several MB a run.
shots/
# Rendered films. `scripts/brand-assets/films.mjs` writes MP4s and posters here,
# plus a scratch frame directory it cleans up after itself. Regenerated, not source.
films/