Round 3 orders, all six. The validator move landed in 4803b6a (swept into
LANE-SCREEN's commit by the shared index); this is the rest.
- heat retune: round 2's numbers were below the sim's always-on cooling, so
nothing could ever warm up. Decoder now 100 gen at 0.0033 heat / 0.001 cool
-> throttles 10.2s, scrams 14.5s, 23.9s cycle, 25.8/s average (1.29x the
ASIC). Verified against LANE-SIM's real sim, not just arithmetic.
- powerGen had to move: the scram/restart hysteresis forces ~30% duty, so at
55 gen the decoder averaged worse than a steady ASIC and nobody would build
one.
- two new tests refuse decorative heat (per-tick and per-craft). They caught a
fresh instance of the same bug in chart-stco-map before it shipped.
- bufferCap 240 -> 300: one tank now covers exactly one decoder scram.
- ASIC COOLER spec'd (aura deferred to M4, no contract field requested yet);
THE MUXER + moov brain sub-lines; reel + broadcast era tech.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
109 lines
9.0 KiB
JSON
109 lines
9.0 KiB
JSON
[
|
|
{ "id": "seam-extractor", "name": "SEAM EXTRACTOR", "codex": "4:seam-extractor", "kind": "extractor",
|
|
"footprint": { "x": 2, "y": 2 },
|
|
"recipes": ["extract-mdat", "extract-bayer-grit", "extract-field-splinters", "extract-silver-frames"],
|
|
"powerDraw": 2, "asset": "seam-extractor", "color": "#8a7a32",
|
|
"flavor": "The miner. Chews mdat seams and spits raw payload. The drill head is CRT-certified. Operators are not." },
|
|
|
|
{ "id": "belt", "name": "STREAM BELT", "codex": "4:belts", "kind": "belt",
|
|
"footprint": { "x": 1, "y": 1 }, "recipes": [], "powerDraw": 0, "beltSpeed": 2,
|
|
"asset": "belt", "color": "#4a4e52",
|
|
"flavor": "Moves cargo. Back-pressure is a feature. Riding the belt is discouraged in writing and in no other way." },
|
|
{ "id": "lane-splitter", "name": "LANE SPLITTER", "codex": "4:demuxer", "kind": "splitter",
|
|
"footprint": { "x": 1, "y": 1 }, "recipes": [], "powerDraw": 1,
|
|
"asset": "lane-splitter", "color": "#55595e",
|
|
"flavor": "One lane in, two lanes out, round-robin, no favourites. The only fair machine in the Bitstream." },
|
|
{ "id": "buffer-tank", "name": "BUFFER TANK", "codex": "2:buffer-charge", "kind": "buffer",
|
|
"footprint": { "x": 2, "y": 2 }, "recipes": [], "powerDraw": 0, "bufferCap": 300,
|
|
"asset": "buffer-tank", "color": "#5a6068",
|
|
"flavor": "Smoothness in a tank. Drains at exactly one frame per 16.6ms. Keep it above the red line; below the red line the audio has opinions." },
|
|
|
|
{ "id": "demuxer", "name": "DEMUXER", "codex": "4:demuxer", "kind": "crafter",
|
|
"footprint": { "x": 2, "y": 2 }, "recipes": ["demux-ore", "demux-container"], "powerDraw": 3,
|
|
"asset": "demuxer", "color": "#4e5a62",
|
|
"flavor": "The first splitter. Cleaves raw ore into brightness, colour, and pure directional intent." },
|
|
{ "id": "demosaicer", "name": "DEMOSAICER", "codex": "4:demosaicer", "kind": "crafter",
|
|
"footprint": { "x": 3, "y": 2 }, "recipes": ["demosaic-rggb", "demosaic-vng4", "demosaic-stripes"],
|
|
"powerDraw": 5, "asset": "demosaicer", "color": "#6a5f52",
|
|
"flavor": "Weaves checkerboard grit into full colour. Feed it stripes and it will jam and extrude MOIRÉ — as designed, as warned, as invoiced." },
|
|
{ "id": "dct-press", "name": "DCT PRESS", "codex": "4:dct-press", "kind": "crafter",
|
|
"footprint": { "x": 3, "y": 3 }, "recipes": ["press-color-plate", "press-anchor-slab"],
|
|
"powerDraw": 8, "asset": "dct-press", "color": "#3f4348",
|
|
"flavor": "Spatial into frequency. Slams pixel blocks into coefficient decks; run it backwards and an entire picture falls out of the slot." },
|
|
{ "id": "quantizer", "name": "QUANTIZER", "codex": "4:quantizer", "kind": "crafter",
|
|
"footprint": { "x": 2, "y": 2 }, "recipes": ["quantize", "quantize-crime", "skim-ringing"],
|
|
"powerDraw": 4, "asset": "quantizer", "color": "#5e5148",
|
|
"flavor": "The crusher, the moneymaker, the sin. Every bit it destroys becomes room to move. The dial goes to CRIME." },
|
|
{ "id": "subsampler", "name": "SUBSAMPLER", "codex": "4:subsampler", "kind": "crafter",
|
|
"footprint": { "x": 2, "y": 3 }, "recipes": ["subsample-422", "subsample-420", "pan-speckle"],
|
|
"powerDraw": 4, "asset": "subsampler", "color": "#4a5560",
|
|
"flavor": "Spins colour down to grade and vents the difference as bandwidth. Leaks by design. Place downwind of anything you are fond of." },
|
|
{ "id": "mv-extractor", "name": "MV EXTRACTOR", "codex": "4:mv-extractor-and-p-caster", "kind": "crafter",
|
|
"footprint": { "x": 2, "y": 2 }, "recipes": ["extract-motion"], "powerDraw": 5,
|
|
"asset": "mv-extractor", "color": "#454b52",
|
|
"flavor": "Watches the footage until it knows where the picture wants to go, then pipes the wanting off as fluid." },
|
|
{ "id": "p-caster", "name": "P-CASTER", "codex": "4:mv-extractor-and-p-caster", "kind": "crafter",
|
|
"footprint": { "x": 2, "y": 2 }, "recipes": ["cast-delta-wafer", "cast-janus-wafer"],
|
|
"powerDraw": 4, "asset": "p-caster", "color": "#4d545c",
|
|
"flavor": "Prints instructions, not pictures. Each one is applied to whatever came before it — correct or otherwise." },
|
|
{ "id": "gop-assembler", "name": "GOP ASSEMBLER", "codex": "4:gop-assembler", "kind": "crafter",
|
|
"footprint": { "x": 3, "y": 2 },
|
|
"recipes": ["assemble-gop", "assemble-gop-ibbp", "assemble-gop-i-only", "spool-offset-ribbon",
|
|
"tally-stsz-ledger"],
|
|
"powerDraw": 6, "asset": "gop-assembler", "color": "#7a6a44",
|
|
"flavor": "One anchor, N wafers, one crate, per the cadence punch-card. Opening a sealed crate is a production verb here, not a crime." },
|
|
{ "id": "mosh-reactor", "name": "MOSH REACTOR", "codex": "4:mosh-reactor", "kind": "crafter",
|
|
"footprint": { "x": 3, "y": 3 }, "recipes": ["mosh"], "powerDraw": 8,
|
|
"asset": "mosh-reactor", "color": "#52333e",
|
|
"flavor": "A decoder sealed in a vessel and starved of anchors. The I-frame leaves through the side airlock. The hallucination leaves through the front." },
|
|
{ "id": "bloom-duplicator", "name": "P-FRAME DUPLICATOR", "codex": "4:bloom-loop", "kind": "crafter",
|
|
"footprint": { "x": 1, "y": 1 },
|
|
"recipes": ["tap-bloom", "bloom-grade-1", "bloom-grade-2", "bloom-grade-3", "bloom-grade-4", "bloom-grade-5"],
|
|
"powerDraw": 6, "asset": "bloom-duplicator", "color": "#5a5060",
|
|
"flavor": "Stamps the same displacement onto the same cargo every lap. Grade 5 is visibly trying to leave its canister in one direction." },
|
|
{ "id": "field-loom", "name": "FIELD LOOM", "codex": "4:field-loom", "kind": "crafter",
|
|
"footprint": { "x": 3, "y": 2 }, "recipes": ["weave-fields", "loom-vhold-roll"],
|
|
"powerDraw": 5, "asset": "field-loom", "color": "#3f5a44",
|
|
"flavor": "Weaves and unweaves time. The two halves of a splinter were captured a moment apart and have never agreed since." },
|
|
{ "id": "telecine-puller", "name": "TELECINE PULLER", "codex": "4:telecine-puller", "kind": "crafter",
|
|
"footprint": { "x": 2, "y": 2 }, "recipes": ["mill-judder", "wind-stts-metronome"], "powerDraw": 4,
|
|
"asset": "telecine-puller", "color": "#6e5a38",
|
|
"flavor": "Cranks 24 into 30 on a deliberately lumpy cam. Runs backwards as a purifier, which we do not discuss on site." },
|
|
{ "id": "hex-splicer", "name": "HEX SPLICER", "codex": "4:hex-splicer", "kind": "crafter",
|
|
"footprint": { "x": 3, "y": 3 }, "recipes": ["splice-offsets", "chart-stco-map"], "powerDraw": 12,
|
|
"coolPerTick": 0.001,
|
|
"asset": "hex-splicer", "color": "#5a3a3a",
|
|
"flavor": "Nudges the offsets a few bytes so the decoder fetches garbage. Keep its buffer fed, or it splices itself." },
|
|
{ "id": "artifact-bottler", "name": "ARTIFACT BOTTLER", "codex": "2:science-packs", "kind": "crafter",
|
|
"footprint": { "x": 2, "y": 2 },
|
|
"recipes": ["can-static", "mix-rec709", "mix-dci-p3", "mix-rec2020",
|
|
"cut-sync-key", "bottle-container-pack", "forge-stss-keyring", "cut-ftyp-seal",
|
|
"bottle-analog-pack", "bottle-spatial-pack", "bottle-temporal-pack"],
|
|
"powerDraw": 4, "asset": "artifact-bottler", "color": "#566056",
|
|
"flavor": "Bottles the triptych. Contents are shelf-stable in the legal sense, i.e. no law has been written that mentions them." },
|
|
|
|
{ "id": "decode-asic", "name": "DECODE ASIC", "codex": "4:decode-asic", "kind": "power",
|
|
"footprint": { "x": 2, "y": 2 }, "recipes": [], "powerDraw": 0, "powerGen": 20,
|
|
"asset": "decode-asic", "color": "#b9bec4",
|
|
"flavor": "Cool, efficient, inflexible. Handles standard profiles and declines to imagine anything else. It will outlive you." },
|
|
{ "id": "software-decoder", "name": "SOFTWARE DECODER", "codex": "4:software-decoder", "kind": "power",
|
|
"footprint": { "x": 2, "y": 2 }, "recipes": [], "powerDraw": 0, "powerGen": 100,
|
|
"heatPerTick": 0.0033, "coolPerTick": 0.001,
|
|
"asset": "software-decoder", "color": "#6e3a34",
|
|
"flavor": "Decodes ANYTHING, at any temperature. Five ASICs at full song, one third of the time. Throttles at 0.7, scrams at 1.0, screams throughout. The lag is the damage model." },
|
|
{ "id": "asic-cooler", "name": "ASIC COOLER", "codex": "2:heat", "kind": "power",
|
|
"footprint": { "x": 2, "y": 2 }, "recipes": [], "powerDraw": 0, "powerGen": 5, "coolPerTick": 0.02,
|
|
"asset": "asic-cooler", "color": "#a8b4bc",
|
|
"flavor": "Decodes a little and vents a lot. Stand beside it in summer. Do not stand beside it in the dark, when you can see what it is venting." },
|
|
|
|
{ "id": "muxer", "name": "THE MUXER", "codex": "7:the-muxer", "kind": "crafter",
|
|
"footprint": { "x": 5, "y": 5 }, "recipes": ["assemble-moov-brain", "mux-container"], "powerDraw": 40,
|
|
"asset": "muxer", "color": "#6a7078",
|
|
"flavor": "The rocket. A launch gantry embracing a container built of nested boxes, innermost a brain of index tape-reels. It ships the whole file at once, and the file is your entire shipping history, and there is no second launch." },
|
|
|
|
{ "id": "shipper", "name": "SCREEN UPLINK", "codex": "7:the-muxer", "kind": "shipper",
|
|
"footprint": { "x": 2, "y": 2 }, "recipes": [], "powerDraw": 5,
|
|
"asset": "shipper", "color": "#46525e",
|
|
"flavor": "Composites whatever you hand it onto THE SCREEN. There is no undo. The absence of undo is the product." }
|
|
]
|