2023-04-25 Sculpt/Texture/Paint Module Meeting

Practical Info

This is a weekly video chat meeting for planning and discussion of development related to the sculpting and painting in Blender. Any contributor (developer, UI/UX designer, writer, …) working on these features in Blender is welcome to join and add proposed items to the agenda.
Write us a message in the module chat if you’re interested.

For users and other interested parties, we ask to read the meeting notes instead so that the meeting can remain focused.


  • Julien Kaspar
  • Joe Eagar
  • Sergey Sharybin
  • Daniel Bystedt
  • Hans Goudey


High Priority Bugs

We went over #107095 particularly.
Sergey and Hans briefly discussed the bug and Hans later got to fix it.

Current Tasks

#104613 - WIP: Sculpt: dynamic topology refactor

Joe is making progress. No blocking issues.
The last few commits are not yet reflected in task description.
He’ll look into the major undo bugs next before kicking a new build of the branch for testing.

#105298 - Sculpt/Painting Modes: Revamp Keymap

Julien sent the proposal to modules for feedback and will adjust the design based on it.

In the meeting there were concerns about the use of Click & Drag for brushes on LCS.
Some brushes already seemed to use this behavior, but that was a misunderstanding.
Paint and Clay brushes need to wait one step in the stroke to calculate the orientation of square/textured strokes. This is not the same as a drag threshold, which would delay the start point of the stroke and lead to a bad brush feel.

Using Click & Drag on navigation for 3 Mouse Button Emulation is also something very uncommon and controversial. Navigation should never be delayed.

Another alternative that was suggested is to restrict selection operators to selection tools in painting/sculpting modes on LCS.
This is also a big change and leads to having single click selection operators inaccessible unless the active tool is switched.
Box, Lasso and Circle selection operators would still be accessible though, so selection isn’t completely locked away.

We all agreed that RCS should never have drag threshold introduced.
For LCS or 3 Mouse Button Emulation there always have to be drag threshold to avoid conflicts.
But for now there wasn’t a clear decision on what solution to go with for the keymap revamp.


#107118 - Multiresolution Issues

A new task that outlines long standing and important issues with Multires.
Drastic issues like Show/Hide support, crashes, bad propagation & undo issues need to be prioritized soon after Dyntopo is done.

The option to automatically reshape the base was brought up as well, as an alternative to “Apply Base”.
This could lead to improved propagation stability and less noise and spikes, although this could be solved another way as well.
Automatically reshaping the base also would have to co-exist with the existing Apply Base workflow, which could instead result in adding more complexity and propagation issues.

Joe pointed out that the further the sculpted levels drifted away from base mesh, the more likely the appearance of spikes are. Automatically reshaping the base could solve that.

Sergey pointed out that not updating the base mesh preserves the current tangent space.
This consistency in theory should make propagation stable, so there might be another cause of the spikes.
These precision/propagation issues need to be properly investigated to agree on a solution.
One culprit could be the open subdiv “Quality” which is hardcoded for Multires and might be too low.

After Dyntopo is done the module could prioritize important bugs especially related to Multires.
A total of more than 160 bugs accumulated over the last years for the module. A lot of them need at least information from developers to continue.

Asset Bundle - Base Meshes

Realistic and stylized base meshes are all accounted for.
Julien will clean them up for release on blender.org demo file section.
This should also utilize the feature of “installing asset bundles”.

Afterwards more cartoony & primitive assets can be worked on and added for future updates.

Mesh creation in sculpt mode

Daniel Bystedt put together a rough google doc regarding mesh creation in sculpt mode that was discussed previously.

Hans pointed out that curve edit & mesh edit modes will be the best place to prototype this because of mesh structure.
For curve edit mode this proposal would already be possible.
Brushes to create or deform geometry could be prototyped afterwards.

The current proposal needs to be cleaned up and moved to the module wiki and picked up again once the sculpting and geometry nodes modules can collaborate on this.

Improved Rake functionality

Daniel asked about the current status.
Currently inactive because the work is being diverted to Dyntopo.

There was a brief discussion on the curve implementation being different than already implemented code for curves.
Joe needed something higher level to work with.
Hans & Joe agreed that the existing code can be wrapped to be abstracted and a higher level code can be added & used for sculpt mode.

Multires Sculpt Layers

Daniel and Julien were collecting some notes on sculpting layers.
These notes need to be refined and put on the module wiki for when the project can be tackled.

Current technical debt with Multires is more of a priority as well as generic attribute support.
So the topic wasn’t discussed in detail.