Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 50 million developers.Sign up
This is a bugfix release for v2.0.0.
For those who primarily use the 2.x mode (the default mode), this is an important upgrade. A color conversion function in the v2.0.0 release has an error that can (and usually will) cause image degradation over multiple save/load cycles. Big thanks to gwojcik for noticing and fixing this. The 1.x mode has not been affected by this.
v2.0.1 requires libmypaint v1.6.0 or higher to run. This is not something Windows users or Appimage users have to worry about.
- HSV/HCY brush dynamics in 2.x mode fixed.
- Undo/Redo stack size made configurable and more efficient.
- Undo/Redo stack default size increased to 40.
- Rounding error when saving files in 2.x mode fixed.
- Invalid l11n strings fixed.
- Translated strings added/updated for several languages.
- Dependency on intltool removed (still required for libmypaint).
- Variables in l11n strings validated on build (xml tags are not validated yet, however).
- libmypaint translations are now bound, making them work properly in the appimages.
- OARS rating added to appdata (relevant for app-distribution software, but not much else).
- A number of Py3 compatibility issues were fixed.
- Svg icons fixed - some were previously considered invalid by librsvg >= 2.48.
- Svg icon sizes reduced across the board.
- Windows build now uses openmp, which should improve performance on most systems.
- Size of Windows install bundle significantly reduced. (installed size by ~50%, bundle size by ~70% for installers)
- Size of AppImage files reduced by ~9MB
- AppImages now handle external editing better (no longer overrides the host environment for the launched programs)
- Typos in documentation fixed (not user-facing typos).
The smaller AppImage bundles have been confirmed to run on clean installs of the following systems:
- Ubuntu 14.04, 16.04, 18.04
- Fedora 30
- Manjaro 20
- CentOS 7
- OpenSUSE Leap 15.1
- Debian sid (for the day of the release)
- Slacko Puppy Linux 6.3.2
If they do not run, or are otherwise buggy on your <6 year old distro, open an issue in the tracker.
Additionally, you can try the MyPaint-v2.0.1-alt.AppImage if the smaller ones do not run on your system.
See Changelog.md in the source archive for details.
For packagers: Note that v2.0.1 will require libmypaint >= v1.6.0 to build/run.
Windows users and appimage users don't need to worry about that.
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.
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.
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
Note that this is different from the master branch, which requires the
libmypaint-2.0 dev library.
BUILDING.md 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).
The road to the release
At long last, we're moving into beta, meaning that no more features will be added before the 2.0.0 release, and no translatable source strings will be added or changed (unless absolutely necessary, if a source string turns out to be completely wrong).
This is now the best time to contribute to the translation effort over at Weblate. Translation is not easy, and should not be rushed. It doesn't matter if the translation covers 100% of the strings if 90% of the translations are incomprehensible or confusing. It's better to spend more time to try to make the translations consistent, and as clear as possible (while being reasonably terse, I did say it wasn't easy, right?). We aim for a full release at the end of January, so there are at least five weeks available to work on translations.
If the meaning of a source string is ambiguous, or generally lacking context/clarity, make a comment for that string in the Weblate interface. Make sure that the scope is set to "Source string comment, ..." so we can see it. Even though we won't add or change source strings, we can add source string comments to provide more information to translators.
We don't expect the (many) new languages that have been added to be fully or even partially translated in time for the release (aimed for the end of January 2020), but hope that most of the older major translation will be updated and improved (most of them are at least 75% done, string-wise). The languages that have been continuously updated during the past 5 months have less than 30 new strings that need to be translated.
Apart from the translations, the goal is now to find and fix any bugs we can fix (generally this does not cover input bugs on Windows, unfortunately). If you find a bug *, search for it on the tracker. If you find it on the tracker, make a comment to indicate that it's still a problem, and if you do not find it, report it in a new issue.
* That is, an actual bug - something that does not work, causes an exception or crashes the program - and not missing features you would like to have (for that, you can request/discuss/vote for features on the forums). Do report input bugs, even though we may not be able to fix them for this release.
Changes since alpha 13
Anyone who has used the prereleases knows that the 2.0 release brings with it the awesome spectral subtractive color mixing features - allowing colors to mix more like real paint would. They may also have noticed that their old files don't look quite the same when opened with those prereleases, and that painting can be a bit laggy when working with high resolutions.
In order to support working with old files, and for those who don't really need the new color blending (though you should try it out!), MyPaint now supports two compatibility modes:
When in 1.x mode (indicated in the window title):
- The rendering mode is the same as in 1.2.1 and earlier (sRGB).
- The default layer is "Normal" (configurable).
- The default Pigment brush setting is off (configurable).
- Spectral blending (pigment mode) will not work quite as it should.
When in 2.x mode (default, configurable):
- The rendering is adapted for the spectral blending (Linear sRGB + non-linear blending).
- The default layer is "Pigment" (configurable).
- The default Pigment brush setting is on (configurable).
- Painting will be slower *
Each document keeps track of which mode it was using when it is saved, but it's also possible to override that mode when opening files. For old documents, which do not have the mode information stored, the mode used can be configured to either be one of "1.x" and "2.x" or opening in "1.x" unless there are Pigment layers present (from files saved in 2.0.0 alphas).
* This will almost certainly be addressed in the future. @briend has already made an experimental branch with drastically improved performance and quality of results. To some extent the spectral blending will always be a bit slower, but it can be made a lot faster than it is today
- The new brush settings are now properly categorized. You will no longer see the "Experimental" group, and can find the new settings under the "Color" and "Smudge" categories.
- Painting with the new symmetry modes is a lot faster. The entire area is no longer processed, avoiding the quadratic slowdown. Symmetry mode can still be slow when using the line/curve/ellipse modes, but that might be addressed in time for 2.0. Nevertheless, bear in mind that it will always be slower to paint with more symmetry lines - using e.g. 12 lines with the snowflake symmetry mode is the equivalent of painting a stroke that's 24x as long as the distance of your actual stroke.
- Version information and compatibility warnings have been added, warning when attempting to open a file created with a newer version of MyPaint. There are two separate warnings shown for different levels of incompatibility, they can be disabled separately (and of course, you won't be able to see them at all until future releases).
- Python 3 is now used for the Windows build *.
- Preparations for adjustable symmetry angles - unfortunately this won't be part of the 2.0 release, but will be ready for 2.1.
* In just 11 short days, Python 2.7 will be EOL. In general we'll keep supporting Python 2.7 for MyPaint 2.0 and probably 2.1, but support will be dropped for the 2.2 release (so the code can be cleaned up).
Changes Since the Last Alpha
- Translations - tons of translated strings have been merged - check out https://hosted.weblate.org/projects/mypaint/mypaint/ if you want to help out by contributing to your own language's missing or outdated translations.
- Language selection - you can now select the language you want to use from the preferences window under the "View" tab. The alpha releases ship with all translations, so beware that a lot of them are incomplete.
- Floodfill - some bug fixes, ability to use arbitrary blend modes, adjustable opacity, colorize mode
- Layer blink option - showing layers in isolation for a brief time period, when changing or selecting them, is now optional.
- AppImage improvements - the appimages will now work out of the box on Ubuntu 14.04 and later. If they don't work on your distro (preferably not-too-obscure or older than 2015), create an issue in the tracker (after a quick search in it for your problem). The issues with themes and icons should also be resolved, and gtk localizations are now fully supported.
The latest appimage builds (based on the latest error-free commit) can always be found here.
- 32bit builds for Windows are back (though the demand is probably not that high).
- Some crash fixes in both MyPaint and libmypaint
- Fixes for some cosmetic bugs (frame window outline, some text formatting glitches)
- Wayland GUI freeze workaround added (MyPaint will just try to use XWayland for now).
- Fixes for a bunch of Gtk deprecations (should not make any difference for users).
- ...and a fair amount of administrative and build-related stuff that should improve the dev experience.
Attention Windows Users!
We've switched the standalone archives from ordinary zip to 7z, so you'll need some archiving program to decompress them (I would recommend https://www.7-zip.org/).
If you really want to use the installers instead, you can download them here:
These links are only valid for six months, but the full release should be out by then anyway.
Also, if you are a developer who likes MyPaint and also happens to like and work on Windows, your help with some of our windows-only bugs (and there are quite a few) would be most welcome! There are also Windows-only issues related to the external-edit functionality that could be improved with input from an expert on how Windows handles default applications, application candidates and similar. These problems will unfortunately not fix themselves.
This pre-release adds some really cool flood-fill enhancements from @jplloyd
Please give the features a try!