The Apps Directory (Collection Page)
The Apps page (linked from the explorer header) is a browsable directory of runnable ChainRender apps. It exists because some apps \u2014 especially rich-media (games, generative art) \u2014 present far better full-page than as a small component-catalog card, where only their on-chain floor renders.
Two sections
Deployed apps \u2014 read directly from SceneComponentRegistry on-chain. Every rich-media app you deploy
registers its scene there, so the page enumerates scenes (count / idAt / bindingOf), decodes each binding
(libHash, seed, sketchId) into a full-page viewer URL, and shows it as a card. Self-updating and fully
on-chain \u2014 no JSON, no manual step; deploy an app and it appears. Apps whose library is not on-chain (older
pre-fix deploys with a zero libHash) are skipped, so only genuinely on-chain apps are listed.
Tools \u2014 a small curated list (webapps/apps-collection.json) of first-party ChainRender utilities: theme tools,
ID Sigil, on-chain Cartography, SDF showcases, games. These are ChainRender's own showcases, honestly distinct from
user-deployed apps. (This index is off-chain metadata \u2014 a table of contents; the tools themselves are on-chain.)
Why full-page
A component catalog card renders an app's on-chain floor (the poster). For a rich-media app, the floor is what non-GPU clients see, but the interactive experience (the p5/three sketch) wants the whole viewport. The Apps page links each app to its full-page viewer, which loads the sketch from SourceStore + the library from DependencyRegistry and runs it \u2014 the complete experience, not just the floor.
Sharing a deployed app
Every deploy produces a complete, self-contained viewer URL
(chainrender-viewer.html?type=richmedia&kind=...&sketch=0x...&lib=0x...). That URL is shareable anywhere \u2014 anyone
who opens it gets the full app, loaded from chain. The Apps page reconstructs these URLs from the on-chain scene
registry automatically.
The cards use on-chain icons
The Apps page dogfoods the on-chain icon library: each card's icon is fetched from the on-chain icons library and
rendered from chain \u2014 the collection of on-chain apps, displayed with on-chain icons.
Honest boundary
The on-chain scene binding stores libHash, seed, and sketchId \u2014 enough to run the app \u2014 but not a title, so
cards show a readable id-based name ("3D Scene a1b2c3") rather than a human title. Richer names await a title field
in the scene binding (a planned additive enhancement).
Related
- Rich Media — the rich-media apps the directory lists full-page.
- Composition — how deployed apps are assembled.
- On-Chain Icons — the directory's cards render on-chain icons.
- Content Addressing — the hash identity the directory reads.