/** * Lane E selftests — asset sanity. * * Lane E owns this file. Lane A pre-created it so adding your suite never means * editing selftest.html. * * Most of Lane E's verification is the Blender-side contact sheet against the * 1.7 m ref capsule (PLAN3D §5-E), which this harness can't see. What IS worth * asserting here, once the GLBs land, is the stuff that silently breaks the * other lanes: * 1. every GLB loads without error through the vendored GLTFLoader. * 2. scale sanity — a loaded tree's bounding box is 4–9 m tall, the fence * panel is ~1.6 m, the shackle is ~0.1 m. A model exported in centimetres * looks fine alone and absurd next to a person. * 3. the named nodes the other lanes query actually exist: * tree_gum_01 → `trunk`, `canopy_*`, `branch_anchor_*` * house_yardside → `fascia_anchor_*` * Lane A sways the canopies by name; Lane B reads branch anchors. * * Loading is async — `export default async function run(t)` is supported. * Useful import: * import { GLTFLoader } from '../../vendor/addons/loaders/GLTFLoader.js'; */ /** @param {import('../testkit.js').Suite} t */ export default function run(t) { t.skip('yard asset GLBs not landed yet — Lane E'); }