The Runek showcase world — a walkable, editable, procedurally generated coastline: a curved modernist mansion cantilevered over an ocean cliff, with a glass-ringed living rotunda, a rooftop bedroom drum, a floating pool terrace, palms, and a helipad. An arched gate opens onto a rock causeway to the mainland, and the headland's east flank fans out into a sand-spit beach with a campfire at the waterline. 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 move · arrows look · 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