Brush and Asset Drafts

Brushes and assets are increasingly relevant as part of the upcoming Textures project, node-based brushes and the recent improvements done to the asset system in Blender.

The following design sets the foundation to how artists use brushes (and other presets) in all parts of Blender – from curve or mesh sculpting to texture painting.

Limitations of the Current System

At the moment it is hard to keep brushes in sync across different files (or projects). Moreover, since they are not integrated with the asset system it is also very hard to manage brushes.

Although the asset system supports presets for the Pose Library poses, other presets (such as brushes, matcaps, HDRIs) haven’t been tackled yet. Those assets present a new challenge since they can be either created by the user, or shipped with Blender, and both should be editable by users.

A new system should integrate these assets more naturally with the rest of Blender, and leverage the asset libraries to manage and share these presets.

Proposal: A New Brush Asset System

Before delving into the design principles and the underlying architecture, it is important to understand how simple and intuitive the new system aims to be.

Pick, tweak, and save brush settings.

Once the brush settings are saved, they are loaded automatically the next time you open Blender.

The saved settings are loaded automatically.

If you want to share the brush with your team or online, open the original asset library file, apply the settings, and save the .blender file. The resulting file can be shared as usual.

How to save the asset, and share it.

Design Principles

  1. Presets become assets in the Asset Library
  2. Asset Libraries are read-only
  3. Saving preset changes is explicit

1. Presets become assets in the Asset Library (not the current file)

At the moment, brushes are always stored in the current .blend file.

Current - Brushes are part of the working .blend files.

This has a few shortcomings, such as:

  • Brushes are stored in the current file, adding unnecessary bloat.
  • It is counter-intuitive, hard to share, hard to tweak changes and propagate to files.
  • If matcaps or HDRIs become assets, they would be stored in the current file (more bloat).

To tackle this, the idea is to store the brushes as part of an Asset Library.

Proposal: The current file can access the brushes from the Asset Library, but it doesn't store them locally.
Proposal: The current file can access the brushes from the Asset Library, but it doesn’t store them locally.

2. Asset Libraries are Read Only

Some built-in assets (MatCaps, HDRIs, brushes) need to be read-only. In other words, they cannot be deleted or saved over.

Relationship between Asset Libraries and Current File

However, in order to give users creative freedom, assets should always be customizable regardless of whether they are built-in or not.

How do we store those changes without affecting the original or built-in files? How can I save and share those new assets? To solve this, a new concept is introduced: Draft Assets.

3. Saving Preset Changes is Explicit

Users should always have control over their assets and changes, without having to be aware of what happens under the hood. In order to prevent Blender saving over unwanted changes, saving drafts does not happen automatically.

Asset Drafts

Or, how to save changes to assets (built-in or not).

In the case of built-in assets, such as brushes, the saved changes go to a staging area we call “Draft”.

Relationship between Asset Libraries, Current File, and Drafts

Drafts are saved as part of the user configuration files, handled similarly to Blender preferences (userpref.blend) or recent files (recent-files.txt).

There are two types of drafts:

  • Asset Draft: A completely new asset based on a copy of an existing asset.
  • Override Draft: Overrides to an existing asset (separately from the original files).

Drafting allows users to explore changes to assets before sharing them (e.g. online or with the team).

Publishing Drafts

Publishing Drafts

Any tweaks to existing Asset Libraries can be kept as a Draft for as long as needed. However, in order to share drafts they must be published into an Asset Library.

For built-in assets, the Draft must be saved into a new or different Asset Library. For regular Draft Assets, they can be saved in either the same Asset Library or a new one.

To publish the Draft overrides into their original asset:

  • Open the Asset Library .blend file.
  • Apply the Draft overrides.
  • Save the file.

More Than a Clipboard

Drafts provide a persistent copy-paste system for preset assets. This could be extended in the future to support other asset types, becoming an advanced clipboard in general.

Next Steps

This project is part of the 2022 Strategic Targets. It is an important part of the upcoming Textures project, but it will be tackled independently.

To follow this development keep an eye on the communications channels and on the Brush Asset Project task in developer.blender.org.

The initial team working on this project is Bastien Montagne, Dalai Felinto, Julian Eisel and Julien Kaspar.

9 comments 7,516 views
  1. Need to look at Modo’s shader tree which has built in procedural textures which can be used and mixed, routed to bump, displacement etc. Atleast basic set of procedural textures should be available in built for quick shading and brushing. It does help for quickstart.

  2. In two sentences, texturing should work fast, it should handle 8k painting simultaneously on many layers at once with one brush or clone tool.
    So you can choose brush or clone tool and paint it on many layers in the same place at once (for example on albedo, roughness, normal, bump).
    Ideally would be to be able to choose different brush for every of those layers and paint in the same place or even in predefined different place for every of those layers and paint them with those settings in the same time at once.

    It will be super cool to have particle brushes similar to substance painter.

  3. I agree that there should be static/default data, so user can revert vrush to defaults any time.
    BUT
    >Drafts are saved as part of the user configuration files
    I disagree, thait it sho;d be saved to userprefs. It will make em harde to transfer separately. For example I want to give my brushes and my custom tweaks to my friend.
    He have his own theme, keymap, so he can`t overwrite his userprefs.

    So there are one way: save readable file with overriden settings to the user folder. For each asset library/file. XML or same type of file (so it can be read or written with notepad manually)
    If I don`t know what brush where, I just pack and copy all. If I know that I want to transfer only my Supercoolbrushes_3.blend, I will grab my Supercoolbrushes_3_override.xml too.
    Easy understandable system.

    Optional: if it is only local one user, he can select «save brush overrides near assets», so they’ll be stored to the same folders, where assets located.

    All tunes to one userpref will be the hell…

    • p.s.
      Full copy is strange…
      Users can make full copy with changes only when they need to export or rewrite assets.
      It will be a bloat, if i will have full copy of brush asset with all textures and all brushes only because i tweaked one slider inside one brush…

  4. https://code.blender.org/2022/11/brush-and-draft-assets/#asset-libraries-are-read-only

    Some built-in assets (MatCaps, HDRIs, brushes) need to be read-only. In other words, they cannot be deleted or saved over.

    I’m not sure I like the sound of that. It would mean I likely have no way of getting rid of or even just hiding assets that I don’t like and am certain I will never in my own use need. Well, no way outside of trying to build a custom build of blender with them stripped out anyways…

    Why pray tell might I want/need to remove them? To cull the fat as the lists of my own added assets keep growing making things harder to find.

  5. A big step forward! Blender is a bright star in a world with many problems. Thank you.

  6. Will texturing brushes be added?

  7. The draft asset is pretty exciting for me to hear. It somewhat fulfills my proposal https://devtalk.blender.org/t/variation-system-my-proposal-based-on-current-asset-browser/18074

  8. Sounds great! Finally some more and great presets for sculpting brushes and more! I hope the system can be at some point used as a preset system for physics too..

    An option to include them in the file would be nice too since when you move the file and the hdri lighting breaks thats not so cool.

  1. Leave a Reply

    Your email address will not be published. Required fields are marked *