cyb/prysm/chroma/specs.md

chroma

cyb's UI is a 3×3 grid: eight fixed overlay elements ("chroma") arranged around a central renderer slot ("spacetime"). Each chroma owns a fixed screen position, a single semantic role, and a strictly typed cyberlink interface. Chromas never share state directly — every interaction crosses a typed cyberlink. The architecture is closed: the nine slots are the entire public surface of cyb.

layout

┌──────────┬──────────┬──────────┐
│  space   │    ad    │   ava    │
│  where   │  answer  │   who    │
├──────────┼──────────┼──────────┤
│  sense   │          │  sigma   │
│  notify  │spacetime │ resource │
├──────────┼──────────┼──────────┤
│  brain   │   com    │   time   │
│   map    │ command  │   when   │
└──────────┴──────────┴──────────┘

axes:

  • vertical: identity (top) ↔ action (bottom)
  • horizontal: location/perception (left) ↔ value/identity (right)
  • center: spacetime, the only pluggable slot

the nine

slot position role
space top-left location, "where" — current world, breadcrumb
ad top-center advisor — app responses, hints, ambient dialogue without disrupting spacetime
ava top-right avatar — "who" am I, identity, profile
sense mid-left notifications, sensors, ambient signals
spacetime center pluggable renderer (mir / sugarloaf / wry…)
sigma mid-right resource — wallet, tokens, economic state
brain bottom-left map — knowledge graph navigation, file browse
com bottom-ctr commander — universal command input; keyboard nav is context-sensitive across all chromas
time bottom-rt when — history, log, future planning

spacetime renderers

Spacetime hosts exactly one renderer at a time. The current renderer defines the active "world". Switching renderers = world transition.

renderer crate what it shows
mir mir 3D knowledge graph (wgpu)
sugarloaf sugarloaf terminal canvas (wgpu)
wry wry web content (Portal world)
bevy-ui bevy_ui native UI panels
symphony (future) audio scene

Spacetime owns its own camera (order 0). The eight chromas all live on a single overlay camera (order 100, no clear). Chromas are agnostic to which renderer is active — they only see the renderer's identity via the space chroma.

cyberlink interface

Chromas communicate only via cyberlinks — the same primitive the cybergraph uses on-chain. Direct resource reads across chromas are forbidden.

cyberlink shape

A cyberlink is a 5-tuple across three layers:

ℓ = (from, to, token, amount, valence)
field type layer meaning
from Particle structural source — the particle of the sending chroma
to Particle structural destination — the particle of the target chroma
token Particle economic what moves — the intent type as a particle
amount u64 economic weight of this link (1 for most UI messages)
valence i8 {-1,0,+1} epistemic Bayesian judgment: confirm / neutral / refute

Each chroma has a particle identity. Intents are also particles — not an enum. Adding a new intent means minting a new particle, not changing code.

signal shape

When a single user action must emit multiple cyberlinks atomically, they are bundled into a signal:

s = (neuron, links, Δφ*, proof, height)
field type meaning
neuron NeuronId signing chroma (or the user's neuron)
links Vec one or more cyberlinks in this atomic step
Δφ* sparse vec proven focus shift across all links
proof Option zheng proof (omitted for local-only signals)
height u64 block height (0 until finalized on-chain)

Local chroma-to-chroma signals carry proof = None; they become provable on-chain when the neuron signs and broadcasts.

example cyberlinks

from particle to particle token particle meaning
com spacetime submit user submitted text
com spacetime switch-renderer replace active renderer
spacetime spacetime output renderer self-feeds output
ad com hint suggestion / placeholder update
* sense notify any chroma posts a notification
ava sigma identity request identity for resource lookup
sigma ava resource reply with current resource state
spacetime space locate tell space which world is active
brain brain map graph navigation self-feed
* time record append event to history

A switch-renderer + notify pair (e.g. switching to terminal world) is one Signal with two cyberlinks — proved and applied atomically.

invariants

  1. A chroma reads its own state and writes cyberlinks. Nothing else.
  2. Every chroma must function with zero other chromas present (modulo cyberlinks it has subscribed to).
  3. Cyberlink delivery is one-way. Replies are separate cyberlinks.
  4. Chromas may not block on a cyberlink reply. All flows are async.
  5. The eight slot positions are fixed. New "features" compose existing chromas via new token particles, not new slots.

example flows

ls typed in com

  1. user types ls\n in com
  2. com emits cyberlink (com, spacetime, submit, 1, +1) carrying the text
  3. spacetime sees current renderer is mir — emits (spacetime, spacetime, switch-renderer, 1, 0) + (spacetime, spacetime, output, 1, 0) as one signal
  4. spacetime now sugarloaf, replays the submit into nushell
  5. nushell output streams via (spacetime, spacetime, output, 1, 0) self-links
  6. sugarloaf redraws

graph typed in com

  1. user types graph\n
  2. com emits (com, spacetime, switch-renderer, 1, +1)
  3. mir takes over; no other chroma touched

incoming notification

  1. external event arrives at sense
  2. sense emits (sense, sense, notify, 1, 0) self-link to render its slot
  3. nothing else fires

asking the advisor

  1. as user types in com, com emits (com, ad, submit, 1, 0) partial text
  2. ad emits (ad, com, hint, 1, 0) with suggestion
  3. com renders hint in placeholder slot

implementation map

crate layout — chroma and spacetime live in prysm (the visual crate); shell depends on prysm and on cybergraph for the Cyberlink / Signal / Particle types:

prysm/
├── chroma/
│   ├── mod.rs          # ChromaId, particle identities, signal bus
│   ├── ad.rs           # answer (top-center)
│   ├── ava.rs          # avatar (top-right)
│   ├── brain.rs        # map (bottom-left)
│   ├── com.rs          # commander (bottom-center)
│   ├── sense.rs        # notifications (mid-left)
│   ├── sigma.rs        # resource (mid-right)
│   ├── space.rs        # location (top-left)
│   └── time.rs         # history (bottom-right)
├── spacetime/
│   ├── mod.rs          # renderer slot, swap logic
│   ├── mir.rs          # 3D graph backend
│   ├── sugarloaf.rs    # terminal backend
│   ├── wry.rs          # web view backend
│   └── ui.rs           # bevy-native UI backend
└── molecules.rs        # intra-chroma composition primitives

shell/                  # thin Bevy app — wires prysm + platform I/O

dependency graph:

shell  →  prysm  →  cybergraph   (Cyberlink, Signal, Particle)
                 →  bevy

cybergraph is the authoritative source for the Cyberlink / Signal 5-tuple. prysm owns the visual layer — chromas, spacetime renderers, molecules. shell is the thin Bevy app that boots everything and wires platform I/O.

Each chroma is a Bevy Plugin with:

  • its own components & systems
  • writes Signal onto the bus (one or more cyberlinks, atomically)
  • reads Signals where any link targets to == Self
  • no ResMut borrow of any other chroma's state

A single Messages<Signal> resource is the bus.

molecules

Within a chroma, molecules (prysm/molecules.rs) are reusable composition primitives. Molecules can produce render targets that spacetime consumes — e.g. a terminal molecule produces a sugarloaf canvas. Molecules are private to their owning chroma; cross-chroma composition happens at the cyberlink layer only.

what this replaces

old new
shell/chrome.rs (ad + com) prysm/chroma/ad.rs + prysm/chroma/com.rs
worlds/ enum + state prysm/spacetime/ with renderer swap
PendingShellCmd resource (com, spacetime, submit, …) cyberlink in Signal
direct NextState<WorldState> (com, spacetime, switch-renderer, …) cyberlink
chrome accessing terminal state impossible — different chromas, different crates

why

  • bugs like "commander writes into terminal twice" become structurally impossible: there is no path for one chroma's keyboard events to reach another's input handler.
  • adding a new feature is always: emit a new cyberlink, or subscribe to an existing one. never: thread a shared resource through five files.
  • the architecture is closed and finite. nine slots, one bus, typed intents. you can hold the whole picture in your head.

see cyb/core for the conceptual roles of the nine apps. see cyb/com for command intent semantics. see cyb/rendering for how spacetime backends share the wgpu device.

Folder

Homonyms

soft3/specs
specs
soft3/nox/specs
nox reference canonical specification of the nox virtual machine. this is the source of truth — when code and reference disagree, fix reference first, then propagate to code. specifications | page | scope | status | |------|-------|--------| | vm.md | overview, field, hash, algebra polymorphism,…
soft3/cybergraph/specs
cybergraph specs cybergraph is exactly its structure, nothing more and nothing less: a cybergraph is built from signals; a signal is built from cyberlinks; each has a fixed, finite set of fields. these specs define those fields — one article per field — plus the two emergents that appear when you…
soft3/bbg/specs
specs
soft3/hemera/specs
Hemera: A Permanent Hash Primitive for Planetary-Scale Collective Intelligence | field | value | |----------|--------------------------------| | version | 2.0 | | status | Decision Record | | authors | mastercyb | | date | March 2026 | Abstract Hemera is the cryptographic hash primitive for cyber,…
cyb/evy/specs
specs
cyb/wysm/specs
wysm reference canonical specification of the cyber wysm runtime. this is the source of truth — when code and reference disagree, fix reference first, then propagate to code. `wysm` is cyber's name for its wasm runtime. `wasm`/`WASM` is the WebAssembly format. `wasmi` is the upstream project this…
soft3/mir/specs
specs
neural/rune/specs
rune language specification rune K140 — working spec, mutations expected see [../README.md](/neural/rune/readme) for project overview and implementation status. specification | file | what it covers | |------|----------------| | [subject.md](/neural/rune/specs/subject) | the subject noun — the…
neural/eidos/specs
eidos reference canonical specification of the eidos proof assistant. this is the source of truth — when code and reference disagree, fix reference first, then propagate to code. specifications | page | scope | status | |------|-------|--------| | terms.md | CIC term syntax, encoding as nox nouns,…
soft3/tru/specs
tru specs the build map for tru — the convergence vm. one pipeline, `.graph` → φ* → Δφ* → reward, specified across four layers. focusing computes φ*; compilation freezes it into a model; **economics is why any of it runs** — the proven focus shift Δφ* is what a neuron self-mints against. this index…
soft3/lens/specs
lens reference canonical specification for polynomial commitment — five lenses for five algebras. the trait three operations. commit is O(N). open produces a proof. verify checks the proof. all transparent (no trusted setup), all post-quantum. see trait for the full specification. naming convention…
soft3/foculus/specs
specs
neural/inf/specs
inf specs — what canonical specification for inf, proof language #10 of the cyber stack (Infer — Horn clauses, relation/inference). the declarative twin of rune; sibling of Rs, Trident|Tri, Bt, Ten. specs/ is the source of truth. when specs/ and rs/ (implementation) disagree, resolve in specs/…
soft3/mudra/specs
mudra reference canonical specification for seven cryptographic primitives. each module proves a property. each module has its own security assumption. they share no cryptographic code with each other. modules | module | proves | security assumption | spec |…
soft3/zheng/specs
zheng: polynomial proof system one IOP: SuperSpartan + sumcheck (CCS constraints, O(N) prover, O(log N) verifier). one folding: HyperNova (CCS-native, ~30 field ops per fold, one decider at the end). one hash: hemera (~3 calls per proof — binding, Fiat-Shamir seed, domain separation). five…
soft3/glia/import/specs
import crate specification How external model formats become canonical `.model` files. Scope `import` reads source models (GGUF, safetensors, ONNX, HF PyTorch, MLX), normalizes naming, shapes, dtypes, and config, and writes the canonical `.model` file consumed by [run/](/soft3/glia/run).…
soft3/glia/run/specs
cyb-llm runtime specification Canonical spec for the cyb-llm runtime. Defines what models we run, how we represent them, how we execute them. Every backend (wgpu, metal, cpu, ane) is verified against this spec. Code disagreeing with spec is a bug. Spec disagreeing with reality is a spec bug — fix…
soft3/strata/nebu/specs
nebu specification canonical reference for the Goldilocks prime field, its arithmetic, and its hardware. spec pages | page | defines | |------|---------| | field | prime, elements, arithmetic, properties, why Goldilocks | | ntt | Number Theoretic Transform, roots of unity, butterfly, Cooley-Tukey |…
cyb/honeycrisp/acpu/specs
acpu — API specification pure Rust driver for Apple Silicon CPU compute. direct access to every useful compute unit in M1–M4: matrix coprocessor, vector engine, numeric extensions, atomics, memory system, performance counters. zero external dependencies — only inline assembly and system calls.…
cyb/honeycrisp/aruminium/specs
aruminium — API specification pure Rust driver for Apple Metal GPU. direct objc_msgSend FFI, zero external dependencies, only macOS system frameworks. concepts | concept | what it is | |---------|-----------| | device | a Metal GPU — discovered at runtime, owns all GPU resources | | buffer |…
cyb/prysm/molecules/specs
specs
cyb/honeycrisp/rane/specs
specs
soft3/strata/trop/specs
trop specification canonical reference for tropical semiring arithmetic: the (min, +) semiring, its matrix algebra, and dual certificate verification. spec pages | page | defines | |------|---------| | [semiring](/soft3/strata/trop/specs/semiring) | tropical semiring axioms, (min, +) definition,…
cyb/prysm/atoms/specs
specs
soft3/strata/jali/specs
jali reference canonical specification for polynomial ring arithmetic R_q = F_p[x]/(x^n+1) over Goldilocks. what jali is jali (जाली — lattice/mesh) is the fifth execution algebra for cyber. polynomial ring elements are structured vectors of n Goldilocks field elements with multiplication defined by…
cyb/honeycrisp/unimem/specs
unimem: Zero-Copy Memory Driver for Apple Silicon Goal Single pinned buffer visible to CPU, GPU, AMX, and ANE — zero copies between pipeline stages. The memory layer for inference on unified memory. v1 adds NVMe DMA via DEXT — full zero-copy from disk to compute. Why this exists Every inference…
soft3/strata/genies/specs
genies specification canonical reference for isogeny group action arithmetic: F_q field operations, supersingular curves, isogeny computation, and class group action. spec pages | page | defines | |------|---------| | [prime](/soft3/strata/genies/specs/prime) | CSIDH prime form, selection criteria,…
soft3/strata/kuro/specs
kuro specification canonical reference for the F₂ tower field, its arithmetic, packed operations, and hardware targets. spec pages | page | defines | |------|---------| | [field](/soft3/strata/kuro/specs/field) | tower levels, all field operations, properties, cost model vs Goldilocks | |…
cyb/prysm/system/specs
specs

Graph