map-perf

Solid

Measure topology-map drag, pan, and zoom with a deterministic harness that proves it grabbed a real node instead of silently panning the background.

AI & Automation 103 stars 15 forks Updated today MIT

Install

View on GitHub

Quality Score: 85/100

Stars 20%
67
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
80
License 10%
100
Description 5%
100

Skill Content

# Map performance Run when `pnpm design:route` includes `map-perf`. It proves the changed topology gesture's work cost; add the separate `motion` change fact when temporal output also changed. This skill exists because a 2026-07-31 node-drag report was dismissed six times while the measurement was actually panning the background. The two gestures look the same from outside. ## Why grabbing a node is difficult | | Node drag | Background pan | |---|---|---| | Cursor | `grabbing` | `grabbing` | | Visible motion | one node | whole map | | Physics | reheats through `heatRef` | remains idle | | Measured cost at 3,000 nodes | about 140 ms/frame | about 2 ms/frame | A pointer cursor is not proof of a grab. If `sim.hasNode()` is false, capture fails silently and becomes a pan. ## Instrumentation: `?e2e=1` The query enables a test-only `window.__atlasMap` surface: ```js window.__atlasMap.nodes() // [{ id, kind, label, x, y, draggable, hidden, radius, agentFocus }] window.__atlasMap.interaction() // { kind: "node" | "pan" | "idle", nodeId } // Call during the gesture. A "pan" result invalidates the sample. window.__atlasMap.backing() // { width, height, dpr } ``` It also exposes `edges()`, `edgeAt()`, `camera()`, `selection()`, and `chips()`. Implementation: the final effect in `src/widgets/ontology-map/ui/use-topology-loop.ts`. ## Procedure ```bash pnpm build && npx serve out -l 4173 node scripts/perf-node-drag.mjs ``` Discard output unless the harness explicitly reports ...

Details

Author
wlsdks
Repository
wlsdks/ontology-atlas
Created
4 months ago
Last Updated
today
Language
TypeScript
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category