Build on Pixel Stroke
Pixel Stroke is more than a pixel-art editor — it's a scriptable creative pipeline. Every tool you see in the editor is built on the same public surface you can drive yourself: a small Rust core, a fast WebAssembly runtime, and a Rhai scripting layer that exposes the whole toolset.
These pages document the parts you can build against. The scripting guide covers the embedded Rhai surface — macros, custom tools, panels, workflow automation. The API reference lists the bound primitives. Both pages are growing as we stabilise the public contract.
What you can do today
- Macros. Save a sequence of filter / layer / palette operations as a callable function.
- Custom tools. Build a tool that consumes a selection, transforms pixels, and emits a stroke through the same pipeline the editor's brush uses.
- Panel scripts. Author entire side-panels in Rhai (toolbar, layer list, timeline, palette picker — they're all panel scripts in the shipped editor).
- Workflow automation. Batch-export tile atlases, generate icon sets, run procedural fills, drive animations frame-by-frame.
What's coming
- Stable bindings for the stamp-brush / drawer / animation-brush flows when those land in the editor.
- A debugger UI for scripts (set breakpoints, inspect state).
- A package registry for sharing macros + panels.
Stability promise
Pixel Stroke is still pre-1.0. The Rhai surface is the only public contract — internal Rust crates may change without notice. If a binding is documented on these pages with stable, it won't change shape between releases. Bindings marked experimental may.
Ground rules
These docs cover only the scriptable surface of Pixel Stroke — public bindings exposed through Rhai. The Rust crates that implement those bindings are implementation details and may move without warning.
Found a binding that's missing, broken, or under-documented? Open an issue on GitHub .