summaryrefslogtreecommitdiff
path: root/docs/design.typ
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-08-17 16:12:56 -0300
committerGabriel Schneider <[email protected]>2026-08-18 23:45:04 -0300
commit31fece62f56aa2311e2325de83659edbc9e641db (patch)
tree13eee1e542d9670ad3fb7badad353265121d668f /docs/design.typ
parent1551e409c31992437cb2fa864f576d45c8433801 (diff)
downloadpardes-31fece62f56aa2311e2325de83659edbc9e641db.tar.gz
pardes-31fece62f56aa2311e2325de83659edbc9e641db.zip
animation: core publishes transition records; gui evaluates via shaders, tty over grid cells
Diffstat (limited to 'docs/design.typ')
-rw-r--r--docs/design.typ18
1 files changed, 12 insertions, 6 deletions
diff --git a/docs/design.typ b/docs/design.typ
index 8dd14cdf..1c50cfde 100644
--- a/docs/design.typ
+++ b/docs/design.typ
@@ -178,24 +178,30 @@ weight.
their easing, exact endpoint progress, stable per-cell noise, and a POD track.
The core detects opening/moving rectangles when it commits layout and publishes
only active tracks. It retains the last successfully presented canonical grid
-and a semantic old/new cell mask; unused grapheme bytes do not manufacture a
+and a typed old/new cell diff; unused grapheme bytes do not manufacture a
change. A separate dense closing-track list is presentation-only state for a
pane whose functional lifetime has already ended. Pointer input inverts the
presented slide/zoom/vertical rectangle back to the canonical grid, lets
unchanged dissolve/ASCII cells through immediately, and rejects closing
pixels, so pixels and gestures cannot disagree during a transition.
-TTY copies the canonical `Surface` grid into a compositor scratch grid, clears
+Pardes core first composes each ASCII-qualified diff by incrementing or
+decrementing its printable byte. Short walks move once per frame; longer walks
+use integer ease-out skips and finish within twelve movements. Style-only and
+non-ASCII changes pass through, and every backend receives the same
+presentation cells.
+TTY copies that `Surface` grid into a compositor scratch grid, clears
slide/zoom destinations, then paints moving, opening, and closing panels in
order.
Cleared geometry uses the theme page color when it is explicit and the host
terminal default only for transparent themes, so a light theme cannot flash a
dark gap. Slide/zoom change the copied rectangle. Dissolve changes only diff
-cells from their old value to their new value; ASCII takes the same cells
-through punctuation; vertical raises only an opening or frozen closing pane
+cells from their old value to their new value; vertical raises only an opening
+or frozen closing pane
inside its own clip. SDL supplies old/new glyph data, diff flags,
final/presented boxes, and effect parameters to the glyph and native-image
-shaders. macOS passes the same records across its plain C ABI and composites
+shaders. Pixel attachments bypass ASCII because they have no character byte.
+macOS passes the same records across its plain C ABI and composites
old/new panel images in Metal/Core Image. Scene `Crt`, `Ripple`, and
`Glitch` bits share one full-window pass in each native GUI. DOM web is a
separate platform, not a shader GUI: retaining selectable HTML/CSS is more
@@ -218,7 +224,7 @@ Pardes
rects: [16]Rect // where each pane landed, this frame
panel_tracks: [16]?Track // live panes, serial-guarded
closing_panel_tracks: [16]Track // dense visual tombstones, no pane owner
- presented_cells + changed_cells // acknowledged baseline + semantic diff
+ presented_cells + panel_cell_diffs // acknowledged baseline + semantic diff
effects: [4096]Effect + head/len // a fixed ring
Pane