What happens
Commit d99d704 ("Tune the layout defaults against the benchmark corpus") moved six settings and updated LayoutSettings.cs, PhysicsSettings.cs and CLAUDE.md — but not ForceDirectedLayout/README.md, whose last commit is the earlier 1da8962.
The README's "Tuning" block still carries every pre-tuning value:
| README |
actual (ForceDirectedLayout/LayoutSettings.cs:131-150) |
RepulsionStrength = 600_000.0 (README:107) |
900_000.0 |
LinkSpringStrength = 0.5 (README:108) |
0.1 |
RestLinkLength = 225.0 (README:109) |
50.0 |
DirectionalBias = 0.5 (README:110) |
4.0 |
LinkFlatteningStrength = 0.5 (README:111) |
3.0 |
MinRepulsionDistance = 50.0 (README:117) |
5.0 |
Those six are exactly the six rows of CLAUDE.md's "Tuned defaults" table — the README is publishing its was column as current.
The paragraph immediately below, at README:127, then says:
These values were not guessed. […] that is how a new default gets found.
Why it matters
This is the NuGet package README for ktsu.ForceDirectedLayout, so it is the primary reference for anyone outside the repo.
MinRepulsionDistance = 50.0 is actively harmful to copy: CLAUDE.md records that a value that high is what "used to let bodies crowd". The README comment beside it — "so touching bodies push hard, not infinitely hard" — also now contradicts LayoutCore.cs:287's MinimumRepulsionClamp, which is what actually keeps the law finite since aebc684.
So a reader following the README gets the pre-tuning behaviour the corpus was built to fix, with a paragraph underneath assuring them the numbers were measured.
Suggested fix
Sync README:106-124 to LayoutSettings.Defaults, and add a note that MinRepulsionDistance is floored internally.
Secondary: ImGui.NodeEditor/README.md:126-130 shows RepulsionStrength = 1_200_000.0 / LinkSpringStrength = 0.5 / RestLinkLength = 225.0. That block reads as illustrative rather than as a defaults listing, but it is stale in the same direction and worth correcting in the same pass.
Worth considering whether the defaults table can be generated or test-asserted, since this is the second document that has to move whenever a default does.
What happens
Commit
d99d704("Tune the layout defaults against the benchmark corpus") moved six settings and updatedLayoutSettings.cs,PhysicsSettings.csandCLAUDE.md— but notForceDirectedLayout/README.md, whose last commit is the earlier1da8962.The README's "Tuning" block still carries every pre-tuning value:
ForceDirectedLayout/LayoutSettings.cs:131-150)RepulsionStrength = 600_000.0(README:107)900_000.0LinkSpringStrength = 0.5(README:108)0.1RestLinkLength = 225.0(README:109)50.0DirectionalBias = 0.5(README:110)4.0LinkFlatteningStrength = 0.5(README:111)3.0MinRepulsionDistance = 50.0(README:117)5.0Those six are exactly the six rows of CLAUDE.md's "Tuned defaults" table — the README is publishing its was column as current.
The paragraph immediately below, at README:127, then says:
Why it matters
This is the NuGet package README for
ktsu.ForceDirectedLayout, so it is the primary reference for anyone outside the repo.MinRepulsionDistance = 50.0is actively harmful to copy: CLAUDE.md records that a value that high is what "used to let bodies crowd". The README comment beside it — "so touching bodies push hard, not infinitely hard" — also now contradictsLayoutCore.cs:287'sMinimumRepulsionClamp, which is what actually keeps the law finite sinceaebc684.So a reader following the README gets the pre-tuning behaviour the corpus was built to fix, with a paragraph underneath assuring them the numbers were measured.
Suggested fix
Sync README:106-124 to
LayoutSettings.Defaults, and add a note thatMinRepulsionDistanceis floored internally.Secondary:
ImGui.NodeEditor/README.md:126-130showsRepulsionStrength = 1_200_000.0/LinkSpringStrength = 0.5/RestLinkLength = 225.0. That block reads as illustrative rather than as a defaults listing, but it is stale in the same direction and worth correcting in the same pass.Worth considering whether the defaults table can be generated or test-asserted, since this is the second document that has to move whenever a default does.