Paste base64 (one frame per line for animations) or a C array / hex dump. Input longer than 1024 bytes is split into consecutive frames.
One byte holds a column of 8 vertical pixels. The least significant bit is the topmost pixel, the most significant bit the lowest. Consecutive bytes walk across the display; after 128 bytes the next 8 pixel row (page) begins. A frame is 128 * 8 = 1024 bytes.
Byte index = (Y / 8) * 128 + X, bit index = Y % 8. The status bar under the canvas shows both for the pixel under the cursor.
| P E L R O F S | pencil, eraser, line, rect, ellipse, fill, select |
| X | swap draw color |
| 1 - 4 | brush size |
| G | toggle grid |
| CTRL+Z / CTRL+Y | undo / redo |
| CTRL+C / CTRL+V | copy / paste selection |
| CTRL+X | cut selection |
| DELETE | clear selection contents |
| ENTER / ESC | drop the selection back onto the frame |
| ARROWS | nudge selection |
| , and . | previous / next frame |
| SPACE | play or stop animation |
| + / - | zoom |
Left button draws with the selected color, right button draws with the opposite one. The work is stored in this browser automatically; use SAVE FILE for a copy you can move elsewhere.