The creative pipeline that holds the whole project
Sketch. Paint. Pixel. Rig. Ship. One project.
Pixel Stroke keeps a whole project in one document: sprites, fonts, frame-by-frame animation, vector logos, illustrations, tilemaps and LED-matrix sequences. You draw, animate, share and export from the same file.
Ideate together · live
Draw on one canvas together.
Invite someone to a project and you both work on the same canvas, layers, palette and timeline. Every cursor carries its owner's name and color, and there's nothing to merge afterward.
Waiting for collaborators…
Hosting and joining are both free, and the room is the project itself.
A drawer of finished things
One project holds everything you make.
Sprites, fonts, animations, illustrations, tilemaps and LED-matrix sequences all live in the same .pxs document. Open the drawer and everything you've made is still there.
Open project · nightshade.pxs
Night Shade Engine · Asset library
Try a tool · right here, right now
Don't watch a screenshot. Draw something.
A small slice of Pixel Stroke, running in your browser on the editor's own WebAssembly brush engine: seven tools, three brush modes, palettes, layers, frames and playback. Follow the steps to make your first sprite, or take scratch.psproj apart.
The brush engine above is the editor's own Rust code compiled to WebAssembly, and the panels work the way the editor's do. The full editor adds more tools, symmetry, tilemaps, bones, scripting and live collab rooms. Create a free account to open it.
Layers → animation · live
Adjust a frame. Watch the loop change.
Eight frames of a slime's jump. Pick a frame and drag its height. The squash and stretch around it update, and the preview replays the loop with your change. It's the editor's pipeline: layers feed the film strip, and the film strip feeds the export.
Pick a frame, drag the slider, watch the loop.
Scripting · Rhai · live
Write a macro. Watch it run.
Pixel Stroke is scriptable in Rhai. A script can paint pixels, read them back, run filters, work inside a selection and build animation frames. These six use the editor's bindings (same names, same arguments), compiled to WebAssembly and running on this page. Change a seed or a color and run it again. Each line lights up as its result lands, and the dungeon is a game: this page hands it your arrow keys.
State machines · live
Frames make clips. States pick the clip.
A state machine names what a character or a tool is doing, and the inputs that move it on. Walk the knight and swing the sword: the machine picks idle, walk or attack, and the graph lights each edge as it fires. It is built with the editor's own state machine bindings, shown beside it. The stamp brush tab shows a tool's machine at work.
Hold A D or the arrow keys to walk, Space to attack. Hit the slime.
Press and drag: each stamp steps one frame, and what you stamp keeps animating. [ ] pick the start frame.
One project, many outputs
Make once. Ship to every target.
The same project document exports to PNG, animated GIF, SVG, TrueType font, sprite atlas with JSON, or hardware bytecode for an Arduino LED matrix, without passing files between three different apps.
Open the editor- hero_idle → PNG · raster · 48×37 PNG
- ui_icons → SVG · pixel-exact · 6 icons SVG
- jump_loop → GIF · animated · 8 frames GIF
- ns_display → TTF · font · 83 glyphs TTF
- tiles_pack → PNG + JSON · sprite atlas ATLAS
- boot_loop → PXLMA1 · hardware · 13×8 PXLMA1
The pipeline lives in one place.
Create a free account and open the editor. The same account hosts collab rooms and keeps your projects across devices.