Skip to content

feat(desktop): loop every tutorial step illustration - #3417

Merged
janicduplessis merged 2 commits into
mainfrom
feat/3411-tutorial-loop-all
Oct 11, 2026
Merged

janicduplessis merged 2 commits into
mainfrom
feat/3411-tutorial-loop-all

Conversation

@janicduplessis

Copy link
Copy Markdown
Collaborator

Description

The tutorial panel's Finish and Delete illustrations played once and then froze on their last frame (#3379, #3383). They were easy to miss: by the time you looked at the panel, the animation was over. The maintainer decided every step loops.

Solution

  • Finish: a 100-frame loop that starts and ends on the lidded jar. The lid lifts off as the app reappears, the app fades out (stopped), the outline lid settles back and the rim sparkles. It holds about 1 s on the lidded jar before restarting.
  • Delete: a 170-frame loop that starts and ends on the full lidded jar. The jar un-builds, the disk and capacity bar draw themselves and the bar drains, then the rim sparkles. It holds about 1 s on the drained bar. The bar fades out and the jar builds itself back the way the build animation does, so the restart has no jump.
  • Still frames: the Reduce Motion stills stay the end states, the lidded jar and the drained bar.
  • Transition: finish>delete still starts from Finish's rest pose, the lidded jar.
  • Cleanup: nothing needs stim.modes any more, so the generator drops it and TutorialIllustration always plays the step's marker with .loop.

Test plan

  • python3 website/scripts/build-stim-tutorial-lottie.py regenerates both timelines byte for byte. A temporary lottie-ios render confirmed each loop's first and last frames match.
  • stim macos from apps/desktop, with the real ~/.stim home and the panel seeded at Finish and Archive. Captured with the patched agent-device (--surface app), only this app's window: the Finish illustration cycles lidded, app back, app fading, then lidded again, rendered by Core Animation. stim logs --errors was empty, then stim stop and agent-device daemon stop.
    Finish loop in the running app
  • swift test -Xswiftc -warnings-as-errors and swift build -c release -Xswiftc -warnings-as-errors pass.

Fixes #3411

Finish and Delete loop with a hold on their end frame instead of playing once. Fixes #3411
@janicduplessis

Copy link
Copy Markdown
Collaborator Author

Review: clear. Regenerating with python3 -I website/scripts/build-stim-tutorial-lottie.py leaves git status clean. From the keyframes, finish (788-887) and delete (912-1081) start and end on the same pose: every animated property matches at both ends, or the layer is invisible at both (sparkle trims, phone, disk, gauge and used bar). Finish holds the lidded jar for about 28 frames after the sparkle, and finish.still (873) falls inside it. Delete holds the drained bar from about frame 98 to 128 after the sparkle, and delete.still (1032) falls inside it. finish>delete (888-911) starts from the lidded rest pose, and no marker end reaches the next segment's first frame. stim.modes and the once set are gone and nothing reads them. TutorialIllustration always loops the step marker; the bridge play-once and handover, Reduce Motion, failed and hidden-window pauses are unchanged. The docstring matches the code, no comments were added, the PR description matches the diff, and swift build -Xswiftc -warnings-as-errors passes.

@janicduplessis janicduplessis added the review: ai-approved A fresh AI review found nothing left to fix label Oct 10, 2026
@janicduplessis
janicduplessis marked this pull request as ready for review October 10, 2026 22:57
@janicduplessis

Copy link
Copy Markdown
Collaborator Author

Review: clear (after main merge). Reviewed head 3497186. The PR diff still contains only its four files, with no conflict markers. Regenerating with python3 -I website/scripts/build-stim-tutorial-lottie.py leaves git status clean. swift build -Xswiftc -warnings-as-errors in apps/desktop passes. The earlier review's conclusions still hold, since the merge did not touch these files.

@janicduplessis
janicduplessis merged commit e35aa06 into main Oct 11, 2026
19 checks passed
@janicduplessis
janicduplessis deleted the feat/3411-tutorial-loop-all branch October 11, 2026 00:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: desktop apps/desktop area: website website/ review: ai-approved A fresh AI review found nothing left to fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Desktop tutorial: loop the Finish and Delete illustrations

1 participant