Releases: Sidem/HexLife
Releases · Sidem/HexLife
Release list
v1.2.0
Auto-Explore now ranks with a model that was trained on this cellular automaton, instead of one
borrowed from photographs. The optional CLIP path is gone — code, worker, dependencies, settings,
and all.
Added
- A HexLife-native interest model ranks Auto-Explore, and it is the default. Statistics still do
the cheap screening and the hard kills, so a dead or saturated candidate is rejected without any
model involvement. Every survivor of the confirmation burst then gets an exact 32-frame trajectory
scored by a 21.5k-parameter model that runs frompublic/models/hexlife-interest/inside your own
browser — no third-party host, no CDN, nothing downloaded at runtime. The same pass returns a
32-value behavior descriptor that drives novelty pressure and the illumination archive. - A displayed score that means the same thing tomorrow. The model's raw preference utility has no
meaningful absolute scale, so the shipped artifact carries a calibration that maps it to its
percentile against a frozen reference corpus. The transform is monotonic, so rankings are
unchanged, but a 0.87 in one session is the same 0.87 in the next. - "Statistical only". One radio button restores the deterministic, model-free objective exactly
as it behaved before this release — same populations, same champions, same reset seeds, same banked
scores, pinned by a golden test.
Changed
- Auto-Explore is organised into tabs. Run status and Start / Pause / Stop / Stop & Keep stay
visible at all times; Setup, Objective, and Finds hold everything else. The tabs are
keyboard-navigable (arrows, Home, End), remember which one you were on, and behave the same on
mobile Discover as in the desktop panel. Owner-facing Export selected and Evaluate selected
moved into a collapsed Model Tools area under Objective. - The curated library grew from 39 to 73 rulesets. Public and personal entries now share one
source-filtered list, and duplicate personal copies of built-in rules can be removed safely. - The keyboard shortcut viewer now uses the space it is given. Resizing its desktop panel grows
the keyboard in both directions; modifier layers now distinguish Ctrl from Ctrl+Shift; search
spans keys, actions, categories, and every layer; and the categorized fallback is available from
mobile More Options.Vremains the Flat/3D Torus toggle, while recording moves toShift+V
(start/stop) andCtrl+Shift+V(pause/resume) to remove the previous duplicate binding. - Torus-aware capture and re-centering. Capture Studio now exports the active 3D projection, and
hold-Hwrap-around shifting works without losing the orbit strategy. - Ruleset relatives and family naming. Saving a ruleset now shows its nearest named relatives in
the strictest shared constraint space and can continue a family name with Roman-numeral suffixes.
Removed
- The optional CLIP perceptual objective, entirely. The embedding service and its worker, the
perceptual novelty and archive modules, the cell rasterizer, the noise-prompt contrast battery, the
CLIP model picker, the perceptual status and progress UI, theopenEndednessscoring term, the
"Maximal Novelty" preset, and the embedding-based tag suggestions are all deleted. Because that
term was always dropped-and-renormalized when absent, statistical scores are unchanged. - Text-prompt target search. It only ever worked because CLIP had a text encoder; the native
model has none, so a supervised prompt search would have been a control that could not work.
Fixed
- A run can no longer be stalled by the model. Inference has a deadline, an abort signal wired to
the run token, and a fallback to the confirmed statistical score. A failed load, a timeout, a bad
descriptor, or a mid-flight Stop all degrade to statistics instead of leaving a generation pending.
Notes for upgraders
- Nothing about worlds changed: ruleset codes,
HXW1.…world codes, share links,
<hexlife-world>attributes, and determinism are all untouched. Old share links and exported find
packs still decode; fields that only meant something to the CLIP path are ignored on import. - The old perceptual archive in local storage is discarded on first load and replaced by a
native-descriptor archive that self-invalidates when the model changes. Your gallery of finds is
not affected. - The shipped model is labelled beta, not accepted. On the project's curated sanity panel it
orders interesting-vs-boring pairs correctly 67% of the time against the statistical objective's
44%, but it has not cleared the strict corpus gates (direct owner hard-pair votes, locked test
cases, mixed-grid corpus coverage, quantization), and the manifest says so.
v1.1.0
Added
- 3D Torus view. The selected world can now be wrapped onto its actual toroidal topology and
explored with drag-to-orbit, wheel-to-dolly, continuous rotation, adjustable speed and ring
openness, and off-cell opacity from 1–100%. Vertical orbit is unbounded, so the camera can tumble
repeatedly through both poles. - A visible way to pan and to get back out of a zoom. While the selected view is zoomed in, an
on-canvas chip shows the zoom level, names the gesture (Ctrl-dragor middle-drag on desktop),
and offers Reset view. At 1× there is nothing to pan, so it stays out of the way. - "Paired start" in the Ruleset Library — one switch deciding whether loading an entry also
re-seeds the world with the starting cells its preview was made from.
Changed
- Settings are organized by task. Display, Simulation, and 3D Torus now have persistent,
keyboard-accessible tabs with grouped controls instead of one mixed scrolling list. - The app opens on structure, not static. A first-time visitor now starts zoomed to where
individual cells are legible, derived from the grid size so every grid preset opens at a
comparable apparent cell size. Returning visitors keep their own camera. - Library cards carry one load button instead of two. "Load" and "Load + IC" collapsed into a
single Load governed by the new Paired start switch; the opposite load is still available
per-entry from a saved ruleset's ⋯ menu. Roughly halves the controls in the Library tab.
Fixed
- Torus transparency remains continuous at every camera angle. A nearest-layer depth pass stops
side-on rays from accumulating multiple translucent shell intersections, while stable
camera-relative shading keeps black off-cells visibly distinct from the black canvas.
v1.0.0
First tagged release. The project has been live and evolving for some time; this marks the point at
which it gets a version you can cite, link, and file bugs against.
Added
- Nine concurrent worlds, each a hexagonal cellular automaton with its own ruleset and state —
a Rust → WebAssembly tick engine, one Web Worker per world, one instanced WebGL2 draw call each. - 128-bit rulesets as 32-character hex with deterministic two-word mnemonic names, plus
B2/S35-style notation for rules that reduce to neighbor counts and orbit notation (B2o3p/S2)
for rotationally symmetric ones. - Rule-based coloring — cells tinted by which rule set them, turning dynamics into a
visible fingerprint. - Scrub-back history, pattern copy/paste (hex-phase-aware), and a ruleset toolkit
(generate / edit / mutate / clone / breed) with undo–redo. - Auto-Explore (alpha) — evolutionary search for interesting rulesets, scored on structure,
criticality, block-entropy dynamics, transport and optional CLIP-embedding novelty, banked into a
deduplicated gallery. - Sharing — share links (
?r=), world codes (HXW1.…), portablehexlife-packexports for
the ruleset library and the Auto-Explore gallery, PNG snapshots and WebM recordings. <hexlife-world>embed — the simulation as a custom element for third-party pages.- Live Specimens on Reddit (
devvit/) — playable worlds as Reddit posts, sharing
one engine with the Explorer. - Mobile UI, guided tours and a Learning Hub, and a help panel that explains how to switch
hardware acceleration on rather than refusing with an unactionable error.
Notes
- The Wasm binary is committed, so
npm run devneeds no Rust toolchain. devvit/may import fromsrc/embed/and nowhere else insrc/;tests/devvitBoundary.test.js
enforces that boundary.