Allows to change the layout of the graph
The active layout type — the View flyout greys out physics under non-force layouts.
Current knob values, for seeding the View-flyout sliders.
Pause the simulation
Re-read the node-dependent force accessors and reheat.
d3-force caches per-node radius/strength when a force is initialised (i.e. when nodes are set), not on every tick — so mutating a node's radius after the sim is running has no effect until the forces are re-initialised. Re-setting the nodes does that; the reheat then lets collision/charge re-lay-out with the new sizes. Used when a custom node measures its size after the initial layout has already cooled. No-op when disabled.
Restart the simulation with a bit of heat
Restart the simulation with rendering on each animation frame.
Node spacing. Knob 4–60 → d3CollideRadiusMultiplier (scales each node's collision radius).
Motion damping. Knob 0–100 → d3VelocityDecay (÷100). Applied live each tick — no reheat.
Preferred edge length. Knob 40–260 (px) → d3LinkDistance.
Push-apart strength. Knob 0–100 → d3ManyBodyStrength.
Snap a graph-space coordinate to the grid when grid-snapping is enabled (a no-op otherwise). Public so non-simulation draggables (e.g. notes) can snap on the same grid as nodes.
Start the simulation with rendering on each animation frame.
Manually stop the simulation and cancel animation frame.
Returns a promise that resolves when the simulation stops naturally. Useful for performing actions (like fitAndCenter) after stabilization.
Apply a named preset (PHYSICS_PRESETS): sets all four knobs and reheats once.