bLighT C-1 aid

will two pieces ever match?

each piece is drawn from layers of parts. before anything is made, this aid counts how often two pieces would come out the same.

an aid, not a ruling. the choice stays the founder's.

every number comes from the specs in the tree. the size of each part is a guess you can change below.

the collision dial

decision aid · C-1 stays the founder's

axes · LAYERS + colour

#axisvars · gate · rects

figures · compute()

pipeline

    verify · no trust in this page needed

      the whole aid

      C-1 Aid — taxonomy sizing

      Slide candidate taxonomies against the founder's bar — expected collisions under 0.01 at target supply — priced in components, transactions and bytes, beside PEPi's measured census. The ruling is the founder's; this page only makes its arithmetic visible. Inputs are prefilled from PROMPT_CATALOG_v7 §2 (30 × 6 ≈ 729M × colour axis ≈ 30B) and every reference number is from the tree.
      self-check: recomputing the spec's own worked example…

      Candidate taxonomy

      layer (catalog §2 shape)variantsgate %avg rects
      Gated layers get one free "absent" outcome — a gate is one integer, never duplicated slots (catalog §2 rule).
      Byte pricing anchors at the codec's hardcoded 96 grid and scales ≈ ½ at 48 (≈ ¼ the cells, recovered partly by run-merging) — shown, not assumed.

      The arithmetic

      PEPi, measured — the bar to match

      layerfiles per level (L1…L6)L6 draw
      bodies6, 14, 1, 1, 1, 11
      cloths gated 60%0, 0, 74, 80, 92, 117117 + absent
      eyes0, 12, 12, 12, 12, 1212
      mouths0, 11, 11, 11, 11, 1111
      accessories gated 37%0, 13, 20, 30, 44, 8080 + absent
      hats gated 37%0, 28, 51, 57, 73, 7575 + absent
      ears0, 0, 0, 0, 0, 0declared, shipped empty — the upload-order cautionary tale
      body colourruntime draw, 42-entry array42
      measured anchorvalue
      L6 combination space (uniform)≈ 4.03 billion — 167²/2N ≈ 3.5 × 10⁻⁶
      target: < 0.01 expected collisionsN > 1.25 B at 5,000 · 50 M at 1,000 · 20 B at 20,000
      catalog §2 prefill30 × 6 = 729 M × colour ≈ 30 B → ~180 components
      rect / transaction ceiling675 (2²⁴ gas cap, binary-searched; 676 over-caps)
      on-chain bytesRect 4 B · RectColored 7 B · SSTORE2 blob 24,576 B
      smallest reference piece782 rects — nothing whole fits one transaction
      Two numbers, both true: the uniform bound (k²/2N, the spec §4 figure) and the weighted figure (Σp² per axis — absence gates concentrate mass: two cloths "collide" most often by both being absent). For PEPi at 167 the uniform figure is 3.5×10⁻⁶ but the weighted figure is ≈ — — still comfortably rare, and the gap is the lesson: size BNRi on the weighted number.

      What C-1 rules, all in one place

      What C-1 rules — all in one place
      1 · The taxonomy itself — layers and variants per layer (the sliders above).
      2 · The colour axis — HD weights vs uniform array; it changes the math materially.
      3 · The level count, which is currently contradictory in the tree: CONSENT-1 D-8 promises 8 levels; the reference implementation ships levelsCount = 6 with thresholds 11/22/33/44/56 (SPEC-ERC20I-MECHANICS-1 §2). C-1 should rule the count so the encoder, the gate thresholds and the consent text agree — the levels flag is part of this ruling, not separate from it.
      4 · Implicitly, C-3 — grid 48 vs 96 halves every byte figure; one toggle, shown above.
      Numbers from the tree: SPEC-ERC20I-MECHANICS-1 §2/§3/§4/§7, SPEC-INSCRIPTION-COMPAT-1 §3.3, PROMPT_CATALOG_v7 §2. Model: independent axes, birthday approximation. The avg-rects-per-component column is an editable assumption (components are far smaller than whole sprites; the smallest whole piece measures 782 rects). AGPL-3.0-only with the repo. Corrections are part of the exhibit.
      ⌂ hub