Skip to content

Releases: Icey0111/mypaint-rs

v0.1.0 - Windows x64 snapshot (194/196 brushes bit-identical to libmypaint C)

Choose a tag to compare

@Icey0111 Icey0111 released this 21 Oct 09:42

Snapshot build of the Rust port of MyPaint 2.x — brush engine (libmypaint
compatible), tile surface, document model, egui + wgpu shell. Built on Windows
11 x64 from source at 7dc1ebe, MSVC toolchain, --release.

This is a try it and judge it artifact, not a release-quality drawing program.

sha256  1aefebe278db52e27990256c2f584f152460d27199fc21099fb39348adf5009b

Run

Unzip, run pigment-app.exe. No installer, no updater, unsigned (SmartScreen
will object — expected, not a warning about the content). vcruntime140.dll is
included so it runs without the VC++ redistributable.

The bundled official brush pack is used automatically; the app also reads the
directories MyPaint itself uses (%APPDATA%\mypaint\brushes).
-c DIR starts with an isolated config directory.

Parity, measured

Against libmypaint d5a88f, official brush pack, one event stream:
194 / 196 brushes bit-identical to the C engine (byte-for-byte on RGBA u16
fix15 buffers; MinGW gcc -O2 and MSVC cl /O2 reference builds agree), 2
differ, 0 errors. The 9 engine fixture scripts, each with its own event stream:
9 / 9. Bundled resources byte-identical to upstream: 196/196 .myb, 11/11
gui/*.xml. 933 + 98 tests pass.

The gate's events are 4-field, so pen tilt, canvas zoom and canvas rotation sit
at their defaults: those dynamics are ported but not proven. See the README
before repeating the 194 figure.

Works

Nine tool modes (freehand, inking, line, sequence, ellipse, flood fill, layer
move, frame, symmetry), 22 layer combine modes with spectral mixing, ORA and
PNG I/O, autosave and recovery, copy-on-write undo, brush editor, preferences,
input test, EN + zh_CN from MyPaint's own catalogue, mipmap preview that keeps
low-zoom painting responsive (thumbnail rebuild 965 ms → 2.8 ms at 12.5% on an
8040×5971 canvas). Evidence: 73 scripted interaction checks driving the real app
through Win32 SendInput, each asserting application state and canvas pixel
deltas — mouse-driven; real-tablet hardware coverage is outstanding.

Missing / approximate

Windows only. ~14 upstream UI surfaces have a model but no panel (colour
adjuster pages, mode options panel, layer view UI, layer properties dialog,
background chooser, brush icon editor, quick popups, undo history popup,
button-mapping editor, palette editor, progress feedback). Single document.
.myb v2 not migrated. GPU path approximate by design (smudge resampled every
8 dabs; PIGMENT_NO_GPU_DABS=1 gives the CPU parity reference). Test suites are
not fully hermetic yet — see README.

Source

https://github.com/Icey0111/mypaint-rs — GPL-3.0-or-later. Engine dependency
https://github.com/Icey0111/hokusai — MIT OR Apache-2.0. Bundled .myb brush
settings are CC0 and deliberately unrestricted, as upstream intends.