Skip to content

feat(capture): prototype the recording pill's entrance, silence and finish in the playground - #1404

Draft
kitlangton wants to merge 2 commits into
devfrom
annotate-pill-motion
Draft

kitlangton wants to merge 2 commits into
devfrom
annotate-pill-motion

Conversation

@kitlangton

@kitlangton kitlangton commented Nov 5, 2026 •

Copy link
Copy Markdown
Collaborator

The capsule playground now shows the recording pill's candidate motions side by side, drawn by Hex itself.
A new "Pill motion" section lines up how the pill could come in, rest while you're silent, and finish into the Undo receipt. It's a playground prototype only: the real capsule moves as it does today.

💡 Why
The web mockups couldn't show these on the real voice-reactive dot field, so it was hard to judge them. This draws them inside Hex's own renderer, over the real Dot scope simulation, with a scripted voice that goes silent, speaks, then goes silent again.

🆕 Now you can

  • Open hex capsule-playground and pick Entrance, Silence or Finish under "Pill motion".
  • Compare the entrance options, today's scale and fade and a draw-on that lights the dot and sweeps the field in.
  • Compare four silences: today's dots, a flat line, a line that spreads from the centre, and beads.
  • Compare three finishes: today's, one thread that becomes the Undo timer and flies into the ✓, and a fold up under the menu bar.
  • Render any of them as a clip with --video … --scene motion-entrance|motion-silence|motion-finish.

🚦 How it ships
Only in the playground, which is hidden and only in capture builds. Release behaviour is unchanged until one is picked. Reduce Motion is respected: springs become short fades and shape changes land at once.

  playground stage = real capsule
+ playground stage = real capsule, or one section's options in stacked lanes,
+                    each frame drawn from one clock (so a clip is exact)
+ dot field: optional per-column "flatness" that lays the traces on the middle row

📊 Proof

Entrance (Now, E3 · Draw on):

entrance-1x.mp4

Silence (I1 dots, I2 flat line, I3 from the centre, I4 beads):

silence-1x.mp4

Finish (Now, F1 · One thread, F2 · Fold away):

finish-1x.mp4

Rendered at 240 fps with Hex's own headless clip renderer, dark theme, then checked frame by frame for pops, seams and jumps. Frame-to-frame change per lane shows no spikes other than video keyframes. One remaining: a 2 pt dip in "Fold away" still moves its text a pixel at a time, which you can't see at normal speed.

👀 Read: playground/motion.rs, where everything is drawn from the clock. It copies the capsule's shell look instead of reusing it, which is fine for a throwaway prototype. The dot field's new flatness setting is off unless something sets it, and the existing scope tests pass unchanged. The rest is routine.

Requested on the board after the web mockups · no user reports · clips rendered headless on a Mac

Checks run
  • cargo test --locked --bin hex -- capture_capsule dot_scope: 150 passed
  • cargo clippy --locked --bin hex --tests: clean (after one fix)
  • cargo fmt --check, git diff --check: clean

This branch has not been deployed

No deployments
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.

1 participant