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.

Palette
State · stamp brush
Drive it ↓
Scripting · rhai macros
palette swap Run it ↓

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

23 finished assets · 4 collaborators · edited 2 hours ago

hero_idle Sprite · 48×37
title_art Illustration · 1920×1080
ns_display Font · TTF · 83 glyphs
jump_loop Animation · 8 frames
ui_icons Icon set · 6 × 16px
forest_floor Tilemap · 16px
boot_loop LED · 13×8

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.

scratch.psproj
Drag to draw
Frames
Cherry #EC2A2A
Layers
Slime100
Ground100
Sky100
Brush engine ready Brush · Smooth · #EC2A2A 160 × 100 · RGBA · 6× 12 fps

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.

slime_jump · 8 frames
0%

Pick a frame, drag the slider, watch the loop.

Playing · loop PNG · GIF · sprite atlas

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.

Rhai · WebAssembly
Ctrl + Enter runs
original

    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.

    state idle
    idle4 frames · loop
    walk8 frames · loop
    attack6 frames · once

    Hold A D or the arrow keys to walk, Space to attack. Hit the slime.

      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
      Export → many targets 6 formats · 1 project
      • 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.