0.11.1 — `npm create @fundamental-engine` works again
From 0.9.3 to 0.11.0 the scaffolder exited without creating anything (npm runs a bin through a symlink the entry check never matched). It now scaffolds a vanilla, React, or web-component starter on the current engine — and a new release gate scaffolds, installs and builds all three from the packed tarballs before anything is published.
Learn more → 0.11.1 — sturdier on real pages
Elements removed by a page swap no longer linger as invisible bodies; destroy() from inside a field callback really stops the field; the mobile address bar no longer resets the swarm; the quality governor runs on the display's real frame rate (a 30 Hz screen isn't held at reduced quality); and an unchanged overlay isn't redrawn every frame.
Rust — a fourth, headless plane
An experimental f64, seeded, zero-dependency Rust crate for servers and data pipelines, where a body is a data record: 36 of the 37 forces, solve() to equilibrium, deterministic snapshot + causal replay, and a reading layer (scores, clusters, relations). Not yet published to crates.io.
Learn more → Height-aware fields — `relief`
The 37th force: a host-declared scalar channel (addField) becomes a potential the swarm descends — terrain as a cause, on JS, Swift and Kotlin.
Learn more → The reproducibility envelope is queryable
FieldHandle.guarantees states what a run promises — which paths are deterministic and what isn't — and agent read scopes (read:snapshots, read:diagnostics, a fractional agentRead budget) are enforced, not just declared.
Learn more → Native ports, kept in step
Swift and Kotlin track the JS engine — the shared cross-plane golden pins the six canonical deterministic forces within a stated tolerance, and FIELD_VERSION moves in lockstep across JS, Swift, Kotlin and Rust.
Learn more → Focus / attention substrate
Operator attention as an input, agent attention as an output: field.focus(target, { source }) deposits decaying, source-tagged focus; field.focusState() is the ranked digest an agent reads; metrics.salience rides query()/snapshot().
Learn more →