RSS/Atom feed Twitter
Site is read-only, email is disabled

[Demo] Porting MyPaint brush engines to the GIMP.

This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

22 of 22 messages available
Toggle history

Please log in to manage your subscriptions.

[Demo] Porting MyPaint brush engines to the GIMP. sigetch 30 Apr 08:31
  [Demo] Porting MyPaint brush engines to the GIMP. Marco Ciampa 30 Apr 08:40
   [Demo] Porting MyPaint brush engines to the GIMP. Alexandre Prokoudine 30 Apr 09:06
    [Demo] Porting MyPaint brush engines to the GIMP. Michael Natterer 30 Apr 16:46
  [Demo] Porting MyPaint brush engines to the GIMP. gfxuser 30 Apr 09:13
   [Demo] Porting MyPaint brush engines to the GIMP. Alexandre Prokoudine 30 Apr 09:41
    [Demo] Porting MyPaint brush engines to the GIMP. sigetch 30 Apr 10:29
     [Demo] Porting MyPaint brush engines to the GIMP. peter sikking 30 Apr 11:05
      [Demo] Porting MyPaint brush engines to the GIMP. Michael Natterer 30 Apr 16:45
      [Demo] Porting MyPaint brush engines to the GIMP. Liam R E Quin 01 May 00:22
       [Demo] Porting MyPaint brush engines to the GIMP. David Gowers (kampu) 01 May 09:25
        [Demo] Porting MyPaint brush engines to the GIMP. Tobias Oelgarte 01 May 10:49
         [Demo] Porting MyPaint brush engines to the GIMP. gfxuser 01 May 11:43
          [Demo] Porting MyPaint brush engines to the GIMP. gespertino@gmail.com 01 May 16:19
          [Demo] Porting MyPaint brush engines to the GIMP. sigetch 02 May 16:00
     [Demo] Porting MyPaint brush engines to the GIMP. Kevin Cozens 30 Apr 15:11
      [Demo] Porting MyPaint brush engines to the GIMP. sigetch 30 Apr 15:53
       [Demo] Porting MyPaint brush engines to the GIMP. Tobias Oelgarte 30 Apr 22:53
     [Demo] Porting MyPaint brush engines to the GIMP. Michael Natterer 30 Apr 17:04
   [Demo] Porting MyPaint brush engines to the GIMP. Martin Renold 30 Apr 13:33
  [Demo] Porting MyPaint brush engines to the GIMP. Dima Ursu 02 May 09:43
   [Demo] Porting MyPaint brush engines to the GIMP. Liam R E Quin 02 May 18:31
sigetch
2012-04-30 08:31:26 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

Hi, all.

I'm currently working on porting of the MyPaint brush engine to the gimp 2.7.5 branch.
It's under heavy development yet, but some functions already work. You can see some demonstration video at youtube. [Demo]
http://www.youtube.com/watch?v=hzUwPF1_6H8

If you're interested in the current preview of this work, check out the source code at following site. http://git.sourceforge.jp/view?p=gimp-painter/gimp-painter-2.7.git

I tested the source code on Ubuntu 10.04, but maybe you have to install newer libraries
manually in order to have the latest version of the gimp to work.

In addition, source code in currently git repository has some troubles to compile...
(You should add "register_mypaint_brush_select_procs" manually to app/pdb/internal-procs.h)

Please feel free to talk with me by mail or by chat if you like it.

Regards, --
sigetch

Marco Ciampa
2012-04-30 08:40:22 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

On Mon, Apr 30, 2012 at 05:31:26PM +0900, sigetch wrote:

Hi, all.

I'm currently working on porting of the MyPaint brush engine to the gimp 2.7.5 branch.
It's under heavy development yet, but some functions already work. You can see some demonstration video at youtube. [Demo]
http://www.youtube.com/watch?v=hzUwPF1_6H8

If you're interested in the current preview of this work, check out the source code at following site. http://git.sourceforge.jp/view?p=gimp-painter/gimp-painter-2.7.git

I tested the source code on Ubuntu 10.04, but maybe you have to install newer libraries
manually in order to have the latest version of the gimp to work.

In addition, source code in currently git repository has some troubles to compile...
(You should add "register_mypaint_brush_select_procs" manually to app/pdb/internal-procs.h)

Please feel free to talk with me by mail or by chat if you like it.

That is simply GREAT! Have you tested it with Ubuntu 12.04? That is the latest LTS...

Alexandre Prokoudine
2012-04-30 09:06:58 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

On Mon, Apr 30, 2012 at 12:40 PM, Marco Ciampa wrote:

I'm currently working on porting of the MyPaint brush engine to the gimp 2.7.5 branch.

That is simply GREAT! Have you tested it with Ubuntu 12.04? That is the latest LTS...

I don't want to spoil the party, but if this is not based on GEGL's painting engine, then it's not going to become part of GIMP. The old core is gone. There's no point developing anything new on top of it.

Alexandre Prokoudine http://libregraphicsworld.org

gfxuser
2012-04-30 09:13:00 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

I'm currently working on porting of the MyPaint brush engine to the gimp 2.7.5 branch.
It's under heavy development yet, but some functions already work. You can see some demonstration video at youtube. [Demo]
http://www.youtube.com/watch?v=hzUwPF1_6H8

Really nice and awesome!
What makes these brushes different to the GIMP brushes with 2.8 dynamic options?
Are they some kind of procedural brushes like this: http://celarek.at/2012/01/lindenmayer-brush-for-krita/?

Best regards grafxuser

Alexandre Prokoudine
2012-04-30 09:41:02 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

On Mon, Apr 30, 2012 at 1:13 PM, gfxuser wrote:

What makes these brushes different to the GIMP brushes with 2.8 dynamic options?

It's more options that makes it :)

Install MyPaint and have a look at the advanced options dialog. You'll see it.

Alexandre Prokoudine http://libregraphicsworld.org

sigetch
2012-04-30 10:29:33 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

2012/4/30 Alexandre Prokoudine :

On Mon, Apr 30, 2012 at 1:13 PM, gfxuser wrote:

What makes these brushes different to the GIMP brushes with 2.8 dynamic options?

It's more options that makes it :)

Install MyPaint and have a look at the advanced options dialog. You'll see it.

MyPaint brush engine has three four advantages:

1. Its back-end has simple "replace-alpha" operations. Current paint-brush has no such operations. (Only some tools like smudge tools has such operations.)

2. It has 9 inputs, 42 setting parameters, and 30 internal states to determine the timing, position, size, color, and blend mode. while the dynamics has 7 inputs, 11 setting parameters, and no internal states. MyPaint brush engine can produce more various output.

3. All parameters are defined as brush parameters, while in gimp, those parameters are not managed in one object, brush dynamics and tool options manages some of those parameters.

4. Its implementation is very simple and well designed. This is the most important things for developers!

And It has some disadvantages:

1. Currently its core supports ellipse dab mask only. (That means no pixmap brushes.)

2. It only supports "incremental" painting mode.

3. It lacks paint mode at all. (But who uses the painting mode of the paint brush?)

Finally, both MyPaint and the GIMP lacks:

1. Texture features, which is very common for other painting softwares. --
sigetch

peter sikking
2012-04-30 11:05:09 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

sigetch wrote:

MyPaint brush engine has three four advantages:

2. It has 9 inputs, 42 setting parameters, and 30 internal states to determine the timing, position, size, color, and blend mode.

nice for you, but for users I would swear that this should show up on the disadvantages list.

3. All parameters are defined as brush parameters, while in gimp, those parameters are not managed in one object, brush dynamics and tool options manages some of those parameters.

true, presets management in painting is a mess right now.

4. Its implementation is very simple and well designed. This is the most important things for developers!

...but one million users do not care.

And It has some disadvantages:

3. It lacks paint mode at all. (But who uses the painting mode of the paint brush?)

can I point out the vision of the GIMP team?

within GIMP painting is _part of_ image manipulation, that's why it is so general purpose and must have the modes. painting is never an objective in itself in GIMP. here GIMP is 100% different from krita, or mypaint.

of course when you want to make your painting engine an extension to GIMP, and distribute it separately, you can do whatever want. it is a free/libre world.

if you are aiming to get your engine _inside_ GIMP and have it in its standard distribution, then your technology (which seems to be your focus) must be adopted to the GIMP vision (see above), be adopted to the new technical architecture of GIMP (see GEGL) and fit the interaction architecture of GIMP (no giant panel with 42 big sliders; adapt to the tool options, integrate (how?) with the paint tools, etc).

this can all be done, but takes strategic thinking and then a lot of design work (technical and interaction) before development makes sense.

so you have to ask yourself which route you want to take,

--ps

founder + principal interaction architect man + machine interface works

http://blog.mmiworks.net: on interaction architecture

Martin Renold
2012-04-30 13:33:39 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

On Mon, Apr 30, 2012 at 11:13:00AM +0200, gfxuser wrote:

I'm currently working on porting of the MyPaint brush engine to the gimp 2.7.5 branch.

What makes these brushes different to the GIMP brushes with 2.8 dynamic options?

Probably not much that wouldn't come as a natural addition to GIMP's existing dynamics now.

I'll touch one aspect on Thursday in Wien :-)

If you are in Wien, Ramn Miranda is also a good person to ask this question, he has much experience with brushes in both GIMP and MyPaint.

Are they some kind of procedural brushes like this: http://celarek.at/2012/01/lindenmayer-brush-for-krita/?

There is basic support for some procedural patterns, and I had plans (and git branches) for more; but it's certainly not a key strength of brushlib.

Martin Renold
_______________________________________________
gimp-developer-list mailing list
gimp-developer-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gimp-developer-list
Kevin Cozens
2012-04-30 15:11:11 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

On 12-04-30 06:29 AM, sigetch wrote:

2. It has 9 inputs, 42 setting parameters, and 30 internal states to determine the timing, position, size, color, and blend mode. while the dynamics has 7 inputs, 11 setting parameters, and no internal states.

On the surface it sounds like its more flexible than what GIMP currently has but it also seems as if it could be a bit overwhelming to a user with 9 inputs and 42 settings.

What is an input vs. a setting? Do all brushes have 42 settings or is that the total across all brushes? What is the maximum number of settings a user would see for a selected brush?

The testers are going to hate you. With so many inputs, settings, and states it will be a bit of a nightmare to make sure every combination has been tested and is working properly.

sigetch
2012-04-30 15:53:40 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

2012/5/1 Kevin Cozens :

On 12-04-30 06:29 AM, sigetch wrote:

2. It has 9 inputs, 42 setting parameters, and 30 internal states to determine the timing, position, size, color, and blend mode. while the dynamics has 7 inputs, 11 setting parameters, and no internal states.

On the surface it sounds like its more flexible than what GIMP currently has but it also seems as if it could be a bit overwhelming to a user with 9 inputs and 42 settings.

What is an input vs. a setting? Do all brushes have 42 settings or is that the total across all brushes? What is the maximum number of settings a user would see for a selected brush?

The testers are going to hate you. With so many inputs, settings, and states it will be a bit of a nightmare to make sure every combination has been tested and is working properly.

All you have to do is to download the MyPaint, try it, and see how the parameters are
handled. Basically they are hidden from users because "Brushes" has many presets,
and users can tweak only few key parameters in simple parameter setting popup dialog.
And users can still tweak all parameters from another complex parameter editor dialog.

While in current snapshot of the GIMP, Parameters are scattered over dynamics presets and tool options presets. To make it worse, changing the value of the dynamics directly affect other tool presets which shares dynamics presets.
You should take carefully the dynamics and tool options, and you should know how those
parameters related with each other. It is too complicated than the handling in MyPaint.
--
sigetch

Michael Natterer
2012-04-30 16:45:03 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

Peter,

somebody comes up with a huge improvement over the current stuff in GIMP, and all you have to say is:

"nice for you, but for users I would swear that this should show up on the disadvantages list."

"...but one million users do not care."

"can I point out the vision of the GIMP team?"

I don't know who that "GIMP team" is, but my vision is that we encourage new development like this, and not put an end to it with mails such as yours.

Of course things have to be evaluated, implemented in GEGL, designed and whatnot, but can we please not respond in a "this sucks" tone? Thank you.

Sigtech: I *strongly* encourage you to please go on, and if you could port it to goat-invasion that would be great, it's not that different from master.

Regards, and let's discuss more reasonable approaches to *collaborative* development in Vienna,

--mitch

On Mon, 2012-04-30 at 13:05 +0200, peter sikking wrote:

sigetch wrote:

MyPaint brush engine has three four advantages:

2. It has 9 inputs, 42 setting parameters, and 30 internal states to determine the timing, position, size, color, and blend mode.

nice for you, but for users I would swear that this should show up on the disadvantages list.

3. All parameters are defined as brush parameters, while in gimp, those parameters are not managed in one object, brush dynamics and tool options manages some of those parameters.

true, presets management in painting is a mess right now.

4. Its implementation is very simple and well designed. This is the most important things for developers!

...but one million users do not care.

And It has some disadvantages:

3. It lacks paint mode at all. (But who uses the painting mode of the paint brush?)

can I point out the vision of the GIMP team?

within GIMP painting is _part of_ image manipulation, that's why it is so general purpose and must have the modes. painting is never an objective in itself in GIMP. here GIMP is 100% different from krita, or mypaint.

of course when you want to make your painting engine an extension to GIMP, and distribute it separately, you can do whatever want. it is a free/libre world.

if you are aiming to get your engine _inside_ GIMP and have it in its standard distribution, then your technology (which seems to be your focus) must be adopted to the GIMP vision (see above), be adopted to the new technical architecture of GIMP (see GEGL) and fit the interaction architecture of GIMP (no giant panel with 42 big sliders; adapt to the tool options, integrate (how?) with the paint tools, etc).

this can all be done, but takes strategic thinking and then a lot of design work (technical and interaction) before development makes sense.

so you have to ask yourself which route you want to take,

--ps

founder + principal interaction architect man + machine interface works

http://blog.mmiworks.net: on interaction architecture

_______________________________________________ gimp-developer-list mailing list
gimp-developer-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gimp-developer-list

Michael Natterer
2012-04-30 16:46:24 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

On Mon, 2012-04-30 at 13:06 +0400, Alexandre Prokoudine wrote:

On Mon, Apr 30, 2012 at 12:40 PM, Marco Ciampa wrote:

I'm currently working on porting of the MyPaint brush engine to the gimp 2.7.5 branch.

That is simply GREAT! Have you tested it with Ubuntu 12.04? That is the latest LTS...

I don't want to spoil the party, but if this is not based on GEGL's painting engine, then it's not going to become part of GIMP. The old core is gone. There's no point developing anything new on top of it.

The GEGL-ized paint core is almost the same, there is no GEGL paint core, just the good old one ported to GEGL.

--Mitch

Michael Natterer
2012-04-30 17:04:46 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

On Mon, 2012-04-30 at 19:29 +0900, sigetch wrote:

2012/4/30 Alexandre Prokoudine :

On Mon, Apr 30, 2012 at 1:13 PM, gfxuser wrote:

What makes these brushes different to the GIMP brushes with 2.8 dynamic options?

It's more options that makes it :)

Install MyPaint and have a look at the advanced options dialog. You'll see it.

MyPaint brush engine has three four advantages:

1. Its back-end has simple "replace-alpha" operations. Current paint-brush has no such operations. (Only some tools like smudge tools has such operations.)

2. It has 9 inputs, 42 setting parameters, and 30 internal states to determine the timing, position, size, color, and blend mode. while the dynamics has 7 inputs, 11 setting parameters, and no internal states. MyPaint brush engine can produce more various output.

3. All parameters are defined as brush parameters, while in gimp, those parameters are not managed in one object, brush dynamics and tool options manages some of those parameters.

4. Its implementation is very simple and well designed. This is the most important things for developers!

I haven't looked at the code yet, would you mind to come to #gimp on irc.gimp.org to talk about the implementation?

And It has some disadvantages:

1. Currently its core supports ellipse dab mask only. (That means no pixmap brushes.)

2. It only supports "incremental" painting mode.

3. It lacks paint mode at all. (But who uses the painting mode of the paint brush?)

That sounds like you wrote a completely new paint core for it? Or did you just subclass GimpPaintCore, avoiding GimpBrushCore?

You must use some standard way of applying the paint to the drawable, which is most likely gimp_drawable_apply_region()? It's probably no problem to get layer modes there.

I should actually look at the code :)

Regards, --Mitch

Tobias Oelgarte
2012-04-30 22:53:17 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

Am 30.04.2012 17:53, schrieb sigetch:

2012/5/1 Kevin Cozens:

On 12-04-30 06:29 AM, sigetch wrote:

2. It has 9 inputs, 42 setting parameters, and 30 internal states to determine the timing, position, size, color, and blend mode. while the dynamics has 7 inputs, 11 setting parameters, and no internal states.

On the surface it sounds like its more flexible than what GIMP currently has but it also seems as if it could be a bit overwhelming to a user with 9 inputs and 42 settings.

What is an input vs. a setting? Do all brushes have 42 settings or is that the total across all brushes? What is the maximum number of settings a user would see for a selected brush?

The testers are going to hate you. With so many inputs, settings, and states it will be a bit of a nightmare to make sure every combination has been tested and is working properly.

All you have to do is to download the MyPaint, try it, and see how the parameters are
handled. Basically they are hidden from users because "Brushes" has many presets,
and users can tweak only few key parameters in simple parameter setting popup dialog.
And users can still tweak all parameters from another complex parameter editor dialog.

While in current snapshot of the GIMP, Parameters are scattered over dynamics presets and tool options presets. To make it worse, changing the value of the dynamics directly affect other tool presets which shares dynamics presets.
You should take carefully the dynamics and tool options, and you should know how those
parameters related with each other. It is too complicated than the handling in MyPaint.
--
sigetch
_______________________________________________ gimp-developer-list mailing list
gimp-developer-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gimp-developer-list

I have to agree. The current dynamics in Gimp, compared to MyPaint, are really ugly. I switched to MyPaint for drawings half a year ago and sometimes i try to use Gimp more or less the same way (for painting). But usually I'm scared away in not longer then ten minutes and happy to use MyPaint instead, even for small tasks.

The things that where most annoying in Gimp are:

1. There are no real presets for brushes. Every time you want to use another type of brush you have to reconfigure it again for the task. This is a time killer.

2. Even if I take the time to configure a "brush" I only have very limited options and flexibility. Not much result for the effort.

3. Gimp is really slow at drawing. I don't know what it does in the background, but the brushes feel slow, especially with a tablet. Got even slower with soon to be 2.8 compared to 2.6.

Overall I might add that Gimp inherited the worst possible combination for someone that wants to use Gimp for painting. As a painter I'm used to switch from one "tool/brush" to the other to get the desired effect - the same effect, immediately. Additionally I want to fine tune my presets, store them and reuse them. Nothing of that is possible, going way against the natural work flow of an artist.

For me Gimp is a rusty Swiss Knife for images, but not a drawing program any more (the standards improved). Hard words. I know. But this is how I see it. Gimp should really concentrate to improve usability by making things easy/quick to use. For example: In MyPaint i can switch to my previously used brush/tool with one click or press on the tablet. In Gimp my first action is to scroll to the brush list. Selecting it by mouse click, adjusting the parameters, restoring the dynamics, ... and after 2 Minutes I have roughly what I need and forgotten what I wanted to do with it.

Greetings from
Tobias Oelgarte

Liam R E Quin
2012-05-01 00:22:35 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

On Mon, 2012-04-30 at 13:05 +0200, peter sikking wrote: [...]

4. Its implementation is very simple and well designed. This is the most important things for developers!

...but one million users do not care.

They do if people stop working on GIMP.

So, there are several parts here. (1) the user experience;
(2) the technology (the C/C++ library) and how easy it is to maintain and enhance;
(3) the API between GIMP and the technology.

I don't think there's any question that the mypaint brush editor user experience could easily be improved. Heck, it would be improved by having some categories, whether as tabs or just headings/groups -- colour, shape, opacity, motion, and so on.

I also don't think GIMP's brush interface is perfect. It's a lot better than it used to be, but it's still not very streamlined.

It's for sure true that painting in GIMP is slower than it used to be. Clearing the Undo History every now and then gives a dramatic speedup, at last with the older 2.7 preview I'm using, and profiling suggests there's an O(n^2) list insertion going on, although it's hard to understand why that shouldn't be a matter of microseconds, not a noticeable fraction of a second.

The gimp brush outline rendering-in-the-idle-loop also makes painting _feel_ much slower than it is.

I remember dealing with this in the past in another application by discarding motion events if the pointer got too far behind. It meant that the drawing became less accurate, but once the pointer outline isn't where you're drawing, there's no accuracy in any case.

Getting a shared core with MyPaint might be really interesting - and the user interface doesn't need to be the same in both programs.

Liam

David Gowers (kampu)
2012-05-01 09:25:38 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

Hi Liam,

On Tue, May 1, 2012 at 9:52 AM, Liam R E Quin wrote:

On Mon, 2012-04-30 at 13:05 +0200, peter sikking wrote: [...]

4. Its implementation is very simple and well designed. This is the most important things for developers!

...but one million users do not care.

They do if people stop working on GIMP.

So, there are several parts here. (1) the user experience;
(2) the technology (the C/C++ library) and how easy it is to maintain and enhance;
(3) the API between GIMP and the technology.

I don't think there's any question that the mypaint brush editor user experience could easily be improved. Heck, it would be improved by having some categories, whether as tabs or just headings/groups -- colour, shape, opacity, motion, and so on.

This is already the case. And I find it does make things much easier to deal with.

I also don't think GIMP's brush interface is perfect. It's a lot better than it used to be, but it's still not very streamlined.

Yes, they both suffer from the difficulty of providing ready access to all those different curves. Even though the MyPaint approach of showing all the curves for an output at once is greedy of screen space, I find it more usable than GIMP's one-curve-at-once approach.

It's for sure true that painting in GIMP is slower than it used to be. Clearing the Undo History every now and then gives a dramatic speedup, at least with the older 2.7 preview I'm using, and profiling suggests there's an O(n^2) list insertion going on, although it's hard to understand why that shouldn't be a matter of microseconds, not a noticeable fraction of a second.

Yes, GIMP is definitely weak compared to MyPaint WRT both painting performance and painting quality/ expressiveness.

The gimp brush outline rendering-in-the-idle-loop also makes painting _feel_ much slower than it is.

I'd still like it if we could get some kind of very simplified outline drawing. (say, 8 points -- the most distant pixels from the center where alpha > threshold, along each of the right angles and 45degree diagonals). Then, we could use the simplified version during drawing, and the full version during 'hovering' (before the button is depressed)

I remember dealing with this in the past in another application by discarding motion events if the pointer got too far behind. It meant that the drawing became less accurate, but once the pointer outline isn't where you're drawing, there's no accuracy in any case.

.. Is that really true? (eg. with a tablet)

Getting a shared core with MyPaint might be really interesting - and the user interface doesn't need to be the same in both programs.

Liam

gimp-developer-list mailing list
gimp-developer-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gimp-developer-list
Tobias Oelgarte
2012-05-01 10:49:03 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

Am 01.05.2012 11:25, schrieb David Gowers (kampu):

I also don't think GIMP's brush interface is perfect. It's a lot better than it used to be, but it's still not very streamlined.

Yes, they both suffer from the difficulty of providing ready access to all those different curves. Even though the MyPaint approach of showing all the curves for an output at once is greedy of screen space, I find it more usable than GIMP's one-curve-at-once approach.

In MyPaint you don't need to access the advanced brush editor very often. You have a lot of good presets and all you need to do is to adjust two or three settings, which have hotkeys and are easy to reach. For the user it means that he doesn't have to bother much about all this amount of settings. If wanted, then he can fine tune them, otherwise the provided brushes are already very sufficient for most tasks.

In Gimp on the other hand you don't have such presets and you start every time from scratch to design the brush again and again that you used previously. An excellent way to kill time without progress and desired result. :-(

It's not about the settings of the brush itself, it's about reusing brushes and their corresponding settings. For example: I use a knife to add color to a painting, then i use a knife without color to refine details and then i use the knife with color again. Switching between the two brushes can be done in MyPaint with one click or hotkey. But what will you do in Gimp?

It's for sure true that painting in GIMP is slower than it used to be. Clearing the Undo History every now and then gives a dramatic speedup, at least with the older 2.7 preview I'm using, and profiling suggests there's an O(n^2) list insertion going on, although it's hard to understand why that shouldn't be a matter of microseconds, not a noticeable fraction of a second.

Yes, GIMP is definitely weak compared to MyPaint WRT both painting performance and painting quality/ expressiveness.

So sad, but true.

The gimp brush outline rendering-in-the-idle-loop also makes painting _feel_ much slower than it is.

I'd still like it if we could get some kind of very simplified outline drawing. (say, 8 points -- the most distant pixels from the center where alpha> threshold, along each of the right angles and 45degree diagonals). Then, we could use the simplified version during drawing, and the full version during 'hovering' (before the button is depressed)

Good idea. That the brush circle is so sloppy really irritates from drawing, not seeing where you really are.

I remember dealing with this in the past in another application by discarding motion events if the pointer got too far behind. It meant that the drawing became less accurate, but once the pointer outline isn't where you're drawing, there's no accuracy in any case.

.. Is that really true? (eg. with a tablet)

It will be delayed, but the curve will contain all dots. The main problem for painting is performance. If it isn't very responsive then you don't have a good feeling what is going on. Especially with a tablet.

gfxuser
2012-05-01 11:43:42 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

Hi,

In Gimp on the other hand you don't have such presets and you start every time from scratch to design the brush again and again that you used previously. An excellent way to kill time without progress and desired result. :-(

It's not about the settings of the brush itself, it's about reusing brushes and their corresponding settings. For example: I use a knife to add color to a painting, then i use a knife without color to refine details and then i use the knife with color again. Switching between the two brushes can be done in MyPaint with one click or hotkey. But what will you do in Gimp?

have you heard of GIMPs already existing abilities to save and load presets? They are in version 2.6.12, but they have already been for longer time in GIMP.
You find them at the bottom of each tools' window, like the brush dialog. There are disc icons to save, load, delete and reset tool presets. The stored settings contain the particular tool settings as well as the color. I just tried it out. Also the small triangle icon in the upper right corner of the tools dialogs offers these abilities. There are also many ready-to-use tool presets and brushes for instance at
http://browse.deviantart.com/resources/applications/gimpbrushes/?order=9, which can be very useful.
What I was missing in the past were predefined presets out of the box, shipping with GIMP, but this will change in 2.8. Version 2.8RC1 has a reworked preset system: GIMP will ship with some presets, some reworked painting brushes and a preset window like Photoshop's 'Tool presets' window. I still haven't found a way to activate a particular preset by using a hotkey, but you can bind the new Preset window to a keyboard shortcut.

That the brush circle is so sloppy really irritates from drawing, not seeing where you really are.

Version 2.6.11 on my Windows system works fine in this point. For 2.8RC1 on Windows and 2.6.12 on OS X I have to agree with you.

Best regards,

grafxuser

gespertino@gmail.com
2012-05-01 16:19:32 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

There has been a discussion related to some of the changes in painting tools in a post from Alexia Death at Google+ (It covers some of the issues pointed by Liam R E Quin)
https://plus.google.com/101840139629119053722/posts/43mccHvyyor It's marked as public, so I guess it's fine to share it here.

I think it's an interesting topic to dicuss at LGM.

Dima Ursu
2012-05-02 09:43:03 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

very cool...I like very much the way of painting from mypaint... and how you can customize brushes with those parameters...

by the way...is gimp going to borrow some memory management from mypaint? I worked with a .png of 15 000 px X 8000 px, on my computer with 2 gb ram,
and it works smoothly in mypaint, but gimp eats all my ram, and all the swap space. I don't know how mypaint achieves this, but I think it's very cool...and useful...

And I have another question: Is Gimp going to use in the future the .ora format, or it will remain to the .xcf?

sigetch
2012-05-02 16:00:54 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

2012/5/1 gfxuser :

Hi,

It's not about the settings of the brush itself, it's about reusing brushes and their corresponding settings. For example: I use a knife to add color to a painting, then i use a knife without color to refine details and then i use the knife with color again. Switching between the two brushes can be done in MyPaint with one click or hotkey. But what will you do in Gimp?

have you heard of GIMPs already existing abilities to save and load presets? They are in version 2.6.12, but they have already been for longer time in GIMP.
You find them at the bottom of each tools' window, like the brush dialog. There are disc icons to save, load, delete and reset tool presets. The stored settings contain the particular tool settings as well as the color. I just tried it out. Also the small triangle icon in the upper right corner of the tools dialogs offers these abilities. There are also many ready-to-use tool presets and brushes for instance at http://browse.deviantart.com/resources/applications/gimpbrushes/?order=9, which can be very useful.

The solution is not so simple. Tool presets works fine until 2.6 series when all brush
dynamics are implemented as a tool options, but since the introduce of dynamics,
you cannot remember and restore all of the presets by tool presets.

For example, assume tool-preset-A and tool-preset-B are sharing same dynamics-A. When you choose tool-preset-A, dynamics-A is selected as its dynamics, then change the value in dynamics-A, and save it. The operation lead to the change of
behavior of tool-preset-B because it also uses dynamics-A.

So, to avoid the confusion, you should separate the dynamics used by tool-preset-A
from one used by tool-preset-B. and when you define the new tool preset, you should
also define the new dynamics too.

I was very annoyed by the complicated tool preset management, and that is one of
the biggest reason to abandon the current dynamics implementation and introduce the MyPaint brushlib into the GIMP.
--
sigetch

Liam R E Quin
2012-05-02 18:31:55 UTC (almost 12 years ago)

[Demo] Porting MyPaint brush engines to the GIMP.

On Wed, 2012-05-02 at 12:43 +0300, Dima Ursu wrote:

by the way...is gimp going to borrow some memory management from mypaint? I worked with a .png of 15 000 px X 8000 px, on my computer with 2 gb ram,
and it works smoothly in mypaint, but gimp eats all my ram, and all the swap space.

I've not had that problem, and often work with images that size or larger. It helps to define the tile cache size (in edit/prefs) to be at least three quarters of available memory, maybe more - e.g. I have it set to 7 gigabytes on an 8G machine. You can also get big speedups by going to the undo history dock and clicking on the "discard undo history" button fairly often.

Is Gimp going to use in the future the .ora format, or it will remain to the .xcf?

Don't know. I'm sure .xcf will continue to be supported as much as possible.

Liam