Skip to content
MyPaint v2.0.0 (2020-02-15)
Choose a tag to compare
@jplloyd jplloyd released this
· 409 commits to master since this release

Edit: 2020-02-20

Uploaded corrected AppImage files, which are actually built against the bundled dependencies and with openmp support enabled (the old versions were built on vanilla Ubuntu 16.04, but packaged on a CentOS 7 docker image).

After a bit of a lull in development, MyPaint 2.0 has arrived at last! Many have already tried out the new features in the new automated continuous appimage releases, but for those who prefer to use stable releases, this is the time to pester your distro's package maintainers (or better yet, package and take a maintainer role yourself).

Why is this 2.0 and not 1.3?

MyPaint 2.0 adds a new layer mode and uses a different compositing method than before (by default, this is configurable), which means that you can create files in 2.0 that will not look the same when opened in earlier versions. Additionally, changes to the brush parameters means that you can create stroke data in 2.0 that cannot be safely used in earlier versions.

Major New Features

  • Linear compositing and spectral blending (pigment).
  • Layer views.
  • Brush strokes dependent on view rotation and view zoom.
  • Additional symmetry modes: vertical, vertical+horizontal, rotational, snowflake.
  • Expanded flood fill functionality: offset, feather, gap detection and more.
  • New brush settings: offsets, gridmap, additional smudge settings, posterize, pigment.
  • New brush inputs: barrel rotation, base radius, zoom level, gridmap x/y, direction 360, attack angle.

See the change log for more.


For Linux users, the appimage files should work fine on both fairly old (~6 years) and new distros alike.
For Windows users, it is strongly recommended to uninstall any old versions of MyPaint you have installed on your system before installing the new one.


This is a condensed list of changes since 1.2.1.

  • Full Python3 support (Python2 still supported)
  • Tons of style consistency updates (flake8).
  • Switch to PyGI
  • New ability to simplify nodes in Inking tool.
  • New ability to delete autosaves from recovery dialog.
  • Improved user messages.
  • Scratchpad no longer scrolls on size changes
  • Integrated bug reporting w. issue template
  • Use external libmypaint (>= 1.5).
  • Most (possibly all) IO uses context managers.
  • Layer manipulability dependent on visibility.
  • Brush description shown in tooltip in quick choice dialog.
  • AppImage builds added.
  • Move build to setuptools/distutils.
  • New keyboard shortcuts/defaults.
  • New symmetry modes (vertical, vert+horz, rotational, snowflake).
  • Flatpak support added (currently not functional?).
  • Maximum input mapping curve points increased to 64.
  • Curve editor points snaps on 0.5 increments.
  • Input curve reset button clears the graph.
  • New Import Layers feature.
  • Zoom and view-rotation-dependent painting.
  • New debug command: Vacuum Empty Tiles.
  • Progress feedback for loading/saving.
  • New Layer Properties dialog.
  • New separate H/C/Y pickers.
  • Per-document settings.
  • New Layer Views.
  • Layer rendering code reworked.
  • New Remove Layer Backdrop command.
  • New Refactor Layer Group commands.
  • Linear compositing.
  • Spectral mixing (pigment mode).
  • Ability to emulate inputs with modifier keys.
  • Support for barrel rotation input.
  • Floodfill performance improved.
  • Offset, feathering and gap detection added to Floodfill.
  • Source, blend mode and opacity added to Floodfill.
  • Erase / Lock Alpha / Colorize modes respected by Floodfill.
  • Floodfill is now cancellable.
  • Configurable layer blinking on layer switching.
  • Fix crash when moving empty layer group.
  • Interface language configurable in user preferences.
  • Add version info to .ora files and compatibility checks.
  • Bundled backgrounds optimized for size.
  • Lots of bugs, crashers and other annoyances fixed.

Known issues

There are still plenty of input issues on Windows, ranging from offset bugs when using multiple monitors, to pressure not working with certain devices and generally worse support for some of the more advanced features, like external editing. Some of these issues will hopefully be resolved by fixing instances where deprecated interfaces are used, but if they are not, the situation is unlikely to change unless a Windows-using developer joins the team to investigate the underlying issues.

Moving forward

The next minor release will focus on fixing the use of deprecated interfaces, as well as general improvements to the user interface, hopefully alongside general performance improvements (particularly for the spectral blending) and some new features as well.

Dependencies & Packaging

This release requires libmypaint >= 1.5.0 and mypaint-brushes-2.0.2 (technically v2.0.0 and v2.0.1 will work as well, but do use v2.0.2)

Note that this is different from the master branch, which requires the libmypaint-2.0 dev library.

See for the other dependencies.

MyPaint now uses setuptools for its build, but cannot be built/distributed as a pip package (at least not easily). This may change in the future, but would/will require a fair amount of restructuring.

The astute observer will notice that the source package for v1.2.1 was over 36MB, whereas the one for v2.0.0 is just under 7MB. This is not a packaging mistake, but merely (mostly) a consequence of a culling and optimization effort of the bundled backgrounds (png files).