Show HN: ZenPaint, a pixel-perfect MacPaint recreation for the browser
zenpaint.orgI've been recreating the original MacPaint in the browser on and off for a few years. It's still alpha quality, but I'm finally ready to share it more widely.
The goal was pixel-perfect accuracy, so I spent a lot of time with Atkinson's original QuickDraw source code, emulators, and my iBook G3 to get details like font rendering and the shape tools exactly right.
Some technical notes:
- Font rendering was surprisingly tricky; understanding the original pipeline's quirks took lots of experimentation, and avoiding canvas smoothing/aliasing required careful handling.
- Written declaratively with React; performance is kept reasonable with a buffer pool and copy-on-write semantics. - You can share links to artwork from within the UI.
E.g.: https://zenpaint.org/#p=KQumBQ5x
- Mobile support was not considered here (for obvious reasons). It might still be usable on a larger phone or tablet but I have not tested this at all.
There's something magical about making art within MacPaint's constraints: the 1-bit graphics, the limited resolution, the peculiar set of tools that still feel surprisingly expressive.
Still some rough edges and missing features, but I'd love feedback from anyone who remembers the original.
The buffer pool and CoW are honestly really nice patterns for this type of canvas heavy setup with React where it's not a good fit for a custom reconciler.
This is incredible! I've seen many recreations of classic software on the web, but the attention to detail and authenticity here surpasses astonishment and enters the orbit of pure, creative insanity. (Atkinson would no doubt be pleased.)
Kudos to you for the time and effort you put into this — and all the more for bringing it to a stage where you could share it with the rest of us. I’d love to read a blog post about this project someday!
HOLY HECK
nice
great