B pencil E erase L line R rect
O ellipse G fill I pick ,. frame space play
⌘/Ctrl+Z undo · right-click erases
Palette — index 0 is off/black
Drawing is palette-indexed, so
recolouring a whole animation is editing one swatch. This is also what makes the
export tiny enough to sit in flash.
Panel
Changing this resizes the canvas without
resampling — existing art is kept top-left and cropped or padded. Nothing is ever
stretched.
Import
An animated GIF becomes one frame per GIF frame, decoded here rather than by the
browser — <img> only ever hands over the first one. A horizontal strip
whose width is a multiple of the canvas still becomes one frame per cell.
Scaling is nearest-neighbour by default: it never invents a colour, which is what
lets the palette survive. .clp files load straight back in.
On the palette: a clip holds 16 colours and slot 0 is always black. A GIF with
15 colours or fewer is kept exactly. A richer one is reduced to its own 15 most-used
colours — never remapped onto a preset.
If it comes out too big. The cost is detail, not the source's size — that is
scaled away before anything is counted. Measured on a 39-frame GIF: dropping
15 colours to 8 roughly halves it, and to 4 cuts it by about 70%.
Soften before shrinking is the one for dithered or noisy GIFs, where the
speckle is the cost and fewer colours barely helps. It blends neighbouring pixels before the
palette is chosen, so use it when a clip is over budget rather than by habit — and try
strong before giving up, it is often worth another 2× on top of gentle.
Frames drops whole frames and is the bluntest, most reliable lever of all: every 3rd
frame is a third of the size, and a 39-frame loop usually still reads at 13.
Export
Preview puts this on the panel for a minute and then the collection comes back.
Save files it in the sculpture's clip library without interrupting anything — add it
to a collection from the studio afterwards.
The C++ header is palette-indexed RLE. Drop it in src/art/,
#include it, and add a Clip row to
Registry.h — it plays through the same IAnimation
interface as every generative piece.