FE-1535: Sweep parameters as intervals with a range slider - #9396
Draft
kube wants to merge 1 commit into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
🌟 What is the purpose of this PR?
A sweep parameter declared min, max, and a value count (default 5), and the navigator computed one grid point at a time. Declaring the count was noise and five points is too coarse to explore with. A sweep now declares an interval only, and the navigator selects a region of it with a range slider — the whole interval by default, resizable, collapsible to a point.
🔗 Related links
🔍 What does this change?
SWEEP_AXIS_STEPS = 50; integer parameters step by whole numbers) — fine enough that returning a slider to an earlier position restores that position's cached runs and distributions, since cells are cached by quantized position.enumerateRegionCellsvisits the region's cells in a deterministic low-discrepancy order (Halton bases per axis), the session levels them rung by rung up the existing ladder, and the drawer shows the merge of every cached cell in the region — the distribution over the region takes shape after a few points and sharpens with coverage. A point selection is a one-cell region and behaves exactly as before.RangeSliderper parameter (new two-thumb ds-components component whose thumbs may coincide) with a Range/Point control; drags commit on release so a gesture cancels at most one batch. The status line counts sampled cells and runs for regions.🐾 How to test
Storybook → Simulate / SimulateView → "Parameter sweep": both sliders render with Range/Point controls; switching transmission_rate to Range spans 0.1 – 0.5 with two thumbs; clicking the surface collapses both parameters to a point at the clicked position (verified live, plus 25 parameter-grid and 12 sweep-session unit tests covering quantization, region enumeration, leveling, cache reuse, and the widened-region merge).
Pre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
@hashintel/petrinaut,@hashintel/ds-components; patch changesets included)📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR:
🤖 Generated with Claude Code