Bump the ktsu ImGui suite to 3.30.0 - #40
Merged
Merged
Conversation
Picks up the tuned force-directed layout defaults, where six of the fifteen layout settings were measured against a benchmark corpus rather than inherited. Also carries a fix for a repulsion setting of zero producing NaN node positions rather than a merely crowded graph. The graph editor is the consumer that sees the difference, and it is visible in the one test that had to change. The sample function used to settle into a box 880 across and 440 tall; it now settles into one 1150 across and 220 tall. Trading that height for width is the whole point — it is what makes a graph read left to right — but it means the ends of a row now hang over the sides of a 1000 by 600 canvas where before they did not, and Editor_KeepsTheLayoutInsideTheView was measuring per-node bounds sized for the old shape. Widened the horizontal bound, and added the claim those bounds were only ever a proxy for: the settled graph is still centred on the canvas. That is the thing the test exists to protect, since a document dragged towards the origin takes its centre hundreds of units with it, and unlike a per-node bound it does not need revisiting every time the layout settles into a different shape. Verified it fails when the expected centre is moved, rather than passing because everything passes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018b2bn5CKSzpjRV4nxv3c3y
|
This was referenced Sep 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Picks up the tuned force-directed layout defaults from ktsu-dev/ImGuiApp#382, where six of the fifteen layout settings were measured against a benchmark corpus rather than inherited. Also carries a fix for a repulsion setting of zero producing NaN node positions rather than a merely crowded graph.
ktsu.ImGui.Appktsu.ImGui.App.Testingktsu.ImGui.SyntaxHighlightingktsu.ImGui.Widgetsktsu.ImGui.NodeEditorktsu.ForceDirectedLayoutWhat changes for the editor
The graph editor is the consumer that sees the difference. Measured on this repo's own sample function, settled for 300 frames:
Half the height, and it reads left to right. That is the whole point of the upstream change — a chain used to fold into a coil under centre gravity, settling at about 53 degrees off horizontal with five starting arrangements in twelve reading left to right, and now settles at 0.1 degrees, twelve in twelve.
The one test that had to change
Editor_KeepsTheLayoutInsideTheViewasserted per-node bounds of ±200 around a 1000 by 600 canvas. Trading height for width means the ends of a row now hang over the sides where before they did not, and nodealands at x −218 against a −200 bound.That is the layout working, not drifting: the bounding box centre stays at (356, 287) against a canvas centre of (500, 300). Six nodes in a readable row simply do not fit 1000px, and the old bound was sized for the taller, narrower shape.
So the horizontal bound is widened, and the claim those bounds were only ever a proxy for is now asserted directly: the settled graph is still centred on the canvas. That is what the test exists to protect — a document dragged towards the origin takes its centre hundreds of units with it — and unlike a per-node bound it does not need revisiting every time the layout settles into a different shape.
Verified the new assertion fails when the expected centre is moved, rather than passing because everything passes.
Testing
dotnet restore,dotnet build -c Release(0 warnings, 0 errors), and the full suite: 373/373 passing. Confirmed the failure was caused by the bump and not pre-existing, by running the same test against 3.28.0 first.🤖 Generated with Claude Code
https://claude.ai/code/session_018b2bn5CKSzpjRV4nxv3c3y
Generated by Claude Code