You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(settings): align physics control panel with GPU force system
Settings UI now matches the live GPU-resident force system (PRD-018):
- Correct stale default annotations to canonical values (defaults.ts):
springK 15→12, repelK 1200→120, restLength 80→50, centerGravityK
0.05→0.2, gravity 0.0001→0.002, maxForce 1000→150, globalSpeed 0.5→0.4,
damping 0.85→0.9, graphSeparationX 250→0, temperature 1.0→0.
- Bound slider ranges to backend physics_bounds so the UI cannot request
values the validator rejects: repelK max 3000→500 (REPEL_K cap),
temperature max 5→1 (TEMPERATURE cap).
- Remove duplicated ontology-force controls (qualityGates.ontologyPhysics
toggle + ontologyStrength slider) from the Physics tab. The dedicated
Ontology → Forces panel (OntologyForcesPanel) is the single source of
truth for enable + global strength, eliminating the divergent-default
(0.5 vs 0.6) second control surface.
Empirically verified the physics path is live end-to-end: PUT
/api/settings/physics (repelK 120→500) expanded graph spread
(34.8,36.0,26.7)→(37.7,38.6,28.1) via UpdateSimulationParams +
ForceResumePhysics to the GPU. Client tsc --noEmit passes.
Co-Authored-By: jjohare <github@thedreamlab.uk>
{key: 'springK',group: 'Core Forces',label: 'Spring Strength',type: 'slider',min: 0,max: 100,step: 0.5,path: 'visualisation.graphs.logseq.physics.springK',description: 'Edge spring constant for Hooke mode (default 15). In the default LinLog mode the per-population multipliers below govern spring strength.'},
198
+
{key: 'springK',group: 'Core Forces',label: 'Spring Strength',type: 'slider',min: 0,max: 100,step: 0.5,path: 'visualisation.graphs.logseq.physics.springK',description: 'Edge spring constant for Hooke mode (default 12). In the default LinLog mode the per-population multipliers below govern spring strength.'},
199
199
{key: 'springKKnowledge',group: 'Core Forces',label: 'Spring: Knowledge',type: 'slider',min: 0,max: 10,step: 0.1,path: 'visualisation.graphs.logseq.physics.springKKnowledge',description: 'Spring strength multiplier for knowledge-graph nodes — live in both LinLog and Hooke modes (default 1.0 = baseline).'},
{key: 'graphSeparationX',group: 'Layout Forces',label: 'Graph Separation',type: 'slider',min: 0,max: 400,step: 25,path: 'visualisation.graphs.logseq.physics.graphSeparationX',description: 'Separation between the knowledge and ontology graphs — the depth gap between the two facing discs (0 = merged/overlapping, ~250 = clearly separated, default 250). Use with Disc Flatten to make them face one another.'},
244
+
{key: 'graphSeparationX',group: 'Layout Forces',label: 'Graph Separation',type: 'slider',min: 0,max: 400,step: 25,path: 'visualisation.graphs.logseq.physics.graphSeparationX',description: 'Separation between the knowledge and ontology graphs — the depth gap between the two facing discs (default 0 = merged/overlapping, ~250 = clearly separated). Use with Disc Flatten to make them face one another.'},
245
245
{key: 'axisCompressionZ',group: 'Layout Forces',label: 'Disc Flatten',type: 'slider',min: 0,max: 1.0,step: 0.05,path: 'visualisation.graphs.logseq.physics.axisCompressionZ',description: 'Flatten KG + ontology into two discs that face one another across the gap (0 = full 3D blobs, 1 = flat facing discs, default 0.9). Agents stay 3D as bridges.'},
{key: 'constraintRampFrames',group: 'Constraints',label: 'Constraint Ramp',type: 'slider',min: 0,max: 300,step: 5,path: 'visualisation.graphs.logseq.physics.constraintRampFrames',description: 'Frames over which ontology constraints ramp up after a change (default 60)'},
251
251
{key: 'constraintMaxForcePerNode',group: 'Constraints',label: 'Constraint Max Force',type: 'slider',min: 1,max: 2000,step: 5,path: 'visualisation.graphs.logseq.physics.constraintMaxForcePerNode',description: 'Per-node cap on ontology constraint forces (default 50)'},
0 commit comments