apsis-book/content
dev c812483f60 web: split the physics layer, render formulas, and fix the graph load
The graph took over three seconds to draw. The force layout ran four
hundred and twenty steps of repulsion between every pair of nodes, which
is quadratic in the node count and was doing that work through a reactive
proxy inside an effect that read the state it wrote, so it rescheduled
itself on every run. The repulsion now runs on a grid over neighbouring
cells, and the effect no longer tracks its own writes.

The physics layer covered two unrelated subjects, so it is presented as
two. Formulas are written between dollar signs and translated to MathML,
which the browser sets itself, so no script has to run. The palette is
now two sets of the same variables with a toggle between them, and below
a thousand pixels the sidebar is a drawer over the page.
2026-10-01 17:28:43 +08:00
..
concepts web: split the physics layer, render formulas, and fix the graph load 2026-10-01 17:28:43 +08:00
flows web: add a bilingual interface with Chinese as the default 2026-09-27 09:13:52 +08:00
graph web: describe the field by layer and separate it from the implementation 2026-10-01 13:57:23 +08:00
api.json web: add the apsis-web service, content, and frontend 2026-09-27 00:53:20 +08:00
api.zh.json web: fix the tool form, the search box, the toc anchors, and translate the interface 2026-09-27 10:29:10 +08:00