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/PROVENANCE.json
T
karti 2aa4049258 feat(brand): re-shoot everything at the new engine, and make it one command
**Seven new shots**, because the world grew the most photogenic things in it
after the last pass: `sfo`, `lax`, `golden-gate`, `bay-bridge`, `freeway`,
`california-relief` and `pacific-sea`. All nine existing ids are unchanged — the
manifest emits a `ShotId` union that lumbridge-v4 imports, so ids are added and
never renamed.

**A shot can now aim itself.** The chapter list has no camera for SFO, LAX, the
bridges, the freeway or the open sea, and the engine has no `?pose=` back door,
so a shot points itself by driving the app's own inputs: a click on the plan view
slides the orbit target to a lat/lng while keeping the chapter's stance, wheel
notches set the standoff, and a drag sets azimuth and elevation. The plan view's
pixel-to-coordinate map is solved at runtime from three hovers of
`#minimap-readout` rather than hard-coded, so it survives a board resize or a
restyle of the widget.

**The tera share card was a picture of the wrong thing, and had been.** Its art
came from `keyboard.press("2")`, which had landed on the California board's drive
mode once the default board changed — so the card under the headline "Cities from
above." was a chase camera on US-101, showing metre-scale cars driving between
kilometre-wide buildings, with the DRIVE readout and the mode pill baked into the
art. It renders, it looks deliberate, and it is why an unguarded key press has no
place in a capture script. `capture.mjs` now clicks an indexed chapter and
asserts its `shortLabel` the way `shots.mjs` does, waits on `#boot` and
`#chapters` instead of sleeping twenty seconds, and gives each card its own hour.

**`npm run refresh` is the durable half.** One command: build, stills, cards,
films, both manifests, and a hashed before/after diff of every deliverable. It
fails loudly and specifically on the two conditions that otherwise produce
confident wrong output — the renderer coming up as SwiftShader, and a chapter
`expect` guard firing. `--stills-only` / `--cards-only` / `--films-only` compose,
`--dry-run` lists the plan without opening a browser, and
`shots.mjs --list` prints the whole shot plan — board, chapter, expect, aim, both
hours — which is what to run first when a guard does fire.

It also re-stamps `PROVENANCE.json`, narrowly: only entries whose origin is
`repository-generated` and whose `generator` names a script the run actually
executed, by literal hash substitution rather than re-serialising the file.
Without that, every legitimate card re-shoot leaves `npm run provenance` red.

**Every film re-shot.** They were at `9c9e78f`, captured 2026-08-07, and predated
the tone mapping, the reflective sea, the sky dome, terrain shadows, the rebuilt
California board, SFO, LAX, both bridges and the moving aircraft.

Tests 1137, typecheck, build, eight budget cells and every provenance and licence
check pass.

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

94 lines
4.3 KiB
JSON

{
"schemaVersion": 1,
"projectLicense": "Apache-2.0",
"policies": {
"copiedItems": "Every copied item requires an immutable upstream source, exact upstream path, SPDX license, SHA-256, intake date, and review note.",
"fonts": "System font stacks only; no bundled font files or remote font services.",
"runtimeArt": "Runtime meshes and textures are generated from reviewable source. Binary art is not permitted under src/.",
"researchReferences": "Evaluated references that were not copied are recorded in ASSET_RESEARCH.md and are not distributed artifacts."
},
"distributedArtifacts": [
{
"path": "public/og-office.png",
"kind": "generated-social-card",
"origin": "repository-generated",
"license": "Apache-2.0",
"sha256": "f174ac7a626912b1a6db73232e1c5514fb8673b8872f6c70d99b76c3199b86c7",
"generator": "scripts/brand-assets/capture.mjs",
"inputs": ["scripts/brand-assets/capture.mjs", "scripts/brand-assets/og.html"],
"intakeDate": "2026-08-22",
"intakeNote": "Generated from this repository's built office scene and local card template by the documented capture workflow; no external image was copied."
},
{
"path": "public/og-tera.png",
"kind": "generated-social-card",
"origin": "repository-generated",
"license": "Apache-2.0",
"sha256": "60f514b421f7781b14807c44c3375848d52ea3fa3e68b9072ff6c4589b1ba3f1",
"generator": "scripts/brand-assets/capture.mjs",
"inputs": ["scripts/brand-assets/capture.mjs", "scripts/brand-assets/og.html"],
"intakeDate": "2026-08-22",
"intakeNote": "Generated from this repository's built California scene and local card template by the documented capture workflow; no external image was copied."
}
],
"proceduralLineage": [
{
"path": "src/assets/",
"kind": "procedural-vehicles-actors-office-kit-and-textures",
"origin": "original",
"sourceLicense": "Apache-2.0",
"outputLicense": "CC0-1.0",
"lineage": "ASSET_RESEARCH.md and src/assets/LICENSE-ART document the original primitive grammar, design references, and artistic-output dedication."
},
{
"path": "src/aircraft/asset.ts",
"kind": "procedural-aircraft",
"origin": "original",
"sourceLicense": "Apache-2.0",
"lineage": "Original code-composed aircraft silhouette; repository originality and aircraft-data boundaries are documented in NOTICE."
},
{
"path": "src/engine/",
"kind": "procedural-map-environment-buildings-and-data-glyphs",
"origin": "original",
"sourceLicense": "Apache-2.0",
"lineage": "Original cached unit-primitive rendering grammar documented in ASSET_RESEARCH.md and ARCHITECTURE.md; live data is converted to original glyph geometry rather than bundled as art."
},
{
"path": "src/interiors/",
"kind": "procedural-office-shells-and-presentation",
"origin": "original",
"sourceLicense": "Apache-2.0",
"lineage": "Original office shell and scene composition over the validated authored packs; geometry is built at runtime from reviewable source and primitive assets."
},
{
"path": "src/cities/",
"kind": "authored-city-geography",
"origin": "original",
"sourceLicense": "Apache-2.0",
"lineage": "Original hand-traced city geometry with the non-OSM data boundary documented in NOTICE and source headers."
},
{
"path": "src/offices/",
"kind": "authored-office-packs",
"origin": "original",
"sourceLicense": "Apache-2.0",
"lineage": "Repository-authored office plans; each pack carries explicit author and license metadata under the validated office-pack contract."
},
{
"path": "src/transport/california.ts",
"kind": "authored-road-and-route-data",
"origin": "original",
"sourceLicense": "Apache-2.0",
"lineage": "Original coarse simulation graph; every node, segment, route, and anchor carries a provenance field validated by tests."
},
{
"path": "src/arena/",
"kind": "renderer-independent-reinforcement-learning-environments",
"origin": "original",
"sourceLicense": "Apache-2.0",
"lineage": "Original environment contracts and reward/scenario layers wrapping Tera's repository-authored deterministic controllers and plans; source hashes are pinned and checked in CI."
}
]
}