
Local-first pixel art, animation and Minecraft skin editor with live multiplayer
Built a browser-based illustration app for pixel art, frame animation and Minecraft skins and textures: layers and groups, selections, pressure-sensitive brushes, onion skinning and a real-time Three.js preview that maps the skin UV layout onto a 3D character. Projects autosave to IndexedDB and never leave the device; friends can draw together over peer-to-peer WebRTC.
Professional illustration workflow on top of a Minecraft-native document model.
• Layered, multi-frame document where every edit is a serialisable op with an inverse — one primitive powering undo/redo, autosave and live collaboration.
• Pixel tools with pixel-perfect lines, symmetry (including character left/right mirroring across the skin UV map), lasso / magic-wand selections and custom brush tips.
• Three.js preview built from the same UV table as the 2D guides, with paint-on-model and walk/idle animation; blocks preview as cubes and items as extruded voxels.
• Local-first: IndexedDB persistence with debounced autosave, offline PWA, .moxel project files and full backups — no accounts, no uploads.
• Exports Minecraft-ready skins (with validation), GIFs, sprite sheets and animated textures with .mcmeta.
• Live sessions over WebRTC with per-pixel last-writer-wins convergence and per-user undo; a stateless relay on the Pi only brokers the handshake.
• Layered, multi-frame document where every edit is a serialisable op with an inverse — one primitive powering undo/redo, autosave and live collaboration.
• Pixel tools with pixel-perfect lines, symmetry (including character left/right mirroring across the skin UV map), lasso / magic-wand selections and custom brush tips.
• Three.js preview built from the same UV table as the 2D guides, with paint-on-model and walk/idle animation; blocks preview as cubes and items as extruded voxels.
• Local-first: IndexedDB persistence with debounced autosave, offline PWA, .moxel project files and full backups — no accounts, no uploads.
• Exports Minecraft-ready skins (with validation), GIFs, sprite sheets and animated textures with .mcmeta.
• Live sessions over WebRTC with per-pixel last-writer-wins convergence and per-user undo; a stateless relay on the Pi only brokers the handshake.