Skip to content

feat(transform): optional full release glide with the smooth-zoom ladder (#425) - #426

Closed
Maxaubert wants to merge 2 commits into
mainfrom
fix/425-full-release-glide
Closed

Maxaubert wants to merge 2 commits into
mainfrom
fix/425-full-release-glide

Conversation

@Maxaubert

Copy link
Copy Markdown
Owner

Fixes #425.

Problem

With the high-resolution cursor (smooth sampling + zoom ladder), the release glide stops at about 10-20 % of its speed (EaseOutShouldStop), while nearest sampling glides to rest. Field: "drives 50, then from 15 straight to 0".

Change

  • txGlideTail (hot, default 0 = unchanged). With 1, RunTick no longer cuts the glide, and the transform model writes the slow tail unsnapped (GlideTailUnsnapped): snapping a step smaller than the clean-level spacing can only hold and hop. Snapping still applies while a zoom key is held.
  • Cost: the tail crosses a few DWM rounding steps, each a small image jump (estimated 2-6 jumps of 2-5 px at the very end, depending on level).
  • Docs: 05-transform-engine records the measured ladder trade-off (session 2026-10-10) and the option.

Tests

  • build.bat test: 599 passed (new: GlideTailUnsnapped). build.bat builds.
  • Field: deployed for the user to compare txGlideTail 0/1 on the high-res cursor.

No version bump: bumped at merge time.

🤖 Generated with Claude Code

https://claude.ai/code/session_011zPmivSAQeivGUdBjTsaMu

Maxaubert and others added 2 commits October 10, 2026 02:27
…der (#425)

txGlideTail=1 lets the high-res release glide run out to rest like nearest
sampling: the slow tail that EaseOutShouldStop used to cut is written
unsnapped (GlideTailUnsnapped), since snapping a step smaller than the
clean-level spacing can only hold and hop. Default 0 keeps today's early
stop until it is field-tested. Docs record the measured ladder trade-off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011zPmivSAQeivGUdBjTsaMu
…ead of crossing it (#425)

Field: the unsnapped tail shook the cursor where it crossed DWM's rounding
steps. Inside one rounding cell (same scratch size and rounded origin) the
image moves continuously, so the tail's progress now eases into the cell
edge (RoundingCellEdge + SoftApproach: slope 1 at the hand-over, never
reaching the edge) and the controller takes the level on screen once the
glide has finished.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011zPmivSAQeivGUdBjTsaMu
@Maxaubert

Copy link
Copy Markdown
Owner Author

Closed after a field test: the full glide's tail made the image shake and showed a doubled image at the end of the glide. The original behaviour (high-res stops its glide early) stays. Work continues on the slow high-zoom shake instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

High-res: the release glide stops early instead of gliding out like low-res

1 participant