He and I used to "computer code" together in IPython: typing words to see emojis, mixing colors, making sounds. Eventually he wanted his own computer. So I took an old laptop and made him one.
That IPython session evolved into Explore mode, a REPL where kids type things and something always happens: "cat * 5" shows five cats, "red + blue" mixes colors like real paint, math gets dot visualizations. Then came Play mode (every key makes a sound and paints a color) and Doodle mode (write and paint). The whole machine boots straight into Purple. No desktop, no browser, no internet.
It felt different from "screen time." He'd use it for a while, then walk away on his own. No tantrum, no negotiation.
Some technical bits: it's a Python TUI (Textual in Alacritty) running on Ubuntu, so even very old laptops run it well. Keyboard input bypasses the terminal entirely via evdev for true key-down/key-up events, which lets me do sticky shift and double-tap capitals so kids don't have to hold two keys. Color mixing uses spectral reflectance curves so colors actually mix like paint (yellow + blue = green, not gray).
Source is on GitHub: https://github.com/purplecomputerorg/purplecomputer
Distribution is the biggest open question for me. Right now it’s just an ISO you flash yourself, but I’m experimenting with mailing pre-flashed USB drives. I've also thought about preloading old laptops, though that adds a lot of overhead.
I'm also very open to technical feedback around the input layer (evdev for true key-down/key-up, sticky shift, double-tap caps) and the paint-style color mixing, or anything else. Thank you!