interactives/src
Claude bd4f073cac
kasuti: stage 3 replay — client-side GIF export
Adds a "Save GIF" button to the replay panel. On click, the component
renders each step of the replay to an offscreen canvas (both fabric
panels side-by-side, FRONT/BACK labels, active-side border, dashed
pattern guides for undrawn edges, drawn stitches in thread colour,
dashed start marker, red current-vertex dot) and feeds the frames
through gifenc — dynamically imported so the ~8 KB chunk only loads
when the user actually exports.

Frame timing: 200 ms between stitches, 900 ms hold on the first and
last frames. Palette is quantised to 64 colours per frame, which keeps
a Snowflake tour (~53 frames at 684×376) around 150–250 KB. The
button flips to "Encoding…" while busy and a sonner toast reports the
file size on success or the error on failure.

https://claude.ai/code/session_01KNdXjQczMCRGMK7K3Qderw
2026-04-22 11:40:21 +00:00
..
components kasuti: stage 3 replay — client-side GIF export 2026-04-22 11:40:21 +00:00
content Initial commit: Interactives site 2026-04-17 03:09:40 +05:30
data kasuti: new interactive — alternating Eulerian tour on a grid 2026-04-21 18:33:32 +00:00
hooks Initial commit: Interactives site 2026-04-17 03:09:40 +05:30
layouts social: replace Hatch template og-image + wire per-interactive images 2026-04-22 10:48:00 +00:00
lib kasuti: new interactive — alternating Eulerian tour on a grid 2026-04-21 18:33:32 +00:00
pages Switch to standalone Netlify Function for admin API 2026-04-17 03:44:01 +05:30
styles Initial commit: Interactives site 2026-04-17 03:09:40 +05:30
types Initial commit: Interactives site 2026-04-17 03:09:40 +05:30
utils Initial commit: Interactives site 2026-04-17 03:09:40 +05:30
consts.ts Initial commit: Interactives site 2026-04-17 03:09:40 +05:30
content.config.ts Initial commit: Interactives site 2026-04-17 03:09:40 +05:30