The Runek showcase world — a walkable, editable, procedurally generated island: a house on a terraformed hill, a lake, a shore, trees grown from L-systems, and furniture seeded into place. Built entirely from Runek components; no models, no textures, no CDN.
Helicon is a world-as-repo: the whole scene is one JSON file. Fork it, edit it, open a PR — the world grows by merge.
just install
just dev # → http://localhost:5173WASD / arrows move · Shift run · Space jump · drag to look. The ✎ Edit toggle switches to an orbit-camera editor: click a component to select it, move/rotate with gizmos, add/duplicate/delete nodes, undo with ⌘Z, and export the world back to JSON.
The entire scene lives in public/helicon.world.json —
a list of { type, props } nodes plus world-level identity (meta, source),
palette, fog, and a pinned time of day. Every component is a pure,
deterministic function of its props (seed included), so the same file renders
the same world on every machine.
Every component, its props, and its defaults are documented in the Runek docs.
Helicon consumes Runek the way any app does: the runtime is the published
@runek/core npm dependency, and
component source is copied under src/runek/ via the
@runek/cli CLI and owned by this
repo (shadcn-style). To refresh the components:
just vendor # pulls from the live registry (runek.nullorder.org/r)
just vendor-local # pulls from a local ../runek checkout
just vendor-local /path/to/runekThe copied components import @runek/core from npm, so nothing is rewritten on
the way in (see runek.config.json).
MIT © nullorder