Some time ago after beeing encouraged by @JosephEagar I made a proposal about Sculpt Brush UI/UX.
If this is ok, I want to repost it here for more open discussion and for posterity. I’m aware that sculpt devs have different ideas, as well I’m aware of recent Asset Browser redesign. Nevertheless I think this proposal can bring some interesting things to the table.
Link to the original document: sculpt_proposal.pdf - Google Drive
SCULPT/PAINT UI/UX & BRUSH MANAGEMENT
A design proposal for Sculpt/Paint Brush UI/UX and Brush Management.
Disclaimer:
I’m not a professional UI/UX designer and the following should be treated accordingly.
Sources:
https://developer.blender.org/T54642 Bastien Montagne, William Reinish, Asset Project: User Interface
https://developer.blender.org/T56744 William Reinish, Improving Brush Workflow in Blender
https://developer.blender.org/T68745 Pablo Dobarro, Sculpt mode defaults
https://developer.blender.org/T80384 Pablo Dobarro, Brush Selection Design
The Tools/Brush Workflow Julien Kaspar, The Tool/Brush Workflow
Acknowledgements:
Default colored brush icons courtesy of Albert de Arias (@wevon)
Definitions:
- Asset Browser Brush Section - section of Asset Browser dedicated to brushes, contains subsections dedicated to Sculpt, Texture Paint, Vertex Paint, Vertex Weight brushes. I couldn’t find a well defined term for this section so ‘Section’ is a temporary placeholder.
- Brush Set(s) – also known as brush preset(s) or palette(s). Brush Sets are located inside the Brush Section and its subsections inside the Asset Browser. Brush Sets contain all existing brushes. Special form of Brush Set is Default Set – in T80384 it is referred to as ‘global palette’. The only other form of Sets are custom Brush Sets which are derived from Default one.
- Custom Sets are to be created and managed by a user. When in Sculpt/Paint mode the selected Brush Set can be viewed in the viewport in a form of pie-menu that provides quick access to the brushes inside the selected Set.
- Brush Settings - All brush settings are located inside the Properties Tool tab. Advanced settings of active brush are located in the topbar. The most basic or frequently used settings of one selected brush are accessible through Brush Settings Pie-Menu which can be opened in the viewport in Sculpt/Paint mode.
Preface.
In cited sources and across various other places there are a lot of great ideas about improving brush UI in Blender made by both developers and users. Similarities in different propositions are a good design base, so I organized them into more presentable form. Main examples could be the ‘global brush palette’ described by Pablo Dobarro in T80384 which also pops up in many different forms in the mockups and comments made by others.
In addition to solving Sculpt brush selection issues I wanted to make brush UI a little more ‘meta’ and expand it into other areas. Such that with proper design and implementation it can potentially become a framework for Texture Paint, Vertex Color/Weight, or even tools in other workspaces. From a usability perspective it would be better to have one, workspace-agnostic management system that looks and feels more or less the same, and can handle brushes or brush-like functionalities for all editors/workspaces than to have multiple similar, but fundamentally different UI designs.
The biggest problem with brush UI at the moment is lack of clear vision of how brush settings should be exposed to users with different levels of skills, different needs and different peripheral hardware. Brush settings are duplicated in 4 different places in very similar visual form. RMB is underutilized and UI elements are not always tablet friendly. Other areas of UI like texture handling and keymap can also be improved significantly.
Fig.1 Brush settings replicated in 4 places.
Design.
With this in mind I want to propose four solutions:
I. Pie-menus for fundamental brush settings, brush selection and more.
Fig.2 Two sculpting pie-menus.
Pros:
- expandable design if new tools are developed
- don’t permanently clutter screen real estate
- easy to use for beginners
- with hit’n’drag input they can be pretty fast and intuitive
- good combo with pen and tablet
- require a lot less shortcuts than key-mapping every brush in Brush Set
- design flexibility – e.g. mixing circular and rectangular layouts
- option for user customization
Cons:
- design, implementation and maintenance difficulty (?)
- yet another tool interface
- can limit the amount of settings that are exposed to a user at once (also can be pros?)
Sculpting brushes, tools and their options can be structured inside floating menus (like pie) in various different forms. One example could be ‘Quick Access’ proposed by William Reinish in T56744. I’ve chosen 4 main categories, but this can be changed easily:
- Brush Set - selecting a brush and manage brushes inside a Set (proposed shortcut - Ctrl + RMB):
Fig.3 Brush Set pie-menu seen as user. On the right – opened Asset Browser with Brush Section – more about this later.
Fig.4 Brush Set pie-menu with descriptions.
Fig.5 Another form of custom Brush Set pie-menu - with ‘Edit Set’ option disabled.
Fig.6 Custom Brush Set pie-menu with ‘Edit Set’ option enabled + descriptions.
Fig.7 Default Brush Set pie-menu seen as a user.
Fig.8 Default Brush Set pie-menu with descriptions.
- Brush Settings - selected brush tool settings (proposed shortcut – RMB)
Fig.9 Default Brush Settings pie-menu.
Fig.10 Custom Brush Settings pie-menu.
Fig.11 Another layout variant of custom Brush Settings pie-menu.
Fig.12 Custom Brush Settings pie-menu with descriptions.
- Dyntopo + Remesh (proposed shortcut - Shift + RMB)
Fig.13 Dyntopo + Remesh pie-menu. It includes also 4 brushes that are either used to alter topology or are bind to external factors like Multires.
- Masks + Face Sets (proposed shortcut - Alt + RMB)
Fig.14 Masks + Face Sets pie-menu.
II. Asset Browser Brush Section.
Properties editor would be swapped for Asset Browser with Brush Section opened.
Fig.15 Asset Browser configured as editor with column layout.
Fig.16 Difference between Default and Custom Brush Sets inside Asset Browser.
Fig.17 Asset Browser used in a process of creation custom brushes from default ones.
Fig.18 Three different layouts of Asset Browser. Sidenote - with horizontal Asset Browser layout Brush Sets could be displayed in more space efficient form – e.g. tabs instead proposed horizontal subpanels (not showed in the mockup).
Brush Section functionality:
- store permanent set of default brushes from which custom ones could be derived
- provide visual feedback of a Brush Set and individual brushes
- select and highlight a Brush Set
- create, copy, delete, rename and individual brushes
- create, copy, delete, rename and Brush Sets
- add and remove brushes with drag’n’drop to Brush Set Pie-Menu
- collapse and expand Brush Set containers
- assign custom Brush Sets shortcuts (?)
- responsiveness for vertical and horizontal layout
III. Brush live-preview.
This isn’t immediately needed, but eventually it might be if the brushes are about to be presented in a clear visual form - as it was highlighted by William Reinish in T56744. Static icons are suboptimal - brush customization forces some form of identification between default and derived brush and making good individual brush icons/thumbnails is time consuming. Naming brushes alone can be too vague and is cumbersome to set up. Brush names can be useful inside Asset Browser, but pie-menus should visualize how the brush looks and works in the first place.
That said, I agree with what William and Julien said in the comments T56744, that this could be very difficult to implement, so the low hanging fruit would be focusing on the default Brush Set icons/thumbs, and maintain the ability of changing them in custom Brush Sets by brush creators. Although it would be nice to provide brush creators some guidelines on what a brush thumbnail/icon and name should look like – some templates or documentation would be a great starting point. Julien’s idea of a pre-made larger set of brush icons is also very good, and fits nicely within both Brush Section and pie-menu UI.
Fig.19 Same brush icon/thumbnail displayed in different places.
One solution that comes to my mind is solving this with normal maps. By changing Brush Settings users would in fact change properties of a b&w bitmap that is converted to a normal map projected to a shaded plane. Normal maps are lower tech compared to previewing displacement of a real 3 dimensional mesh, so maybe this can reduce development burden.
Generated thumbnails could then be cached and stored. Default Brush Set could have pre-generated thumbs that could be shipped with Blender installation. User made Brush Sets could also store their own thumbs. The only time thumbs rendering engine would kick in would be changing individual brush settings.
Fig.20 User generated normal map image used as brush preview. Voronoi should be swapped for customizable brush tip shape.
Obvious drawback of this method is that this is only a normal map and not a real geometry, so some brushes would be extremely tricky to simulate that way – e.g. Snake Hook.
IV. Brush textures.
I’ll skip non-sculpt/paint texture handling, as this is not the point of this design. I think brush textures when added should not be accessible through image or shader editor. They should become property of a brush and should not be treated as individual assets by Asset Browser. That can help design dedicated brush texture interface and settings. It can also help with data management so the brush texture files could be bound with brush assets more closely, so when Brush Sets are exchanged they would automatically contain all needed brush textures. Brushes inside Brush Set that have assigned texture to them could be displayed with little glyph for identification. This identification would be in Brush Settings Pie-Menu also, as shown previously:
Fig.21 Brush texture identification.
Another problem with brush textures is deciding how much texture settings should be exposed to a user. I see a design problem with putting texture settings inside the Brush Settings pie-menu. First reason for it is that this would involve importing a texture from Asset Browser and the default, planned way to do it is with drag’n’drop. That won’t do, because of the closing area Brush Settings pie-menu have – so every time the user would want to import a brush from Asset Browser the pie-menu would close.
That can be solved with a similar pie-edit button as Brush Set would have. Or by simply using texture glyph as texture add button that would open the menu. That sounds like unnecessary over-design and brings us to the second reason against this idea – Brush texture settings are already present in two places – hidden Properties editor and the topbar. Considering that the latter looks like a preferred way of accessing advanced tool settings T80384 - having them duplicated inside the pie-menu doesn’t look right.
Adding texture to a brush can be done as it is now with topbar “Texture” dropdown menu. Second option could be having second Asset Browser with Texture Section open from which user would drag texture to Brush Section. This looks cumbersome, but it doesn’t require opened and locked pie-menu to work:
Fig.22 Setting and disabling brush texture.
One possible texture-related option to have inside Brush Settings pie-menu could be quick enabling and disabling texture by hitting texture glyph as shown above.
Summary
- UI Cleanup:
- Hide Properties editor in Sculpt workspace – as shown on previous mockups.
- Remove the tool tab from the ‘N’ panel (sidebar).
- Move basic brush settings to Brush Settings Pie-Menu.
- Remove brush icons from ‘T’ panel (toolbar) and leave only tools.
- Move active tool settings to topbar.
Fig.23 Cleaned toolbar panel.
- Keymap:
Overall, the Sculpting keymap feels inconsistent and not intuitive. Personally I would wait with this until the improved keymap editor T76678 is implemented. In the meantime I’d try to do what is achievable to clean this area.
- Default keymap should be as lean as possible - this could leave room for experienced users who want to customize their interface.
- Make better use of RMB in the entire workflow as a main key for Sculpt pie-menus: Brush Set, Brush Settings, Dyntopo+Remesh, Mask+FaceSets. Reason for it aside from accessibility is that most pen tablets have a RMB equivalent option.
- Design consistency - each distinctive operation sections like: Masks, Face Sets, Trim/Hide should have it’s own shortcut prefix or key. For example Masks now use ‘I’, ‘B’, ‘M’ which is inconsistent and hard to remember.
- UX structure:
Beginners:
- ready to use default Brush Set accessible through either a Brush Set Pie-Menu or Brush Section.
- ability to tweak selected basic brush settings through a Brush Settings Pie-Menu
Intermediate - all the above, plus:
- Brush customization with topbar settings
- customization of Brush Set layout in pie-menu and importing brushes from Brush Section
- 2 additional pie-menus, one for Dyntopo+Remesh and second one for Masks+FaceSets
Pro - all the above, plus:
- tweaking advanced Brush settings in Properties tab
- making custom brushes and Brush Sets
- custom shortcuts for Brush Sets
- custom shortcuts for most used Sculpt/Paint operations