diff options
| author | Gabriel Schneider <[email protected]> | 2026-08-20 17:10:22 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-08-25 09:42:06 -0300 |
| commit | 70bde600793ea70bd68832018a154671c6bf1512 (patch) | |
| tree | af477fd09881b85bf3ed735ede1afa254779b14f /docs/config.md | |
| parent | 7d2ade5ed706c67f30f54462684bced6a0978413 (diff) | |
| download | pardes-70bde600793ea70bd68832018a154671c6bf1512.tar.gz pardes-70bde600793ea70bd68832018a154671c6bf1512.zip | |
animation: six character-motion panel transitions, composed in the core so backends agree
Diffstat (limited to 'docs/config.md')
| -rw-r--r-- | docs/config.md | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/docs/config.md b/docs/config.md index 4f04d032..11346f4e 100644 --- a/docs/config.md +++ b/docs/config.md @@ -180,19 +180,46 @@ PanelZoom PanelDissolve PanelAscii PanelVertical +PanelEdges +PanelFall +PanelWave +PanelCurtain +PanelScramble +PanelType ``` All panel transitions start off. Slide uses cubic ease-out and zoom uses an overshooting ease-out-back. Dissolve and ASCII compare the last successfully presented grid with the new one. Dissolve switches visually changed cells at -stable noise thresholds. ASCII walks every changed single-byte printable glyph -from its old `u8` value to its new one. Nearby values increment or decrement -once per frame; longer distances use ease-out character skips, moving quickly -at first and settling exactly on the destination. Glyph-stable style changes +stable noise thresholds. +ASCII walks every changed single-byte printable glyph +from its old `u8` value to its new one, spending that byte distance as the +frames of the walk. The walk is eased in and out: a glyph creeps at both ends +and crosses the middle of its distance in a few large skips, inside the same +number of frames a constant one-value-per-frame walk would have taken. +Glyph-stable style changes and non-ASCII graphemes become canonical immediately. A walk is capped at twelve movement frames, and each pane lasts only as long as its longest walk. The core computes and composes that semantic diff once for every backend; pixel attachments, which have no character value, pass through unchanged. + +Six further transitions are character *motion* over the same frozen/new grid +pair, and are composed in the core the same way: + +- `PanelEdges` — whole rows slide in from alternating screen edges. +- `PanelFall` — columns rain down into place, each with its own head start. +- `PanelWave` — a vertical ripple travels across the pane and decays. +- `PanelCurtain` — a curtain of glyphs marches column by column, left to right. +- `PanelScramble` — every cell churns through printable ASCII and locks onto + its final glyph at its own stable noise threshold. +- `PanelType` — reading-order reveal with a caret sitting on the write head. + +Unlike dissolve and ASCII these carry *every* glyph in the pane, changed or +not: text flying in from a screen edge has to bring its unchanged glyphs with +it. A cell whose glyph has not arrived shows the frozen old cell rather than a +blank or a blend, so every intermediate frame is made of real characters. No +cell is a valid input target until its own glyph has settled. + Vertical is a pane-lifecycle effect: a newly added pane rises from below inside its own fixed box, and a deleted pane's frozen content drops back down; surviving panes are never animated. The TTY |
