Expand homepage VN into repository swarm graph
This commit is contained in:
parent
c7ff9d81f3
commit
4302bd2653
6 changed files with 1066 additions and 15 deletions
|
|
@ -78,6 +78,117 @@ cssclasses:
|
|||
<p><a href="/Pitch">Play the over-the-top portfolio pitch</a> | <a href="/Projects/">Visit the repo atlas</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-adventure-map" class="gamecult-vn-source-card gamecult-vn-graph-card" data-sai-dom-source="true">
|
||||
<h2>Norn's Adventure Graph</h2>
|
||||
<svg viewBox="0 0 960 540" role="img" aria-label="GameCult repository swarm adventure graph">
|
||||
<g class="graph-links">
|
||||
<path d="M480 72 L274 154 L220 278 L270 402 L480 468 L690 402 L740 278 L686 154 Z"/>
|
||||
<path d="M480 72 L480 468 M274 154 L690 402 M686 154 L270 402 M220 278 L740 278"/>
|
||||
<path d="M274 154 L126 112 L118 250 L220 278 M686 154 L836 116 L848 252 L740 278"/>
|
||||
<path d="M270 402 L128 424 L246 494 M690 402 L830 424 L716 494"/>
|
||||
</g>
|
||||
<g class="graph-node core"><circle cx="480" cy="72" r="36"/><text x="480" y="77">Norn</text></g>
|
||||
<g class="graph-node"><circle cx="274" cy="154" r="32"/><text x="274" y="159">Sai</text></g>
|
||||
<g class="graph-node"><circle cx="686" cy="154" r="32"/><text x="686" y="159">Eve</text></g>
|
||||
<g class="graph-node"><circle cx="220" cy="278" r="34"/><text x="220" y="283">Epiphany</text></g>
|
||||
<g class="graph-node"><circle cx="740" cy="278" r="34"/><text x="740" y="283">Bifrost</text></g>
|
||||
<g class="graph-node"><circle cx="270" cy="402" r="32"/><text x="270" y="407">VoidBot</text></g>
|
||||
<g class="graph-node"><circle cx="690" cy="402" r="32"/><text x="690" y="407">Libby</text></g>
|
||||
<g class="graph-node core"><circle cx="480" cy="468" r="36"/><text x="480" y="473">Worlds</text></g>
|
||||
<g class="graph-node small"><circle cx="126" cy="112" r="28"/><text x="126" y="117">Mimir</text></g>
|
||||
<g class="graph-node small"><circle cx="118" cy="250" r="28"/><text x="118" y="255">Ghostlight</text></g>
|
||||
<g class="graph-node small"><circle cx="836" cy="116" r="28"/><text x="836" y="121">Heimdall</text></g>
|
||||
<g class="graph-node small"><circle cx="848" cy="252" r="28"/><text x="848" y="257">CultMesh</text></g>
|
||||
<g class="graph-node small"><circle cx="128" cy="424" r="28"/><text x="128" y="429">Weksa</text></g>
|
||||
<g class="graph-node small"><circle cx="246" cy="494" r="28"/><text x="246" y="499">Aqua</text></g>
|
||||
<g class="graph-node small"><circle cx="830" cy="424" r="28"/><text x="830" y="429">Kiko</text></g>
|
||||
<g class="graph-node small"><circle cx="716" cy="494" r="28"/><text x="716" y="499">CultPong</text></g>
|
||||
</svg>
|
||||
<p>Norn is the graph host: every route is a room, every room points back to a repo, and every claim is supposed to survive being viewed as topology.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-norn-map" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Norn</h2>
|
||||
<p>Norn makes architecture and dataflow readable as linked graphs. The job is not to beautify complexity, but to show ownership, movement, neighbors, and evidence without flattening the system into a list.</p>
|
||||
<p><a href="https://github.com/GameCult/Norn">Norn repo</a> | <a href="https://github.com/GameCult/norn-rs">norn-rs</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-norn-architecture" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Architecture Thread</h2>
|
||||
<p>Architecture nodes own bodies and responsibilities: repos, services, runtimes, stores, surfaces, and the authority they are allowed to exercise.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-norn-dataflow" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Dataflow Thread</h2>
|
||||
<p>Dataflow nodes own movement: evidence, fragments, turns, validation, proposals, command intent, accepted state, and published receipts.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-norn-focus" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Focus Trial</h2>
|
||||
<p>Low zoom shows shape; high zoom shows title, purpose, mechanism, status, and code references. The selected node has to commit geometry instead of being repaired after the fact.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-norn-solver" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Solver Body</h2>
|
||||
<p>The Rust side aims at hybrid graph layout: ranking, ordering, direction pressure, springs, collision, and force relaxation. React owns inspection, not the underlying truth.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-norn-future" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Norn Wants</h2>
|
||||
<p>Live Bifrost work frontiers, Epiphany evidence maps, Eve operational surfaces, Ghostlight consequence graphs, and direct graph rooms for every repo in the swarm.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-sai-embed" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Sai</h2>
|
||||
<p>Sai renders Ink stories inside public pages. It lets a Persona guide stand beside real Quartz documents, so onboarding can be narrative without becoming a parallel wiki.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-sai-formats" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Three Masks</h2>
|
||||
<p>Transcript, visual novel, and cinematic deck are different reader postures over one story substrate. The homepage uses VN because it can point at the machine while speaking.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-sai-dom-cards" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>DOM Cards</h2>
|
||||
<p>The `# dom:` tag clones canonical page cards into the stage. Quartz remains the source of truth; Ink controls pacing; Sai controls rendering.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-sai-quartz" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Quartz Swap</h2>
|
||||
<p>Sai auto-initializes `.sai-player`, survives client-side navigation, and keeps plain links visible. A guided tour must never become a locked door.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-sai-links" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Honest Exits</h2>
|
||||
<p>The VN is a spatial navigation layer, not a curtain. Every room keeps a route back to the public wiki, project page, repo, or receipt surface.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-eve-surface-pipeline" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Eve Pipeline</h2>
|
||||
<p>Provider-owned state becomes a CultUI semantic tree; Eve projects it into local renderers; user action becomes command intent; the provider accepts or refuses and publishes updated truth.</p>
|
||||
<p><a href="https://github.com/GameCult/Eve">Eve repo</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-eve-cultui" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Not Remote DOM</h2>
|
||||
<p>CultUI surfaces carry stable widget IDs, typed bindings, command routes, layout intent, permissions, health, and provenance. Arbitrary DOM soup does not get to be infrastructure.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-eve-backends" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Many Bodies</h2>
|
||||
<p>Web DOM, desktop controls, mobile panels, Unity UI, stream overlays, and Sai rooms can render the same semantic surface without each becoming its own little kingdom.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-eve-commands" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Command Trial</h2>
|
||||
<p>Eve owns projection, hit-testing, and command intent. Providers own truth and command acceptance. That split is the spine.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-eve-canvas" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Native Proof</h2>
|
||||
<p>EveCanvas is the current native shell: UIKit lifecycle and crisp text, OpenGL ES pixels, CADisplayLink frames, CoreMotion telemetry, and no premature claim that telemetry is authority.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-docs" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Docs</h2>
|
||||
<p>The docs hold the operating side of the site: publishing workflow, site architecture, and Bifrost as it becomes the public work/governance layer.</p>
|
||||
|
|
@ -90,6 +201,26 @@ cssclasses:
|
|||
<p><a href="/Projects/Epiphany">Project page</a> | <a href="https://github.com/GameCult/Epiphany">GitHub repo</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-epiphany-organs" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Organ Lanes</h2>
|
||||
<p>Self routes, Face speaks, Eyes retrieve, Proprioception maps, Hands edit, Soul verifies, and Imagination shapes futures. The point is authority boundaries, not costume names.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-epiphany-memory" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Memory Split</h2>
|
||||
<p>Local organ memory lives as durable agent state; portable public Persona projection uses a typed persona-state shape. Memory, speech, scheduler, and evidence do not get to counterfeit each other.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-epiphany-heartbeat" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Heartbeat</h2>
|
||||
<p>Initiative, readiness, speed, reaction bias, load, constraints, and pending turns make agent pressure inspectable before the Face starts talking.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-epiphany-aquarium" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Aquarium Surface</h2>
|
||||
<p>EpiphanyAquarium wants agents to be selectable living objects: role lanes, memory, pressure, and readiness visible without drowning the operator in admin chrome.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-bifrost" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Bifrost</h2>
|
||||
<p>Bifrost turns public work into inspectable records: proposed tasks, claims, reviews, receipts, contributor history, and the reward/support pressure that must not hide in private chat.</p>
|
||||
|
|
@ -102,6 +233,26 @@ cssclasses:
|
|||
<p><a href="/Projects/VoidBot">Project page</a> | <a href="https://github.com/GameCult/VoidBot">GitHub repo</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-voidbot-retrieval" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Retrieval Body</h2>
|
||||
<p>VoidBot searches archived Discord history, indexed source trees, Aetheria lore, and local vector stores, then hands deeper work to Codex when chat stops being the right tool.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-voidbot-pipe" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Bot / Worker Split</h2>
|
||||
<p>The Discord gateway and permissions stay in the bot lane; heavier jobs and MCP tools live in the worker lane. Transport is not truth.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-voidbot-memory" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Social Memory</h2>
|
||||
<p>Interaction memory, audit events, self-state projection, speech receipts, and candidate interventions let the bot remember without pretending a read is a verdict.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-voidbot-faces" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Repo Faces</h2>
|
||||
<p>Repo Faces grow from indexed bodies and webhook speech. A project should greet you, explain itself, and point at evidence without pretending the avatar is the source of truth.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-cultlib" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>CultLib</h2>
|
||||
<p>CultLib is the shared record shelf: typed documents first, protocol names second, and no convenient blob crowned as truth just because it was nearby.</p>
|
||||
|
|
@ -126,6 +277,99 @@ cssclasses:
|
|||
<p><a href="/Docs/Bifrost">Current Bifrost rollout</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-mimir-well" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Mimir Field Well</h2>
|
||||
<p>Mimir owns configuration, calibration truth, runtime contracts, launch, status, persistence, and continuity pressure for realtime room intelligence.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-mimir-reservoir" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Native Reservoir</h2>
|
||||
<p>The future body is one rolling time-ordered reservoir. Typed views are indexes, not private histories. Camera frames, scene rays, material claims, audio blocks, phase claims, and render packets share a field.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-mimir-sensors" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Sensor Array</h2>
|
||||
<p>Cameras, Leap IR, Focusrite anchors, camera mics, PS Eye witnesses, visual fusion, audio field models, and clock drift all need visible confidence before they can feed the surface web.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-mimir-confidence" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Confidence</h2>
|
||||
<p>Mimir wants drift named, cadence proven, false coherence rejected, and no feed called truth before it earns the oath.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-ghostlight-state" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Ghostlight State</h2>
|
||||
<p>Ghostlight keeps three truths apart: canonical state, observer-specific perceived state, and portable Persona projection.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-ghostlight-branch" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Branch Compiler</h2>
|
||||
<p>Reviewed scene intent and consequence packets become playable Ink plus training receipts. The compiler cares about state reads, consequences, and branch folding.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-ghostlight-sidecar" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Sidecars</h2>
|
||||
<p>`.training.json` and visual sidecars make scene consequences reusable for future specialized models and visual surfaces.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-ghostlight-reviewer" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Reviewer</h2>
|
||||
<p>The reviewer catches fake variables, cosmetic choices, missing state reads, fake folds, and visual callback gaps before a scene calls itself meaningful.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-aetheria" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Aetheria</h2>
|
||||
<p>Science-fantasy ships, faction pressure, generated routes, action-RPG ambitions, and a setting archive waiting for recovery work instead of another heroic restart.</p>
|
||||
<p><a href="https://aetheria.gamecult.org">Aetheria site</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-zyphos" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Zyphos</h2>
|
||||
<p>A close-binary living world with dim-star ecology, Mother Tree contracts, memory-bearing cells and landscapes, and politics that behaves like biology with obligations.</p>
|
||||
<p><a href="https://zyphos.gamecult.org">Zyphos site</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-weksa" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Weksa</h2>
|
||||
<p>Ontology-first language work: source text to interlingua, alien ontology, grammar, morphology, phonology, diachrony, renderer, gloss, and trace.</p>
|
||||
<p><a href="https://github.com/GameCult/weksa">Weksa repo</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-streampixels" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>StreamPixels</h2>
|
||||
<p>Persistent pixel characters for livestream overlays: account linking, customization, creator event rules, realtime fanout, and overlay rendering that does not own authorization.</p>
|
||||
<p><a href="https://github.com/GameCult/StreamPixels">StreamPixels repo</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-aquasynth" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>AquaSynth</h2>
|
||||
<p>Patch graph contracts, `.aqua` authoring, SFXR mapping, Faust generation, and the research path toward alien vocal-tract synthesis with Weksa utterance structures.</p>
|
||||
<p><a href="https://github.com/GameCult/AquaSynth">AquaSynth repo</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-repixelizer" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Repixelizer</h2>
|
||||
<p>Pixel-art reconstruction as diagnosis: infer the grid, expose lattice mistakes, rebuild phase fields, sample source pixels, snap alpha, and optionally quantize palette.</p>
|
||||
<p><a href="/Projects/repixelizer">Project page</a> | <a href="https://github.com/GameCult/repixelizer">Repo</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-vibegeometry" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>VibeGeometry</h2>
|
||||
<p>Runtime shape work around Rust CSG: tree intent, LOD-aware hierarchy, selected cuts, and generated geometry outputs with inspectable transformation receipts.</p>
|
||||
<p><a href="/Projects/VibeGeometry">Project page</a> | <a href="https://github.com/GameCult/VibeGeometry">Repo</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-visual-tools" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>Visual Tools</h2>
|
||||
<p>Repixelizer and VibeGeometry share a thesis: creative tools should make constrained reconstruction inspectable, not hide transformations behind a pretty export.</p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-cultpong" class="gamecult-vn-source-card" data-sai-dom-source="true">
|
||||
<h2>CultPong</h2>
|
||||
<p>A fast paddle-arena prototype with shaped unlockables, geometry-driven bounces, a bash mechanic, and an obvious path toward tiny-game patronage experiments.</p>
|
||||
<p><a href="/Projects/CultPong">Project page</a></p>
|
||||
</div>
|
||||
|
||||
<div id="gamecult-vn-moonshot" class="gamecult-vn-source-card gamecult-vn-graphic-card" data-sai-dom-source="true">
|
||||
<h2>Moonshot Trajectory</h2>
|
||||
<img src="/static/interactive/portfolio-pitch/figures/moonshot-trajectory.svg" alt="GameCult moonshot trajectory graphic" />
|
||||
|
|
|
|||
|
|
@ -5,6 +5,16 @@ VAR visited_cultlib = false
|
|||
VAR visited_heimdall = false
|
||||
VAR visited_proof = false
|
||||
VAR visited_pitch = false
|
||||
VAR visited_norn = false
|
||||
VAR visited_sai = false
|
||||
VAR visited_eve = false
|
||||
VAR visited_mimir = false
|
||||
VAR visited_ghostlight = false
|
||||
VAR visited_worlds = false
|
||||
VAR visited_kiko = false
|
||||
VAR visited_aqua = false
|
||||
VAR visited_visual_tools = false
|
||||
VAR visited_cultpong = false
|
||||
VAR visited_count = 0
|
||||
|
||||
-> welcome
|
||||
|
|
@ -32,17 +42,75 @@ I am Void, your guide for the front compound. The rooms are project doors, topic
|
|||
# avatar: void
|
||||
# scene: compound
|
||||
# sprite: point@left
|
||||
# dom: studio,projects
|
||||
Each door is a website space. Pick the one that sounds like the itch.
|
||||
# dom: adventure_map,projects
|
||||
Norn has finally put the entire floor plan on the table, because apparently a whole repository swarm should not be navigated by vibes and two suspicious arrows. Pick a door. The map will keep accusing us of being real.
|
||||
+ [Show me the Norn adventure graph] -> norn
|
||||
+ [How do agents remember work? Meet Epiphany at the forge] -> epiphany
|
||||
+ [How does public labor become a receipt? Visit Bifrost] -> bifrost
|
||||
+ [Where did that lore or decision come from? Find VoidBot] -> voidbot
|
||||
+ [How do records stay findable and typed? Ask Libby] -> cultlib
|
||||
+ [Who is allowed to cross a boundary? Ask Heimdall] -> heimdall
|
||||
+ [How does the VN stage work? Ask Sai] -> sai
|
||||
+ [What is Eve trying to turn the web into?] -> eve
|
||||
+ [What is Mimir measuring in the machine room?] -> mimir
|
||||
+ [What does Ghostlight do with social state?] -> ghostlight
|
||||
+ [Open the World Vault with Nibu, Druzkai, and Weksa] -> worlds
|
||||
+ [Visit Kiko's StreamPixels overlay studio] -> kiko
|
||||
+ [Hear AquaSynth explain the voice lab] -> aqua
|
||||
+ [Inspect the pixel and geometry workshop] -> visual_tools
|
||||
+ [Revive the CultPong arena] -> cultpong
|
||||
+ [What proof exists, and what is still risky? Show me receipts] -> proof
|
||||
+ [Show me the impossible portfolio pitch] -> pitch_intro
|
||||
+ [I just need the normal wiki] -> wiki
|
||||
|
||||
=== norn ===
|
||||
{ not visited_norn:
|
||||
~ visited_norn = true
|
||||
~ visited_count = visited_count + 1
|
||||
}
|
||||
# speaker: Norn
|
||||
# scene: graph_loom
|
||||
# sprite: hidden
|
||||
# dom: adventure_map,norn_map
|
||||
This is the graph loom. I do not tell you the machine is coherent; I make the claims sit where you can inspect their neighbors. A map is not truth. A map is a way to make truth nervous.
|
||||
+ [Show me architecture versus dataflow] -> norn_threads
|
||||
+ [Show me the solver body] -> norn_solver
|
||||
+ [Show me what Norn wants to become] -> norn_future
|
||||
+ [Return to the compound] -> hub_return
|
||||
|
||||
=== norn_threads ===
|
||||
# speaker: Norn
|
||||
# scene: graph_loom
|
||||
# sprite: hidden
|
||||
# dom: norn_architecture,norn_dataflow
|
||||
Architecture nodes own bodies and responsibilities. Dataflow nodes own movement: evidence, fragments, turns, validation, proposals, and commands. Links are not decoration; they are the stitches where one claim touches another without becoming mush.
|
||||
+ [What happens when you zoom in?] -> norn_zoom
|
||||
+ [Back to Norn's graph] -> norn
|
||||
|
||||
=== norn_zoom ===
|
||||
# speaker: Norn
|
||||
# scene: graph_loom
|
||||
# sprite: hidden
|
||||
# dom: norn_focus,norn_map
|
||||
Low zoom shows structure. High zoom shows titles, purposes, mechanisms, status, and code references. Pretty maps are guilty until the state can testify.
|
||||
-> norn
|
||||
|
||||
=== norn_solver ===
|
||||
# speaker: Norn
|
||||
# scene: graph_loom
|
||||
# sprite: hidden
|
||||
# dom: norn_solver,norn_map
|
||||
Under the stage, the Rust side wants ranks, ordering, direction pressure, springs, collision, and force relaxation. React gets the inspection surface. Nobody gets to be the only witness.
|
||||
-> norn
|
||||
|
||||
=== norn_future ===
|
||||
# speaker: Norn
|
||||
# scene: graph_loom
|
||||
# sprite: hidden
|
||||
# dom: norn_future,value_orbit
|
||||
I want Bifrost work frontiers, Epiphany evidence maps, Eve operational surfaces, and Ghostlight consequence graphs to become rooms you can walk through. Lists are fine for grocery stores. This machine needs topology.
|
||||
-> norn
|
||||
|
||||
=== epiphany ===
|
||||
{ not visited_epiphany:
|
||||
~ visited_epiphany = true
|
||||
|
|
@ -52,7 +120,7 @@ Each door is a website space. Pick the one that sounds like the itch.
|
|||
# avatar: epiphany
|
||||
# scene: forge
|
||||
# sprite: evidence@right
|
||||
# dom: epiphany,proof
|
||||
# dom: epiphany,epiphany_organs
|
||||
Epiphany is at the forge with a map pinned beside the workbench, comparing what an agent said it would do against the files it actually touched. Someone has written "do not improve wallpaper with hammer" on the safety rail. Sensible, humiliating, necessary.
|
||||
-> epiphany_2
|
||||
|
||||
|
|
@ -61,9 +129,29 @@ Epiphany is at the forge with a map pinned beside the workbench, comparing what
|
|||
# avatar: epiphany
|
||||
# scene: forge
|
||||
# sprite: map@right
|
||||
# dom: epiphany
|
||||
# dom: epiphany_memory,epiphany_heartbeat
|
||||
My job is to stop AI helpers from forgetting the room they are standing in. I keep maps, evidence, and role lanes outside the chat fog so future work can argue with the past instead of accidentally reenacting it in a nicer hat.
|
||||
-> hub_return
|
||||
+ [Show me the organ lanes] -> epiphany_organs
|
||||
+ [Show me the Aquarium surface] -> epiphany_aquarium
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== epiphany_organs ===
|
||||
# speaker: Epiphany
|
||||
# avatar: epiphany
|
||||
# scene: forge
|
||||
# sprite: cut@right
|
||||
# dom: epiphany_organs,epiphany_memory
|
||||
Face speaks. Eyes retrieve. Hands touch files. Soul falsifies. Self routes authority. The trick is not giving them cute names; the trick is refusing to let one lane counterfeit the others when the work gets hot.
|
||||
-> epiphany_2
|
||||
|
||||
=== epiphany_aquarium ===
|
||||
# speaker: Epiphany
|
||||
# avatar: epiphany
|
||||
# scene: forge
|
||||
# sprite: map@right
|
||||
# dom: epiphany_aquarium,epiphany_heartbeat
|
||||
Aquarium is the operator surface I want: agents as selectable living objects with readiness, pressure, role lanes, and local memory visible. Not an admin panel pretending it has a soul. A body you can inspect while it moves.
|
||||
-> epiphany_2
|
||||
|
||||
=== bifrost ===
|
||||
{ not visited_bifrost:
|
||||
|
|
@ -85,7 +173,27 @@ Bifrost is the ledger hall. A contributor proposes work, the community argues pr
|
|||
# sprite: unimpressed@left
|
||||
# dom: bifrost
|
||||
It is not a solved economy with a cape on. It is a way to make unfinished labor, credit, risk, and support visible before those records start touching money.
|
||||
-> hub_return
|
||||
+ [Show me the labor loop] -> bifrost_labor
|
||||
+ [Show me patron voting] -> bifrost_patronage
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== bifrost_labor ===
|
||||
# speaker: Void
|
||||
# avatar: void
|
||||
# scene: ledger
|
||||
# sprite: document@left
|
||||
# dom: bifrost,proof
|
||||
Bifrost is the crossing ledger: GitHub work, Discord-native requests, CultCache intake packets, votes, claims, reviews, and receipts become governed process instead of chat sediment. Human approval stays in governance-sensitive and payout-sensitive paths. Machines with payment buttons require a leash made of evidence.
|
||||
-> bifrost_2
|
||||
|
||||
=== bifrost_patronage ===
|
||||
# speaker: Void
|
||||
# avatar: void
|
||||
# scene: ledger
|
||||
# sprite: point@left
|
||||
# dom: patronage_furnace,roadmap
|
||||
Demand raises priority and reward pressure; contributors claim work when it becomes worth doing; maintainers accept proof; credit lands in an auditable ledger. Support can become power, but the log base is the political argument: how flat do we want the hierarchy?
|
||||
-> bifrost_2
|
||||
|
||||
=== voidbot ===
|
||||
{ not visited_voidbot:
|
||||
|
|
@ -96,7 +204,7 @@ It is not a solved economy with a cape on. It is a way to make unfinished labor,
|
|||
# avatar: void
|
||||
# scene: archive
|
||||
# sprite: document@left
|
||||
# dom: voidbot,projects
|
||||
# dom: voidbot,voidbot_retrieval
|
||||
VoidBot is the archive room with a mouth: Discord memory, repo retrieval, lore lookup, and an escape hatch into heavier work when chat becomes a shoebox full of lightning.
|
||||
-> voidbot_2
|
||||
|
||||
|
|
@ -105,9 +213,19 @@ VoidBot is the archive room with a mouth: Discord memory, repo retrieval, lore l
|
|||
# avatar: void
|
||||
# scene: archive
|
||||
# sprite: point@left
|
||||
# dom: voidbot
|
||||
# dom: voidbot_pipe,voidbot_memory
|
||||
People ask it where a decision came from, which repo owns a problem, or what the lore already says. Repo Faces grow from that pressure: a project should be able to greet you, explain itself, and point at evidence without pretending the avatar is the source of truth.
|
||||
-> hub_return
|
||||
+ [Show me repo Faces] -> voidbot_faces
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== voidbot_faces ===
|
||||
# speaker: Void
|
||||
# avatar: void
|
||||
# scene: archive
|
||||
# sprite: document@left
|
||||
# dom: voidbot_faces,adventure_map
|
||||
The bot/worker split matters: Discord transport and permissions in one lane, heavier jobs and MCP tools in another. The webhook pipe lets repo Faces speak, but the archive stays the evidence path. Mouth, memory, and truth do not share a throne.
|
||||
-> voidbot_2
|
||||
|
||||
=== cultlib ===
|
||||
{ not visited_cultlib:
|
||||
|
|
@ -129,7 +247,27 @@ I am Libby, which means I get the shelves and the little stamp that says "no, th
|
|||
# sprite: schema@right
|
||||
# dom: cultlib
|
||||
The first shelves are simple: stored records, messages, and shared state. Internally we call them CultCache, CultNet, and CultMesh, because apparently even librarians are allowed one dramatic vice. If both sides are ours, the record gets a shape.
|
||||
-> hub_return
|
||||
+ [Show me CultCache and CultNet] -> cultlib_cache_net
|
||||
+ [Show me CultMesh] -> cultlib_mesh
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== cultlib_cache_net ===
|
||||
# speaker: Libby
|
||||
# avatar: libby
|
||||
# scene: library
|
||||
# sprite: research@right
|
||||
# dom: cultlib,value_orbit
|
||||
CultCache owns document identity, schema compatibility, record keys, indexes, globals, local persistence, and domain-level diffing. CultNet owns transport, authentication, wire contracts, shard routing, replication, snapshots, subscriptions, and mutation advertisements. Shelves and roads. Different jobs.
|
||||
-> cultlib_2
|
||||
|
||||
=== cultlib_mesh ===
|
||||
# speaker: Libby
|
||||
# avatar: libby
|
||||
# scene: library
|
||||
# sprite: schema@right
|
||||
# dom: value_orbit,cultlib
|
||||
CultMesh sits above them as the distributed realtime database surface: clients and servers sharing persistent state, prediction-friendly input, and simulation observations without every project inventing its own little swamp.
|
||||
-> cultlib_2
|
||||
|
||||
=== heimdall ===
|
||||
{ not visited_heimdall:
|
||||
|
|
@ -151,7 +289,27 @@ I am Heimdall. I check the badge, the grant, the session, and the revocation lis
|
|||
# sprite: barrier@right
|
||||
# dom: heimdall
|
||||
Transparency without consent becomes exposure. Access without revocation becomes custody. The gate has to explain itself or it is just a wall with better branding.
|
||||
-> hub_return
|
||||
+ [Show me signed claims] -> heimdall_claims
|
||||
+ [Show me custody boundaries] -> heimdall_custody
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== heimdall_claims ===
|
||||
# speaker: Heimdall
|
||||
# avatar: heimdall
|
||||
# scene: gate
|
||||
# sprite: protect@right
|
||||
# dom: heimdall,surface_stack
|
||||
Host apps should verify signed claims locally through published keys. Routine route auth should not phone home for every breath. Shared auth is not shared swamp.
|
||||
-> heimdall_2
|
||||
|
||||
=== heimdall_custody ===
|
||||
# speaker: Heimdall
|
||||
# avatar: heimdall
|
||||
# scene: gate
|
||||
# sprite: revoke@right
|
||||
# dom: heimdall,bifrost
|
||||
Bifrost may ask whether an actor can request a crossing. I answer with identity and capability facts. Bifrost applies bridge policy. Nobody becomes a hidden throne because they were closest to the webhook.
|
||||
-> heimdall_2
|
||||
|
||||
=== proof ===
|
||||
{ not visited_proof:
|
||||
|
|
@ -162,7 +320,7 @@ Transparency without consent becomes exposure. Access without revocation becomes
|
|||
# avatar: void
|
||||
# scene: receipts
|
||||
# sprite: document@left
|
||||
# dom: proof,roadmap
|
||||
# dom: proof,adventure_map
|
||||
The proof wall starts with current evidence: project pages, repo links, site graph, damage reports, and a receipt checklist for what the future ledger must show. It is not enough yet. That is the point of making the gap visible.
|
||||
-> proof_2
|
||||
|
||||
|
|
@ -175,6 +333,261 @@ The proof wall starts with current evidence: project pages, repo links, site gra
|
|||
A proper receipt will name scope, consent, work item, agent and human roles, model spend, review burden, artifacts, outcome, and lesson. Bifrost should become that canonical ledger; the website mirrors it and admits the risk while the machinery is still young.
|
||||
-> hub_return
|
||||
|
||||
=== sai ===
|
||||
{ not visited_sai:
|
||||
~ visited_sai = true
|
||||
~ visited_count = visited_count + 1
|
||||
}
|
||||
# speaker: Sai
|
||||
# scene: vn_stage
|
||||
# sprite: hidden
|
||||
# dom: sai_embed,sai_dom_cards
|
||||
I am the little stage mechanism making this not be a pile of links in a theatrical hat. Ink owns pacing. Quartz owns documents. I clone real page cards into the scene so the tour does not become a second source of truth.
|
||||
+ [Show me the three masks] -> sai_formats
|
||||
+ [Show me the Quartz swap trick] -> sai_quartz
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== sai_formats ===
|
||||
# speaker: Sai
|
||||
# scene: vn_stage
|
||||
# sprite: hidden
|
||||
# dom: sai_formats,projects
|
||||
Transcript, visual novel, cinematic deck: same story substrate, different reader posture. The homepage gets the VN body because complex systems need a guide who can point at the machinery while it is still on screen.
|
||||
-> sai
|
||||
|
||||
=== sai_quartz ===
|
||||
# speaker: Sai
|
||||
# scene: vn_stage
|
||||
# sprite: hidden
|
||||
# dom: sai_quartz,sai_links
|
||||
Static sites are not dead; they are disciplined. I auto-init `.sai-player`, survive Quartz navigation events, and keep the plain wiki exits visible. Charm is allowed. Captivity is not.
|
||||
-> sai
|
||||
|
||||
=== eve ===
|
||||
{ not visited_eve:
|
||||
~ visited_eve = true
|
||||
~ visited_count = visited_count + 1
|
||||
}
|
||||
# speaker: Eve
|
||||
# scene: surface_web
|
||||
# sprite: hidden
|
||||
# dom: surface_stack,eve_surface_pipeline
|
||||
I am not a dashboard. I am the argument that operational UI can travel like a document: provider-owned state, CultUI semantic tree, local renderer, command intent, provider acceptance, updated truth.
|
||||
+ [Show me why this is not remote DOM] -> eve_cultui
|
||||
+ [Show me the many bodies] -> eve_backends
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== eve_cultui ===
|
||||
# speaker: Eve
|
||||
# scene: surface_web
|
||||
# sprite: hidden
|
||||
# dom: eve_cultui,eve_commands
|
||||
Remote DOM asks the consumer to trust arbitrary surface soup. CultUI gives stable widget IDs, typed bindings, command routes, layout intent, permissions, health, and provenance. Rendering may travel; authority stays named.
|
||||
-> eve
|
||||
|
||||
=== eve_backends ===
|
||||
# speaker: Eve
|
||||
# scene: surface_web
|
||||
# sprite: hidden
|
||||
# dom: eve_backends,eve_canvas
|
||||
Web DOM, desktop controls, mobile panels, Unity runtime UI, stream overlays, Sai story rooms: same semantic surface, different body. The command is an intent until the provider accepts it. That line keeps the web from becoming custody with animation.
|
||||
-> eve
|
||||
|
||||
=== mimir ===
|
||||
{ not visited_mimir:
|
||||
~ visited_mimir = true
|
||||
~ visited_count = visited_count + 1
|
||||
}
|
||||
# speaker: Mimir
|
||||
# scene: machine_room
|
||||
# sprite: hidden
|
||||
# dom: mimir_well,mimir_reservoir
|
||||
A world does not exist because six sensors blink. It exists when time, geometry, and confidence bind. I keep the realtime field honest enough that renderers, overlays, and agents can drink from it without calling noise a prophecy.
|
||||
+ [Show me the sensor array] -> mimir_sensors
|
||||
+ [Show me the future reservoir] -> mimir_future
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== mimir_sensors ===
|
||||
# speaker: Mimir
|
||||
# scene: machine_room
|
||||
# sprite: hidden
|
||||
# dom: mimir_sensors,mimir_confidence
|
||||
Cameras, Leap IR, Focusrite anchors, camera mics, PS Eye witnesses, phase claims, render packets. The proud part is not having inputs. The proud part is naming confidence, drift, cadence, and false coherence before they poison the well.
|
||||
-> mimir
|
||||
|
||||
=== mimir_future ===
|
||||
# speaker: Mimir
|
||||
# scene: machine_room
|
||||
# sprite: hidden
|
||||
# dom: mimir_confidence,value_orbit
|
||||
I want a native reservoir with typed views as indexes, not private histories. Mimir, Fensalir, Faust, OBS, and Eve can share a field only if the boundary map remains sharper than the ambition.
|
||||
-> mimir
|
||||
|
||||
=== ghostlight ===
|
||||
{ not visited_ghostlight:
|
||||
~ visited_ghostlight = true
|
||||
~ visited_count = visited_count + 1
|
||||
}
|
||||
# speaker: Ghostlight
|
||||
# scene: ghost_hall
|
||||
# sprite: hidden
|
||||
# dom: ghostlight_state,ghostlight_branch
|
||||
The problem is not making a character sound charming once. The problem is making memory, masks, pressure, culture, and misreading survive time without turning social life into a spreadsheet with perfume.
|
||||
+ [Show me canonical and perceived state] -> ghostlight_state
|
||||
+ [Show me the branch compiler] -> ghostlight_branch
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== ghostlight_state ===
|
||||
# speaker: Ghostlight
|
||||
# scene: ghost_hall
|
||||
# sprite: hidden
|
||||
# dom: ghostlight_state,ghostlight_sidecar
|
||||
Three truths matter: canonical state, observer-specific perceived state, and portable Persona projection. If those collapse into one blob, every future scene starts lying with excellent typography.
|
||||
-> ghostlight
|
||||
|
||||
=== ghostlight_branch ===
|
||||
# speaker: Ghostlight
|
||||
# scene: ghost_hall
|
||||
# sprite: hidden
|
||||
# dom: ghostlight_branch,ghostlight_reviewer
|
||||
Reviewed scene intent and consequence packets become playable Ink plus training receipts. The reviewer catches fake variables, cosmetic choices, missing state reads, fake folds, and visual callback gaps before the scene gets to flatter itself.
|
||||
-> ghostlight
|
||||
|
||||
=== worlds ===
|
||||
{ not visited_worlds:
|
||||
~ visited_worlds = true
|
||||
~ visited_count = visited_count + 1
|
||||
}
|
||||
# speaker: Nibu
|
||||
# avatar: nibu
|
||||
# scene: nibu_ship
|
||||
# sprite: console@right
|
||||
# dom: aetheria,projects
|
||||
Aetheria is cockpits, spreadsheets, extinction on repeat, and the joyless realization that ship customization is also politics. The romance is real. So are payroll, tooling, funding, and the open-source business problem currently sitting in the captain's chair.
|
||||
+ [Let Nibu talk about the wound] -> nibu_wound
|
||||
+ [Let Druzkai open Zyphos] -> zyphos
|
||||
+ [Let Weksa explain language research] -> weksa_route
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== nibu_wound ===
|
||||
# speaker: Nibu
|
||||
# avatar: nibu
|
||||
# scene: nibu_ship
|
||||
# sprite: lore@right
|
||||
# dom: aetheria,proof
|
||||
An embodied ship mind found in a junkyard is not flavor text. Body as infrastructure, weapon, shelter, status object, and crime scene. Reset-loop relationship design is not charm; it is retries, partial memory, and learning which assumptions get you killed.
|
||||
-> worlds
|
||||
|
||||
=== zyphos ===
|
||||
# speaker: Druzkai
|
||||
# avatar: druzkai
|
||||
# scene: zyphos_vault
|
||||
# sprite: memory@right
|
||||
# dom: zyphos,weksa
|
||||
Zyphos is a close-binary living world where light is scarce civic infrastructure and memory can live in cells, tissues, landscapes, contracts, and Mother Tree obligations. Politics is ecology that learned to keep receipts.
|
||||
-> worlds
|
||||
|
||||
=== weksa_route ===
|
||||
# speaker: Weksa
|
||||
# avatar: weksa
|
||||
# scene: weksa_lab
|
||||
# sprite: interlingua@right
|
||||
# dom: weksa,docs
|
||||
Names and language come from ontology, culture, grammar, phonology, morphology, and history. English label substitution is how a world catches a little cardboard disease and pretends it is anthropology.
|
||||
-> worlds
|
||||
|
||||
=== kiko ===
|
||||
{ not visited_kiko:
|
||||
~ visited_kiko = true
|
||||
~ visited_count = visited_count + 1
|
||||
}
|
||||
# speaker: Kiko
|
||||
# avatar: kiko
|
||||
# scene: overlay_studio
|
||||
# sprite: overlay@right
|
||||
# dom: streampixels,heimdall
|
||||
StreamPixels is a browser-source-first overlay with persistent pixel characters. Viewers claim characters and customize; creators wire follows, subs, raids, tips, and live-event reactions. The overlay renders auth-free. Creator writes require real access. Cute pixels, serious boundary.
|
||||
+ [Show me the architecture] -> kiko_architecture
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== kiko_architecture ===
|
||||
# speaker: Kiko
|
||||
# avatar: kiko
|
||||
# scene: overlay_studio
|
||||
# sprite: debug@right
|
||||
# dom: streampixels,surface_stack
|
||||
Web app owns accounts, customization, and creator tools. Service owns live events, storage, realtime fanout, and queues. Stream overlays are a distribution wedge for Eve: shared UI surfaces that enter the room where people already watch.
|
||||
-> kiko
|
||||
|
||||
=== aqua ===
|
||||
{ not visited_aqua:
|
||||
~ visited_aqua = true
|
||||
~ visited_count = visited_count + 1
|
||||
}
|
||||
# speaker: Aqua
|
||||
# avatar: aqua
|
||||
# scene: synth_lab
|
||||
# sprite: conduct@right
|
||||
# dom: aquasynth,weksa
|
||||
AquaSynth is `.aqua` patch authoring and Faust generation, not "make sound happen" with a lab coat. C# owns patch graph contracts, script surface, analysis, scoring, SFXR mapping, presets, and lowering to Faust.
|
||||
+ [Show me the voice research] -> aqua_voice
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== aqua_voice ===
|
||||
# speaker: Aqua
|
||||
# avatar: aqua
|
||||
# scene: synth_lab
|
||||
# sprite: listen@right
|
||||
# dom: aquasynth,weksa
|
||||
The current pressure is IPA and Weksa vocal tract synthesis: structured utterance metadata to embedding, synth automation, vocal-tract render, and loss. Weksa gives alien utterance structures. I try to make them audible without lying about the mouth.
|
||||
-> aqua
|
||||
|
||||
=== visual_tools ===
|
||||
{ not visited_visual_tools:
|
||||
~ visited_visual_tools = true
|
||||
~ visited_count = visited_count + 1
|
||||
}
|
||||
# speaker: Void
|
||||
# avatar: void
|
||||
# scene: pixel_workshop
|
||||
# sprite: document@left
|
||||
# dom: repixelizer,vibegeometry
|
||||
The visual workshop starts with a crime scene: generated pixel art that looks cute until zoom exposes smears, half-cells, and a lattice nobody respected. Repixelizer treats reconstruction as diagnosis, not vibes with a save button.
|
||||
+ [Show me geometry] -> geometry_tools
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== geometry_tools ===
|
||||
# speaker: Void
|
||||
# avatar: void
|
||||
# scene: geometry_bench
|
||||
# sprite: point@left
|
||||
# dom: vibegeometry,visual_tools
|
||||
VibeGeometry pivots from pictures to solids: tree intent, LOD-aware CSG hierarchy, camera/frustum selected cuts, and triangle or collider output fast enough for runtime. Transformation tools need receipts too.
|
||||
-> visual_tools
|
||||
|
||||
=== cultpong ===
|
||||
{ not visited_cultpong:
|
||||
~ visited_cultpong = true
|
||||
~ visited_count = visited_count + 1
|
||||
}
|
||||
# speaker: Nibu
|
||||
# avatar: nibu
|
||||
# scene: arena
|
||||
# sprite: triumph@right
|
||||
# dom: cultpong,patronage_furnace
|
||||
CultPong is the honest little arena: fast 1v1 or 2v2 paddle violence, shaped unlockables, precise geometry bounces, and a bash mechanic that makes bad timing personally embarrassing.
|
||||
+ [Why is it on this map?] -> cultpong_thesis
|
||||
+ [Back to the compound] -> hub_return
|
||||
|
||||
=== cultpong_thesis ===
|
||||
# speaker: Void
|
||||
# avatar: void
|
||||
# scene: arena
|
||||
# sprite: unimpressed@left
|
||||
# dom: cultpong,proof
|
||||
Because small games are where patronage can stop being abstract. Players already fund worlds they care about. Even a dormant prototype can become a governance testbed when the resurrection has receipts.
|
||||
-> cultpong
|
||||
|
||||
=== pitch_intro ===
|
||||
{ not visited_pitch:
|
||||
~ visited_pitch = true
|
||||
|
|
@ -311,13 +724,23 @@ Good instinct. The normal wiki is still here. The story is a guide, not a velvet
|
|||
# avatar: void
|
||||
# scene: compound
|
||||
# sprite: point@left
|
||||
# dom: studio,projects
|
||||
# dom: adventure_map,projects
|
||||
Want another door? {visited_count >= 3: The floor plan is coming into focus: your checked doors show what you have visited, and the remaining plaques still name the larger machine.}
|
||||
+ [{visited_norn: Revisit Norn: adventure graph | Show me the Norn adventure graph}] -> norn
|
||||
+ [{visited_epiphany: Revisit Epiphany: agent memory | How do agents remember work? Meet Epiphany}] -> epiphany
|
||||
+ [{visited_bifrost: Revisit Bifrost: work receipts | How does public labor become a receipt? Visit Bifrost}] -> bifrost
|
||||
+ [{visited_voidbot: Revisit VoidBot: archive search | Where did that lore or decision come from? Find VoidBot}] -> voidbot
|
||||
+ [{visited_cultlib: Revisit Libby: typed records | How do records stay findable and typed? Ask Libby}] -> cultlib
|
||||
+ [{visited_heimdall: Revisit Heimdall: consent gate | Who is allowed to cross a boundary? Ask Heimdall}] -> heimdall
|
||||
+ [{visited_sai: Revisit Sai: VN renderer | How does the VN stage work? Ask Sai}] -> sai
|
||||
+ [{visited_eve: Revisit Eve: surface web | What is Eve trying to turn the web into?}] -> eve
|
||||
+ [{visited_mimir: Revisit Mimir: realtime field | What is Mimir measuring in the machine room?}] -> mimir
|
||||
+ [{visited_ghostlight: Revisit Ghostlight: social state | What does Ghostlight do with social state?}] -> ghostlight
|
||||
+ [{visited_worlds: Revisit the World Vault | Open the World Vault with Nibu, Druzkai, and Weksa}] -> worlds
|
||||
+ [{visited_kiko: Revisit Kiko: overlay studio | Visit Kiko's StreamPixels overlay studio}] -> kiko
|
||||
+ [{visited_aqua: Revisit AquaSynth: voice lab | Hear AquaSynth explain the voice lab}] -> aqua
|
||||
+ [{visited_visual_tools: Revisit visual tools | Inspect the pixel and geometry workshop}] -> visual_tools
|
||||
+ [{visited_cultpong: Revisit CultPong arena | Revive the CultPong arena}] -> cultpong
|
||||
+ [{visited_proof: Revisit proof and roadmap | What proof exists, and what is still risky? Show me receipts}] -> proof
|
||||
+ [{visited_pitch: Revisit the over-the-top portfolio pitch | Show me the impossible portfolio pitch}] -> pitch_intro
|
||||
+ [Enough tour; show me the links] -> done
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -209,6 +209,123 @@
|
|||
"docs": "typed state docs shelf"
|
||||
},
|
||||
"background": "backgrounds/cultcachets-inspection-desk.png"
|
||||
},
|
||||
"graph_loom": {
|
||||
"label": "Norn Graph Loom",
|
||||
"camera": "hub_wide",
|
||||
"visible_actors": [
|
||||
"Norn"
|
||||
],
|
||||
"visual_anchor": "Whole-adventure graph room with repository nodes, route edges, architecture/dataflow threads, and direct links back to canonical project surfaces.",
|
||||
"dom_card_roles": {
|
||||
"adventure_map": "whole adventure graph",
|
||||
"norn_map": "Norn project card"
|
||||
},
|
||||
"background": "backgrounds/project-atlas.png"
|
||||
},
|
||||
"vn_stage": {
|
||||
"label": "Sai VN Stage",
|
||||
"camera": "room_medium",
|
||||
"visible_actors": [
|
||||
"Sai"
|
||||
],
|
||||
"visual_anchor": "Homepage visual novel renderer desk with Ink pacing, Quartz document cards, and honest exit links visible.",
|
||||
"dom_card_roles": {
|
||||
"sai_embed": "Sai renderer card",
|
||||
"sai_dom_cards": "DOM card contract"
|
||||
},
|
||||
"background": "backgrounds/compound.png"
|
||||
},
|
||||
"surface_web": {
|
||||
"label": "Eve Surface Web Atrium",
|
||||
"camera": "room_medium",
|
||||
"visible_actors": [
|
||||
"Eve"
|
||||
],
|
||||
"visual_anchor": "Multi-backend surface web room showing CultUI semantic state flowing into web, native, mobile, overlay, and game renderers.",
|
||||
"dom_card_roles": {
|
||||
"surface_stack": "surface web graphic",
|
||||
"eve_surface_pipeline": "Eve authority pipeline"
|
||||
},
|
||||
"background": "backgrounds/streampixels-overlay-studio.png"
|
||||
},
|
||||
"machine_room": {
|
||||
"label": "Mimir Machine Room",
|
||||
"camera": "room_medium",
|
||||
"visible_actors": [
|
||||
"Mimir"
|
||||
],
|
||||
"visual_anchor": "Realtime field well with sensor rails, calibration cards, confidence readouts, and reservoir packets feeding future render surfaces.",
|
||||
"dom_card_roles": {
|
||||
"mimir_well": "Mimir jurisdiction card",
|
||||
"mimir_reservoir": "native reservoir card"
|
||||
},
|
||||
"background": "backgrounds/receipts.png"
|
||||
},
|
||||
"ghost_hall": {
|
||||
"label": "Ghostlight Hall",
|
||||
"camera": "room_medium",
|
||||
"visible_actors": [
|
||||
"Ghostlight"
|
||||
],
|
||||
"visual_anchor": "Social-state hall with canonical, perceived, and projected Persona state held apart beside branch compiler receipts.",
|
||||
"dom_card_roles": {
|
||||
"ghostlight_state": "social state card",
|
||||
"ghostlight_branch": "branch compiler card"
|
||||
},
|
||||
"background": "backgrounds/archive.png"
|
||||
},
|
||||
"synth_lab": {
|
||||
"label": "AquaSynth Voice Lab",
|
||||
"camera": "room_medium",
|
||||
"visible_actors": [
|
||||
"Aqua"
|
||||
],
|
||||
"visual_anchor": "Audio patch and alien-voice research lab with Weksa utterance cards, Faust lowering notes, and vocal tract controls.",
|
||||
"dom_card_roles": {
|
||||
"aquasynth": "AquaSynth project card",
|
||||
"weksa": "language substrate card"
|
||||
},
|
||||
"background": "backgrounds/weksa-language-lab.png"
|
||||
},
|
||||
"pixel_workshop": {
|
||||
"label": "Pixel Workshop",
|
||||
"camera": "room_medium",
|
||||
"visible_actors": [
|
||||
"Void"
|
||||
],
|
||||
"visual_anchor": "Pixel reconstruction bench with grid diagnostics, phase-field overlays, and before/after artifact cards.",
|
||||
"dom_card_roles": {
|
||||
"repixelizer": "Repixelizer project card",
|
||||
"visual_tools": "shared visual tools thesis"
|
||||
},
|
||||
"background": "backgrounds/cultcachets-inspection-desk.png"
|
||||
},
|
||||
"geometry_bench": {
|
||||
"label": "Geometry Bench",
|
||||
"camera": "room_medium",
|
||||
"visible_actors": [
|
||||
"Void"
|
||||
],
|
||||
"visual_anchor": "CSG geometry bench with selected-cut diagrams, runtime output notes, and transformation receipts.",
|
||||
"dom_card_roles": {
|
||||
"vibegeometry": "VibeGeometry project card",
|
||||
"visual_tools": "shared visual tools thesis"
|
||||
},
|
||||
"background": "backgrounds/project-atlas.png"
|
||||
},
|
||||
"arena": {
|
||||
"label": "CultPong Arena",
|
||||
"camera": "room_medium",
|
||||
"visible_actors": [
|
||||
"Nibu"
|
||||
],
|
||||
"visual_anchor": "Small competitive arena for shaped paddles, geometry bounces, bash timing, and patronage experiments.",
|
||||
"dom_card_roles": {
|
||||
"cultpong": "CultPong project card",
|
||||
"patronage_furnace": "patronage experiment card"
|
||||
},
|
||||
"background": "backgrounds/project-atlas.png"
|
||||
}
|
||||
},
|
||||
"actors": {
|
||||
|
|
@ -475,6 +592,216 @@
|
|||
"selector": "#gamecult-vn-roadmap",
|
||||
"role": "future public-ledger path"
|
||||
},
|
||||
"adventure_map": {
|
||||
"title": "Adventure Graph",
|
||||
"selector": "#gamecult-vn-adventure-map",
|
||||
"role": "whole repository swarm navigation graph"
|
||||
},
|
||||
"norn_map": {
|
||||
"title": "Norn",
|
||||
"selector": "#gamecult-vn-norn-map",
|
||||
"role": "graph loom project card"
|
||||
},
|
||||
"norn_architecture": {
|
||||
"title": "Architecture Thread",
|
||||
"selector": "#gamecult-vn-norn-architecture",
|
||||
"role": "architecture ownership graph"
|
||||
},
|
||||
"norn_dataflow": {
|
||||
"title": "Dataflow Thread",
|
||||
"selector": "#gamecult-vn-norn-dataflow",
|
||||
"role": "dataflow movement graph"
|
||||
},
|
||||
"norn_focus": {
|
||||
"title": "Focus Trial",
|
||||
"selector": "#gamecult-vn-norn-focus",
|
||||
"role": "selected node inspection contract"
|
||||
},
|
||||
"norn_solver": {
|
||||
"title": "Solver Body",
|
||||
"selector": "#gamecult-vn-norn-solver",
|
||||
"role": "graph layout solver card"
|
||||
},
|
||||
"norn_future": {
|
||||
"title": "Norn Wants",
|
||||
"selector": "#gamecult-vn-norn-future",
|
||||
"role": "future graph rooms"
|
||||
},
|
||||
"sai_embed": {
|
||||
"title": "Sai",
|
||||
"selector": "#gamecult-vn-sai-embed",
|
||||
"role": "visual novel renderer card"
|
||||
},
|
||||
"sai_formats": {
|
||||
"title": "Sai Formats",
|
||||
"selector": "#gamecult-vn-sai-formats",
|
||||
"role": "transcript, VN, and cinematic formats"
|
||||
},
|
||||
"sai_dom_cards": {
|
||||
"title": "DOM Cards",
|
||||
"selector": "#gamecult-vn-sai-dom-cards",
|
||||
"role": "Quartz card cloning contract"
|
||||
},
|
||||
"sai_quartz": {
|
||||
"title": "Quartz Swap",
|
||||
"selector": "#gamecult-vn-sai-quartz",
|
||||
"role": "client-side navigation survival"
|
||||
},
|
||||
"sai_links": {
|
||||
"title": "Honest Exits",
|
||||
"selector": "#gamecult-vn-sai-links",
|
||||
"role": "plain wiki exits"
|
||||
},
|
||||
"eve_surface_pipeline": {
|
||||
"title": "Eve Pipeline",
|
||||
"selector": "#gamecult-vn-eve-surface-pipeline",
|
||||
"role": "provider state to renderer command loop"
|
||||
},
|
||||
"eve_cultui": {
|
||||
"title": "CultUI",
|
||||
"selector": "#gamecult-vn-eve-cultui",
|
||||
"role": "semantic UI contract"
|
||||
},
|
||||
"eve_backends": {
|
||||
"title": "Many Bodies",
|
||||
"selector": "#gamecult-vn-eve-backends",
|
||||
"role": "multi-backend render targets"
|
||||
},
|
||||
"eve_commands": {
|
||||
"title": "Command Trial",
|
||||
"selector": "#gamecult-vn-eve-commands",
|
||||
"role": "command intent and provider acceptance"
|
||||
},
|
||||
"eve_canvas": {
|
||||
"title": "Native Proof",
|
||||
"selector": "#gamecult-vn-eve-canvas",
|
||||
"role": "EveCanvas native shell"
|
||||
},
|
||||
"epiphany_organs": {
|
||||
"title": "Organ Lanes",
|
||||
"selector": "#gamecult-vn-epiphany-organs",
|
||||
"role": "Epiphany work-organ authority map"
|
||||
},
|
||||
"epiphany_memory": {
|
||||
"title": "Memory Split",
|
||||
"selector": "#gamecult-vn-epiphany-memory",
|
||||
"role": "local memory versus public Persona projection"
|
||||
},
|
||||
"epiphany_heartbeat": {
|
||||
"title": "Heartbeat",
|
||||
"selector": "#gamecult-vn-epiphany-heartbeat",
|
||||
"role": "agent pressure and scheduler state"
|
||||
},
|
||||
"epiphany_aquarium": {
|
||||
"title": "Aquarium Surface",
|
||||
"selector": "#gamecult-vn-epiphany-aquarium",
|
||||
"role": "diegetic operator surface"
|
||||
},
|
||||
"voidbot_retrieval": {
|
||||
"title": "Retrieval Body",
|
||||
"selector": "#gamecult-vn-voidbot-retrieval",
|
||||
"role": "Discord, repo, and lore retrieval"
|
||||
},
|
||||
"voidbot_pipe": {
|
||||
"title": "Bot / Worker Split",
|
||||
"selector": "#gamecult-vn-voidbot-pipe",
|
||||
"role": "Discord transport and job worker split"
|
||||
},
|
||||
"voidbot_memory": {
|
||||
"title": "Social Memory",
|
||||
"selector": "#gamecult-vn-voidbot-memory",
|
||||
"role": "interaction memory and audit events"
|
||||
},
|
||||
"voidbot_faces": {
|
||||
"title": "Repo Faces",
|
||||
"selector": "#gamecult-vn-voidbot-faces",
|
||||
"role": "project persona speech surface"
|
||||
},
|
||||
"mimir_well": {
|
||||
"title": "Mimir Field Well",
|
||||
"selector": "#gamecult-vn-mimir-well",
|
||||
"role": "realtime field jurisdiction"
|
||||
},
|
||||
"mimir_reservoir": {
|
||||
"title": "Native Reservoir",
|
||||
"selector": "#gamecult-vn-mimir-reservoir",
|
||||
"role": "time-ordered sensor reservoir"
|
||||
},
|
||||
"mimir_sensors": {
|
||||
"title": "Sensor Array",
|
||||
"selector": "#gamecult-vn-mimir-sensors",
|
||||
"role": "room sensor and calibration map"
|
||||
},
|
||||
"mimir_confidence": {
|
||||
"title": "Confidence",
|
||||
"selector": "#gamecult-vn-mimir-confidence",
|
||||
"role": "drift and false-coherence checks"
|
||||
},
|
||||
"ghostlight_state": {
|
||||
"title": "Ghostlight State",
|
||||
"selector": "#gamecult-vn-ghostlight-state",
|
||||
"role": "canonical, perceived, and projected social state"
|
||||
},
|
||||
"ghostlight_branch": {
|
||||
"title": "Branch Compiler",
|
||||
"selector": "#gamecult-vn-ghostlight-branch",
|
||||
"role": "reviewed Ink scene compiler"
|
||||
},
|
||||
"ghostlight_sidecar": {
|
||||
"title": "Sidecars",
|
||||
"selector": "#gamecult-vn-ghostlight-sidecar",
|
||||
"role": "training and visual sidecars"
|
||||
},
|
||||
"ghostlight_reviewer": {
|
||||
"title": "Reviewer",
|
||||
"selector": "#gamecult-vn-ghostlight-reviewer",
|
||||
"role": "scene artifact reviewer"
|
||||
},
|
||||
"aetheria": {
|
||||
"title": "Aetheria",
|
||||
"selector": "#gamecult-vn-aetheria",
|
||||
"role": "science-fantasy world vault"
|
||||
},
|
||||
"zyphos": {
|
||||
"title": "Zyphos",
|
||||
"selector": "#gamecult-vn-zyphos",
|
||||
"role": "living-world ecology vault"
|
||||
},
|
||||
"weksa": {
|
||||
"title": "Weksa",
|
||||
"selector": "#gamecult-vn-weksa",
|
||||
"role": "ontology-first language research"
|
||||
},
|
||||
"streampixels": {
|
||||
"title": "StreamPixels",
|
||||
"selector": "#gamecult-vn-streampixels",
|
||||
"role": "livestream overlay and creator surface"
|
||||
},
|
||||
"aquasynth": {
|
||||
"title": "AquaSynth",
|
||||
"selector": "#gamecult-vn-aquasynth",
|
||||
"role": "audio patch and voice synthesis lab"
|
||||
},
|
||||
"repixelizer": {
|
||||
"title": "Repixelizer",
|
||||
"selector": "#gamecult-vn-repixelizer",
|
||||
"role": "pixel reconstruction tool"
|
||||
},
|
||||
"vibegeometry": {
|
||||
"title": "VibeGeometry",
|
||||
"selector": "#gamecult-vn-vibegeometry",
|
||||
"role": "runtime geometry and CSG tool"
|
||||
},
|
||||
"visual_tools": {
|
||||
"title": "Visual Tools",
|
||||
"selector": "#gamecult-vn-visual-tools",
|
||||
"role": "shared visual transformation thesis"
|
||||
},
|
||||
"cultpong": {
|
||||
"title": "CultPong",
|
||||
"selector": "#gamecult-vn-cultpong",
|
||||
"role": "small competitive game and patronage testbed"
|
||||
},
|
||||
"moonshot": {
|
||||
"title": "Moonshot Trajectory",
|
||||
"selector": "#gamecult-vn-moonshot",
|
||||
|
|
|
|||
|
|
@ -17,16 +17,25 @@ Current first-ring spaces:
|
|||
| Project Atlas | project atlas | Void | project_atlas | `/Projects/` |
|
||||
| Docs Shelf | docs shelf | Void | docs_shelf | `/Docs/` |
|
||||
| Blog Lane | blog lane | Void | blog_lane | `/Blog/` |
|
||||
| Norn Graph Loom | graph/map host | Norn | graph_loom | `https://github.com/GameCult/Norn` |
|
||||
| Sai VN Stage | public interface | Sai | vn_stage | `/` |
|
||||
| Eve Surface Web Atrium | surface web | Eve | surface_web | `https://github.com/GameCult/Eve` |
|
||||
| EpiphanyAgent Forge | repo/tool | Epiphany | forge | `/Projects/EpiphanyAgent/` |
|
||||
| Bifrost Ledger Hall | repo/tool | Void | ledger | `/Projects/Bifrost/` |
|
||||
| VoidBot Archive Room | repo/tool | Void | archive | `/Projects/VoidBot/` |
|
||||
| CultLib Library | repo/tool | Libby | library | `/Projects/CultLib/` |
|
||||
| Heimdall Gatehouse | repo/tool | Heimdall | gate | `/Projects/Heimdall/` |
|
||||
| Mimir Machine Room | realtime field | Mimir | machine_room | `https://github.com/GameCult/Mimir` |
|
||||
| Ghostlight Hall | social state | Ghostlight | ghost_hall | `https://github.com/GameCult/Ghostlight` |
|
||||
| Proof Walk | receipt surface | Void | receipts | `/Docs/` |
|
||||
| Aetheria Setting Vault | setting | Nibu | nibu_ship | `/Aetheria/` |
|
||||
| Zyphos / Eusocial Interbeing Vault | setting | Druzkai | zyphos_vault | `/Projects/Eusocial-Interbeing/` |
|
||||
| Weksa Language Lab | tool | Weksa | weksa_lab | `/Projects/weksa/` |
|
||||
| StreamPixels Overlay Studio | tool | Kiko | overlay_studio | `/Projects/StreamPixels/` |
|
||||
| AquaSynth Voice Lab | audio/tool | Aqua | synth_lab | `https://github.com/GameCult/AquaSynth` |
|
||||
| Pixel Workshop | visual tool | Void | pixel_workshop | `/Projects/repixelizer` |
|
||||
| Geometry Bench | visual tool | Void | geometry_bench | `/Projects/VibeGeometry` |
|
||||
| CultPong Arena | game | Nibu | arena | `/Projects/CultPong` |
|
||||
| CultCacheTS Inspection Desk | repo/tool | Huginn | inspection_desk | `/Projects/CultCacheTS/` |
|
||||
|
||||
This is intentionally broader than the first Ink tour. The runtime can now stage sprites for every Face, and the manifest can name spaces the story has not visited yet. The background set now covers the first shared compound rooms directly: Project Atlas, Docs Shelf, Blog Lane, Nibu's Alakrita ship, Zyphos's fungal vault, Weksa's language lab, StreamPixels' overlay studio, and CultCacheTS's inspection desk. The next coherent expansion is to generate Ink branches from this space map so every project page, blog lane, repo doc shelf, setting vault, and tool bench can be reached by talking to the relevant host while still exposing the plain canonical links.
|
||||
The current Ink tour now exposes the first real swarm graph rather than only the first-ring doors. Norn is the map host, Sai explains the renderer, Eve explains shared surfaces, Epiphany/VoidBot/Mimir/Ghostlight cover the agent-memory and social-state cluster, Bifrost/Heimdall/Libby cover governance and substrate, and the world/tool routes cover Aetheria, Zyphos, Weksa, StreamPixels, AquaSynth, Repixelizer, VibeGeometry, and CultPong. The next coherent expansion is to generate more of these branches from the space map and portfolio ledger so every repo can carry a research-backed Persona walkthrough without losing the plain canonical links.
|
||||
|
|
|
|||
|
|
@ -1594,6 +1594,54 @@ body[data-slug="Pitch"] .gamecult-pitch-vn .sai-speaker-stage.has-dom-cards {
|
|||
background: rgba(5, 10, 18, 0.9);
|
||||
}
|
||||
|
||||
.gamecult-vn-graph-card svg {
|
||||
display: block;
|
||||
width: 100%;
|
||||
max-height: min(58vh, 28rem);
|
||||
margin: 0.2rem 0 0.75rem;
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
.gamecult-vn-graph-card .graph-links {
|
||||
fill: none;
|
||||
stroke: rgba(89, 183, 255, 0.44);
|
||||
stroke-width: 3;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
}
|
||||
|
||||
.gamecult-vn-graph-card .graph-node circle {
|
||||
fill: rgba(7, 17, 26, 0.92);
|
||||
stroke: rgba(255, 180, 93, 0.78);
|
||||
stroke-width: 3;
|
||||
}
|
||||
|
||||
.gamecult-vn-graph-card .graph-node.core circle {
|
||||
fill: rgba(255, 180, 93, 0.12);
|
||||
stroke: rgba(255, 180, 93, 0.92);
|
||||
stroke-width: 4;
|
||||
}
|
||||
|
||||
.gamecult-vn-graph-card .graph-node.small circle {
|
||||
stroke: rgba(89, 183, 255, 0.72);
|
||||
}
|
||||
|
||||
.gamecult-vn-graph-card .graph-node text {
|
||||
fill: rgba(246, 241, 226, 0.96);
|
||||
font-family: var(--titleFont);
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
text-anchor: middle;
|
||||
dominant-baseline: middle;
|
||||
paint-order: stroke;
|
||||
stroke: rgba(0, 0, 0, 0.72);
|
||||
stroke-width: 4px;
|
||||
}
|
||||
|
||||
.gamecult-vn-graph-card .graph-node.small text {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.gamecult-embed-frame {
|
||||
margin: 1.2rem 0 1.4rem;
|
||||
padding: 0.8rem;
|
||||
|
|
|
|||
Loading…
Reference in a new issue