Files
XZBT/exhibits/exhibit-d.xzbt
T
LabyricornandClaude Opus 5 d5d7091289 feat(visual): add the slice 4g challenge fixtures and reference exhibits
Fourteen visual challenge fixtures and the first visuals for reference exhibits
A through D, all executing without a line of subject-specific renderer code —
which is the claim slice 4g exists to test. A subject the engine needs special
handling for is a subject the format cannot express.

The standalone CLI validator no longer disagrees with the production one. It
had been falling through to ERR_UNSUPPORTED_TARGET for every `visuals.*` binding
target, so legal exhibits — including the committed minimal-visual fixture —
failed the CLI while passing the runtime. The four section 8.1 visual target
families are now recognized in both, and a test runs the CLI validator across
every exhibit and challenge fixture so the two paths cannot drift apart again.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01ShxxFqFmCUDQnQvFNm4TKy
2026-09-06 21:53:38 +00:00

173 lines
3.6 KiB
Plaintext

{
"xzbt": "0.1",
"meta": {
"id": "exhibit-d",
"name": "Exhibit D — Instrument Display",
"version": "0.1.0",
"description": "First visual composition; full reference exhibit acceptance remains Phase 9."
},
"runtime": {
"seed": 42
},
"visuals": {
"scene": {
"coordinateSpace": "virtual",
"width": 960,
"height": 540,
"background": "#101d25"
},
"systems": {
"rings": {
"type": "graphic",
"content": {
"a": {
"type": "ring",
"position": {
"x": 480,
"y": 270
},
"radius": 70,
"innerRadius": 68,
"style": {
"fill": "#72c4bd"
}
},
"b": {
"type": "ring",
"position": {
"x": 480,
"y": 270
},
"radius": 130,
"innerRadius": 128,
"style": {
"fill": "#72c4bd"
}
},
"c": {
"type": "ring",
"position": {
"x": 480,
"y": 270
},
"radius": 190,
"innerRadius": 188,
"style": {
"fill": "#72c4bd"
}
},
"label": {
"type": "text",
"text": "FIELD / 04",
"position": {
"x": 35,
"y": 45
},
"size": 18,
"style": {
"fill": "#a7d3c4"
}
},
"sweep": {
"type": "group",
"position": {
"x": 480,
"y": 270
},
"behaviors": [
{
"type": "rotate",
"speed": 40
}
],
"children": {
"ray": {
"type": "line",
"to": {
"x": 188,
"y": 0
},
"style": {
"stroke": "#ddf6a0",
"strokeWidth": 3
}
}
}
}
},
"layer": "display"
},
"ticks": {
"type": "repeater",
"count": 48,
"distribution": {
"type": "ring",
"center": {
"x": 480,
"y": 270
},
"radius": 210,
"innerRadius": 209,
"mode": "even"
},
"repeat": {
"type": "point",
"style": {
"fill": "#789f95",
"pointSize": 3
}
},
"layer": "display"
},
"contacts": {
"type": "particles",
"count": 18,
"capacity": 32,
"distribution": {
"type": "ellipse",
"center": {
"x": 480,
"y": 270
},
"radius": 170
},
"render": {
"type": "point",
"style": {
"fill": "#d8e6a7",
"pointSize": 5
}
},
"behaviors": [
{
"type": "twinkle",
"min": 0.2,
"max": 1,
"rate": 0.6
}
],
"layer": "display"
}
},
"layers": {
"display": {}
}
},
"state": {
"level": {
"type": "number",
"initial": 0.7,
"min": 0,
"max": 1
}
},
"bindings": [
{
"source": "state.level",
"target": "visuals.layers.display.opacity",
"scale": 0.7,
"offset": 0.3
}
]
}