|
| 1 | +# BERT Compose — UI/UX vision |
| 2 | + |
| 3 | +What would make Stella, Vensim, NetLogo, and Mesa jealous? Not more features — |
| 4 | +a different *relationship* between the modeler and the model. Those tools all |
| 5 | +share one flaw: a gap between describing a system and being in causal contact |
| 6 | +with it. You draw/code, then compile/run/debug as a separate act, and errors |
| 7 | +live in the gap. Compose has no gap and no error states — both are theory, not |
| 8 | +polish. The design job is to protect and deepen that, never to bury it under |
| 9 | +chrome. |
| 10 | + |
| 11 | +Principle: **every pixel either shows the live system or gets out of the way.** |
| 12 | +Calm warm-paper canvas (the Halcyonic shell), color reserved for meaning |
| 13 | +(substance identity, state level, the one amber warning), motion reserved for |
| 14 | +truth (flow only moves when flow is real). |
| 15 | + |
| 16 | +## The five things that win |
| 17 | + |
| 18 | +### 1. Flow you can read at a glance — make conservation visible, not just true |
| 19 | +Today: a number and a moving dot per wire. Jealousy-grade: |
| 20 | +- **Wire thickness = magnitude** (log-scaled), so a glance reads the whole |
| 21 | + circuit's balance — fat in, thin out means something's accumulating. |
| 22 | +- **Pulse density = rate**, color = substance. A conserved split *looks* |
| 23 | + conserved: one fat wire becoming two half-width wires. |
| 24 | +- **Stock as a filling vessel**, not a bar — buffers visibly hold, and a |
| 25 | + buffer near overflow or empty pulses at its rim. The state of the system is |
| 26 | + legible from across the room. Stella draws stocks; none of them *breathe*. |
| 27 | + |
| 28 | +### 2. The inline sparkline — every node carries its own history |
| 29 | +Mesa/NetLogo make you wire up a separate plot window. Compose should paint a |
| 30 | +**tiny live sparkline under each node** (the last ~40 ticks of its activity or |
| 31 | +storage), so the dynamics are *on the diagram*, not in a side panel. The whole |
| 32 | +canvas becomes a dashboard of itself. Click a node → the sparkline expands into |
| 33 | +the right panel with axes. This is the single highest-jealousy feature: the |
| 34 | +model and its behavior are the same picture. |
| 35 | + |
| 36 | +### 3. Direct-manipulation parameters — drag the system, watch it respond live |
| 37 | +Vensim has sliders in a separate "SyntheSim" mode. Compose should let you drag |
| 38 | +a parameter *while it runs* and watch the loop respond in real time — pull the |
| 39 | +source rate up and see the homeostat fight back, live. Even better: **drag on |
| 40 | +the node itself** (vertical drag on a buffer = release rate; on a source = |
| 41 | +emission). The parameter space becomes something you *play* like an |
| 42 | +instrument, not a form you fill. |
| 43 | + |
| 44 | +### 4. The lens switch — one model, every domain (nobody else has this) |
| 45 | +The killer differentiator, straight from K≅2. A **lens selector** aligned to |
| 46 | +the halcyonic.systems pillars (Systems / Political Economy / Neuromorphics / |
| 47 | +Protocol Science / Ecology) that *renames and re-skins* the same running |
| 48 | +circuit without touching its dynamics: Sensing→"monitor"/"oracle"/"receptor", |
| 49 | +Buffering→"registry"/"mempool"/"membrane". Switch lenses mid-run and watch the |
| 50 | +*same regulation* become a quorum throttle, a difficulty adjustment, a |
| 51 | +spiking neuron. No other modeling tool can show you that two domains are the |
| 52 | +same system because no other tool has the proof underneath. This is the |
| 53 | +"jealous" moment — it's not a better SD tool, it's a category they don't have. |
| 54 | + |
| 55 | +### 5. Provenance on demand — the proof is one hover away |
| 56 | +Every primitive, every bond, every "no error" can cite its license. Hover a |
| 57 | +node → "Buffering: conservative stock, transfer fn verified |
| 58 | +(python/agents.py), Mobus Ch.3." Hover the canvas → "valid by construction: |
| 59 | +composition is unconditional, Systems/Mobus/Composition.lean." Nobody trusts a |
| 60 | +black-box simulator; Compose can make rigor *ambient* — always available, |
| 61 | +never in the way. The honesty is the brand. |
| 62 | + |
| 63 | +## Smaller touches that compound |
| 64 | +- **Snap-to-grid + auto-route wires** (orthogonal, not straight-through-nodes). |
| 65 | +- **Palette items show their I/O substance** as little colored ports, so you |
| 66 | + pre-see what connects to what. |
| 67 | +- **Drag-from-port creates a node** ("drag into empty space → pick primitive"), |
| 68 | + so building is one gesture, not add-then-wire. |
| 69 | +- **Time scrubber** on the recorded run — drag back through ticks, the canvas |
| 70 | + reconstructs that moment's state (the CSV already holds it). |
| 71 | +- **Equilibrium glow**: when a regulated loop settles, it gets a soft steady |
| 72 | + halo — the system *telling you* it found homeostasis. |
| 73 | +- **"Why is this amber?"** — the substance/unit warnings already shipped; |
| 74 | + make them one-click-fixable ("change source to Message" / "insert |
| 75 | + transducer"). |
| 76 | + |
| 77 | +## What to deliberately NOT do (the discipline) |
| 78 | +- No code panel, no equation editor as the *primary* surface — the diagram IS |
| 79 | + the model. (Equations available on hover for the curious; never required.) |
| 80 | +- No modal config dialogs — everything inline, everything live. |
| 81 | +- No individuated-agent simulation here — that's Mesa's job; Compose is |
| 82 | + aggregate flow. Resisting this keeps the tool honest and the canvas calm. |
| 83 | +- No error states. Ever. Composition is unconditional; the worst that happens |
| 84 | + is an amber "this flow is ignored, here's why." |
| 85 | + |
| 86 | +## The one-sentence pitch |
| 87 | +Stella shows you a diagram, Vensim shows you a model, Mesa shows you a program — |
| 88 | +**Compose lets you reach in and hold the system while it runs, in any domain, |
| 89 | +with the proof one hover away.** |
0 commit comments