![]() Registered Member ![]()
|
Hi, Krita is my favorite program for digital painting, but the brush editor is the one part of Krita that I feel could really use an overhaul. While it's powerful, it's also cluttered and can be difficult to use. I've been considering how it might be be streamlined and simplified the past few days, and since I had the time I made a mock-up of my design.
It consolidates the entire brush editor and all its controls into a single Krita docker, without loosing any functionality, and (at least in my opinion) makes it much more intuitive. Here's the basic interface: ![]() I've got some more images that explain it in detail, but they might make more sense if I first explain what I wanted this design to accomplish: 1) Place related controls together and make the arrangement more intuitive. The arrangement of brush controls in the current brush editor can be confusing sometimes For example, many brush properties are set on the Brush Tip page, but you have to go to a separate page to edit their dynamics curves. It's also not clear without experimentation what the relationship between the initial value slider and the curve is (the initial value becomes the maximum value on the curve). So, for example, if someone tries to make the spacing increase with pen pressure by setting a high value on the curve but they have the spacing slider on the brush tip page set to 0.00, then confusingly, nothing happens. In my redesign I display only the dynamics (pressure, speed, tilt, etc) that are currently being used by each property to save space, and I've placed them directly underneath the brush property being modified, rather than have them on a separate page. This means you don't have to switch between multiple interfaces while editing, and it makes it clear exactly what is modifying each property and how. 2) Consolidate things and hide controls that aren't being used so they don't take up much space. In order to fit the entire set of controls in the brush editor into a single docker, I've divided the brush controls into categories. Categories are displayed in a vertical list and can be expanded/collapsed to save space and display only the controls you need. In my mock-up for the pixel brush engine, I have 4 categories: Basic controls, Additional controls, Texture, and Color. --- Basic controls: Contains the most essential settings that anyone making a brush is going to want to edit. These are: Size, Opacity, Flow, Horiz/Vert Softness, Spacing, Ratio, and Angle. --- Additional controls: Contains Randomness, Density, Sharpness, Scatter, Airbrush rate, and Precision. These are used less commonly than the basic controls. --- Texture: Contains all the controls for making textured brushes. --- Color: Contains the controls related to the brush color. These are: Source, Darken, Mix, Hue, Saturation, and Value. (Most Krita presets I've seen don't use color controls, but they're here if you need them.) Other brush engines will require a different set of brush categories (for example, the Color Smudge engine would have a “Blending” category), but this is the basic idea. Obviously this is a lot of stuff to fit in a single docker, and if you expand all the brush settings vertically it's going to be a really long list, but hopefully being able to hide the categories you aren't using makes it manageable. 3) Make it possible to share brushes just by taking a screenshot of all the settings that people can copy. In Paint Tool Sai (and possibly other paint programs as well), all the brush controls are visible at once without needing to click through various pages to see everything. The advantage to this is that brushes can be shared just by taking a screen shot and posting it on the web. All people have to do to get the brush is just copy the settings themselves. I think this is actually far more useful than it seems. Most importantly, users with limited technical experience may have issues downloading brushes and getting them installed properly. Also, if you just want to share one or two brushes, it can be a hassle to get them exported, find a file hosting site, and get them uploaded. And downloading and installing them can be a similar hassle. Being able to share a screenshot is much easier. So I wanted to make this possible with the Krita brush editor. The custom curves that Krita allows you to use for brush dynamics are one of the main difficulties in doing this. A curve editor just doesn't fit on a single panel, especially when a brush can have several dynamics enabled. Plus it would be tedious to replicate curves from a screenshot. This is why I suggest giving the dynamics controls a selection of stock curves to use. This allows you to choose a curve from a screenshot just by looking at its icon. A few basic curves to choose from and the ability to tweak the minimum Y-value is all the customization most brushes need anyway. And if you do need something more specific, then you can always create a custom curve like before. Here's some additional images showing how everything works: https://i.imgur.com/JkRXJRX.jpg https://i.imgur.com/mUqSR3P.png Obviously this would be a HUGE project with lots of tedious UI programming, so I'm not expecting that this is ever going to happen. That said, I'd love to get some feedback on this, and hopefully some elements of this design end up being useful for future reference. |
![]() KDE Developer ![]()
|
There is a number of reason why the brush editor looks like it does now. We went through a lot of iterations to get to the current one, so the placement of the controls isn't random. It was suggest several times to make it a docker, but the amout of controls simply doesn't fit.
-The size of the editor is tricky. We try to avoid any kind of dialogs that pop up because the cause focus problems and long distances when changing input. The brush editor is already a popup on many system and another layer of popup can cause problems. There are also many cases where we had them and it turn out bad e.g. the list of brush engines was a combobox but after many complains we changed that into a list and that worked much better. -The length of the sliders should be maximized. The sliders used to be smaller, but for tablet users it's easier to control a longer slider so the width of the brush editor was increased to make them longer. -The way the brush engines are organized corresponds to the way the options are divided. Different brushs can have e.g. the brush tip but not every brush offers all the curve options. There are also other brushs that have the size curve, but not the brush tip like spray brush. As you mentioned the amout of work to change the brush editor is huge. It's thousand of lines of code and months and years of work. Beside that all users are used to the current editor and you can't simply change that in an instant. Also all the documentation and training DVD would be outdated. |
![]() Registered Member ![]()
|
Well I can say it is compact for sure, in fact I couldn't find a way to compact it more than what you did... But I personaly feel it is confuse. I will try to explain.
I myself see this: ![]() putting in words it is hard to quick scan, and didn't follow a clear neither left-wright up-down or vice versa order. Myself too I believe that compact is for simple things, that did not have categories with sub categories with groups and subgroups, etc. But the curves idea is really cool and would be interesting in the actual engine interface, as people can be confuse of what curve to choice (tip: it could explain the usability of each curve type). I myself did not participate in Krita development, so this are only opinions... |
![]() Registered Member ![]()
|
Maximized like this? ![]() I initially had all the sliders maximized, but thought it was hard to look at without being overwhelmed. That was on one of my older designs though. Now that I go back and maximize the sliders on my current design, I agree it looks better. Also @romulop, does maximizing the sliders help, or were you talking about the arrangement and order of everything too? (Also @slangkamp, I agree about tablet users needing a longer slider. As an aside, on the current brush editor, some sliders (Spacing for example) are long, but most brush presets only use a very small range of values, so maybe they can be adjusted to make the small values take up a larger portion of the slider (like the size slider).)
For me, having to switch pages constantly while editing brushes is more inconvenient than pop up difficulties (this is personal preference, though). I appreciate all the customization that Krita's brush editor gives you, but given the choice, I would actually sacrifice some of that customization for a smaller, simpler set of controls. I tried Paint Tool Sai recently, and within 5 minutes I already preferred its brush editor to Krita's (which I have spent a lot of time using). Yes, it has far less customization than Krita's, but it's simple enough that even new users with no technical experience are able to make something. In Krita, the knowledge required to use the brush editor means that new users are limited to using whatever the default presets are. The reason I made this thread is that I feel really strongly that the current brush situation is making Krita more frustrating for new users. Even if the brush editor is left unchanged, I think a better selection of default presets would go a long way (that's probably a topic for a different thread though). |
![]() Registered Member ![]()
|
I was talking about arrangement and order too.
Sure, as brush engine is, it can't be simple, is a sacrifice for power and flexibility, much things can interfere in each other, etc... Some thing in Krita really scary artists that aren't so technological fluent. But as any professional tool, it is an unavoidable paradigm... I think you're idea bring what we have to a aggressive compact form, no problem with it but this result in a unnecessary disorder, sliders size reduction, a lot of sacrifices to obtain a compact less click lengthy editor. It would be more sane to make a docker/dialog with a small relevant set of brush settings still in my view. Another important point is that it take a lot of time, that would compete with features implementation, qt5 port, and bug correction... Bug corrections has slowed down because of porting for example. As it is a big move, this idea should show it's relevance, in a brainstorm for votes maybe. |
![]() Registered Member ![]()
|
That's an idea I've been thinking about too. A docker with a small set of controls that act like a proxy for the actual controls in the brush editor. I like Krita's focus on tools that mimic traditional media, so people who are used to traditional art feel at home. In my opinion however, this focus is undermined by its brush editor, which is one of the most complicated out of all the painting programs I've tried. I just feel like there has to be a way to make it easier for new users, who have an idea of the sort of brush they want, to be able to make that brush themselves. |
![]() KDE Developer ![]()
|
I think Corel Painter's brush editor is still more complicated than ours
![]() But right now, the roadmap is pretty strict: first LOD/Animation, kickstarter stretch goals and the Qt5 port. After 3.0 is released, a new kickstarter, with text/vector tools as main topic. The text and vector tools need love even more than the brush editor! That would cover 2016. Then we arrive in 2017, for which we can find new goals! Of course, and that's always true: if someone wants to hack on something that's not on the roadmap, that's always great! The roadmap is for the Foundation, to know what to sponsor. |
![]() Registered Member ![]()
|
My personal opinion on the design approach for the brush editor is that we should continue to make iterations instead of rebuilding how it is organized from scratch. We will see results faster and will get better feedback since more people can use it sooner.
The problem with large design changes like this it that there are only a small few that will see it and comment. Anyone can change the user interface to how they would like to use it. The brush editor is very sophisticated, so features will probably be removed unknowingly. With the mockups that were presented, I didn't see how to access the scratchpad. Was that removed? I personally really like that. Also with the brush tip, it is only showing some of the options in just the Auto type. I don't see how to get to the other brush tip types. I also cannot find where to change the brush engine. There are some really neat ideas in the mockups that I think we can use to update the existing brush editor with things like the accordian menu and the curve drop-down menu. I think the fastest way to improve the brush editor is to take a workflow issue and try to improve it. For example, we might want to think about a better way to load and update the thumbnail preview for a brush preset. I have heard people find that confusing. The empty dotted line by itself can be easy to miss. Doing smaller updates will also mean we can have manageable fixes. If there is a problem with a UI change because a detail was forgotten, it isn't another big re-write. |
![]() KDE Developer ![]()
|
Yes, Krita allows far more custumization than other tool but that's something many users love about Krita. At some point we decided that we focus on advanced stuff, so in many cases we go for the powerful instead of the most simple. Even then a new user would not have to move past the first page of the settings, which even simpler than your proposal. In the end it's a matter of what you are used to. The beauty is that every brush engine is just a plugin so it's possible to support almost kind of brush engine e.g. we had some experimental MyPaint engine. The only really fixed part in the current brush editor is the brush engine list on the left, everything else can be turned off or switched out. |
![]() Registered Member ![]()
|
Yeah, that's a lot of stuff to work on, so I definitely get why this is on the back burner! Looking forward to the LOD/animation especially.
My thought was that clicking on the brush icon would open the scratchpad, with the designated square for the icon like there is now. Admittedly though, I was thinking the scratchpad would mostly just be used for editing the icon and it would be easier to just test the brush on the canvas itself, since the scratchpad being a pop-up would get awkward. The dropdown to change brush engines is the button to the right of the brush icon, although I don't really like its placement. Brush tip types are selected via the "Mask Type" dropdown (this was briefly explained on the first large diagram image). My thought was to just add Predefined and Text as options in said dropdown, since they're basically just different mask types so they kinda make sense there, and it would save space.
Yeah, I definitely agree this is a good way to go about improving it. With my mock-ups I basically just started out with the question "If I were to redesign the brush editor from scratch and could make it look exactly how I wanted, how would I want it to look?" and went from there. I just wanted to get all my ideas out there for further thought.
And I definitely like that customization too. But, as the popularity of programs like Paint Tool Sai indicate, most users don't need more than just the basics. And while advanced users might be consistent about giving feedback, most basic users are more likely to just try another program when they have trouble, so the Krita devs might not always hear about what's giving people problems. Hopefully I don't come across as sounding too negative here. Krita is still by far my favourite painting program and I definitely don't want to loose any of the advanced features it has. I just want to make sure it's accessible to new users as well. |
Registered users: bancha, Bing [Bot], Google [Bot], Sogou [Bot]