Skip to content

v2.2.1 — Performance: layout.py renders the finished file

Choose a tag to compare

@csthink csthink released this 14 Jun 03:14
· 23 commits to main since this release

A performance patch — same inputs, same self-contained-HTML output contract; the generator just does more of the work, so diagrams come out faster.

Changed

  • layout.py --render out.html writes the complete, ready-to-ship HTML (geometry + style layer + the model's copy) instead of the model hand-transcribing 35 rects and 38 path ds into a template. The semantic graph JSON now carries the copy (subtitle, a 3-card summary, optional footer); the model authors semantics + copy and runs the script, keeping final say by editing the JSON (re-render) or the emitted file. --emit-svg kept as an alias; the hand-transcribe path remains the no-Python fallback. The temp graph.json is written outside the output folder, so the user's folder holds only the .html.
  • Routing: shared per-source trunk lanes — a node fanning out to several off-column targets shares one margin trunk with horizontal taps instead of N lanes marching into empty space (bianque: 12 left lanes → 3, left band −64%).
  • Journey dots speed up on long edges — per-hop dot duration capped at 4s, so dots on long cross-diagram edges no longer crawl (bianque slowest ~11.6s → ≤4s).

Performance

  • Generation output the model must write drops ~84% aggregate across the 11-case regression and ~79.5% on the bianque-class benchmark. Regression green: run_checks 11/11, check_diagram 0 violations (12 graphs), check_fidelity PASS (7 mermaid + bianque). Local-test bianque (35 nodes / 38 edges) generated in ~3 min — inside the 8-min perf-gate, down from ~5 min.

Install / update (Claude Code): npx skills add csthink/dashmotion -a claude-code (re-run to update in place). claude.ai: download dashmotion.zip below → Settings → Skills → upload.