
What was done
michaelshimeles paper-rs is a local-first infinite canvas with Paper-style behaviour, built clean-room on wgpu and published with analysis of the original app. No Paper code, shaders or assets are included.
paper-rs reimplements the behaviour of the Paper design app, an Electron shell around a hosted web editor, as a native, local-first Rust canvas built on wgpu, winit and egui. The README names its method: reverse engineered from Paper by studying the app behaviour with REA and Claude Code, clean-room style, shipping no original code, shaders, icons or fonts, with the findings kept in an analysis document in the repository. AI also works the canvas itself: the app serves a Model Context Protocol server so Claude Code or Codex can read and design on it like a user.
How it was done
The behaviour was studied rather than copied: the analysis notes how the original structures projects, pages, components, auto layout and its MCP tools, so the reimplementation can match names and shapes where it wants them. The build covers frames, groups, components with live overrides, auto layout, pen editing, boolean shapes, gradients, rich text, pressure ink and a hand-drawn style ported and checked against real Rough.js output. Around 140 tests drive the editor with synthetic pointer events, plus headless GPU render tests and an MCP test suite.
Results
It runs on Linux, including real X11 windows, and the macOS target compiles but has not been run on Mac hardware yet. Export covers PNG, SVG and PDF, imports take Excalidraw files and SVG, and storage stays in your own Documents folder with no multiplayer and no cloud by design. Paper tool naming is kept where paper-rs has an equivalent, so prompts written for the original also work here.