
here's the readme i intend to include with the first release (which hasnt happened yet)
PAINTBOX
VERSION 1, the january 2026 release.
by Morgan Brackish Meadows and Harper Weathervane
a simple, opinionated image editor for 64-bit windows.
Our goal is to recreate the feel and constraints of Microsoft Paint as it existed in the Windows 95 / 98 era, while adding a small number of modern conveniences. Paintbox is intentionally closer to old Paint than the version bundled with modern Windows.
! LUDDITES BEWARN'D: paintbox was built using generative ai for code generation. it's 2026.
NEW OR POTENTIALLY CONFUSING FEATURES
(for users familiar with old MS Paint)
you can zoom with the scroll wheel and pan by holding middle click, and zoom to arbitrary floating-point zoom factors up to 16x
-you can scale the interface by holding CTRL and scroll wheel, similar to scaling pages in a web browser.
you can use WASD to navigate the palette, which has three regions (greyscale, chroma, transparent) - navigating up and down with W and S will wrap columns and take you to the end of your region without crossing into the next, while moving left and right with A and D will allow you to cross regions. you can press F and G while in the chromatic region to move three columns left or right, skipping to the next color slice.
-we implement a fake pencil and eraser - fake pencil (R key) is brush but your brush size is set to 1. fake eraser (E key) is brush but the color is set to transparent. these keys toggle - they cache the previous brush size/color and you can restore it by hitting the key again.
-you can adjust brush size with C and V. You can adjust the secondary brush by holding the right mouse down (outside the canvas, ideally) and then pressing C and V.
-gestures like fill will live demo their behaviour while the mouse is down and commit on mouseup.
it's designed to work with on/off transparency, so colors on the palette are either full-opacity (255) or the transparent color (rgba 0,0,0,0). If you load an image with alpha it will allow you select and work with colors with alpha values other than 0 or 255 but this is undefined behaviour and may cause unforseen bugs.
it's also sort of fake-indexed pallete, the colors on the canvas are rgba. if you pick a color from the canvas that matches a color on the palette, the palette will select the first matching index. the default palette has multiple swatches for some colors, these will have multiple indices each on the pallete but tools like fill will treat them identically.
KEYBOARD REFERENCE
-tool switching with the keyboard:
Q: eyedropper
Z: fill
B: brush
T: select
X: swap tools
E: (fake eraser) switch to brush and set the color to transparent
R: (fake pencil) switch to brush and set the brush size to 1
-palette navigation with the keyboard:
WASD: move one cell up/down/left/right
FG: move one slice (three columns) left/right
-brush size with the keyboard:
CV: increase/decrease brush size