Repository navigation
Conversation
lashmanRB
force-pushed
the
input-smoothing
branch
3 times, most recently
from
November 8, 2026 12:20
4c1b06f to
5eacd39
Compare
lashmanRB
force-pushed
the
input-smoothing
branch
from
November 8, 2026 12:29
5eacd39 to
3407783
Compare
…s with the filtering
lashmanRB
force-pushed
the
input-smoothing
branch
from
November 13, 2026 23:44
3407783 to
6e987f5
Compare
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.
Two changes to input smoothing, both in
crates/engine/src/stroke.rs.Stabilisation took
amount^2.2 * 120samples each way. At 0.15 that averaged a single sample, while the top of the slider held the path back half a second. It now averages a 200 ms stretch resolved against the input's tuned rate: 4 samples at 0.15, 24 at 100%, and about 111 ms of trail measured. Measuring the window in time also gives the speed behaviour for free: a fixed stretch of time covers more of a fast stroke, so a quicker stroke is smoothed more. A test draws the same three wobbles over the same 600 px at two speeds and checks the quicker stroke comes out evener.Motion Filtering Expression had no relation to the filtering amount, so it could lengthen the filter by 8x at any setting. Expression is now damped by
1 - amount: the more the filtering takes out, the less there is to let back through, and at the top of the slider it changes nothing at all. At low filtering it still lengthens the filter.The filter kernels, the mirroring at the ends of the averaging window and the split between committed and tentative stamps are unchanged.
cargo fmt --all --check, cargo clippy --workspace --all-targets -- -D warnings and cargo test --workspace pass. Three tests cover the new behaviour, and one existing test that asserted a 200 px trail floor now asserts 60 px while still proving smoothing takes the same time at any input rate.
A third change - a stroke starting on the average of its first points rather than where the tip landed - is gone from this branch. Upstream shipped Tip Attachment (
tip_attached) covering the same ground, and a second switch for it would only be something to reconcile later.