The Asset Browser will be a big milestone for Blender. A lot of effort goes into landing its first iteration for Blender 3.0. Here’s a demo, some design background and a short introduction of the recently held the asset workshop.
There already are two posts covering aspects of the project:
- Asset Manager: An early, high-level introduction to some core ideas of the design.
- Pose Library v2.0: The new pose library design built on top of the Asset Browser.
Let’s start with a demo! That is, a demo for what’s already there, more is planned of course. The sections following that give a bit more background on the design then.
Keep in mind that what you’ll see still needs lots of polishing.
The workflow can be separated into four parts: Creating, editing, using and sharing asset libraries. Even though it’s not the “correct” order, we’ll start with the best part: Using.
Using asset libraries should really be an enjoyable, effortless experience. Features that help place the asset in the scene are important. Here’s a work in progress implementation of object placement with bounding-box based snapping:
There are plans to extend this so you can keep transforming objects (or collections!) after dragging them in. In fact, this can become a general transform tool in Blender, it’s useful for more than just asset dragging.
Other kinds of assets, like poses or brushes, you wouldn’t drag into the scene but apply with a double click. Plus, there are plans for “generative” assets, which allow you to paint geometry or particles into the scene. But that’s just a little teaser.
Okay, one step back. Before using an asset library, you have to create it. A Blender data-block can become part of an asset library by using the Mark Asset operator, which is available in multiple places:
When using Mark Asset, an automatic preview is generated. Designs for more customizable previews are being discussed too.
The advantage of using the Outliner is that it allows turning multiple data-blocks into assets, as shown in the video.
Assets have metadata, which can be edited from the sidebar:
Note that the Asset Browser in the video shows the Current File asset library. This library is special, as it is the only asset library in which assets can be edited. So, to edit the metadata of an asset, or in fact the asset itself, you have to open the .blend file it is stored in. As usual, the file should be saved in order to make the changes available to other Blenders.
Having to find the right blend file isn’t always that convenient, so there is a new operator that automates that. Right-click on an asset (or select & press W if using right-click select), and choose “Open Blend File”. It starts a new Blender, opens the .blend file containing the asset, waits for you to do the edits, and after you closed the new Blender (don’t forget to save!) the Asset Browser is refreshed automatically.
Once you have created some assets you may want to put them into an asset library, which can be accessed from any project. Such a custom asset library can simply be “mounted” in the Preferences. Just provide a name and a path on your disk, and Blender will make any assets it finds there available in the Asset Browser.
Other kinds of asset libraries are planned, like project asset libraries and dynamically created ones from online services. The following sections give more insight on that.
The previous section described how the Asset Browser currently works. In this section you’ll find some background info about the project.
What Are We Building?
The project is about building an Asset Browser, not an Asset Manager. Asset management is a huge topic, and even though they’re both considered some form of “asset management”, the functionality needed for an online asset market differs quite a bit from the functionality needed for a production pipeline. It’s not exactly breaking news that production pipelines are a complex topic too. While there is some standard technology nowadays (like Pixar’s USD), there are still big differences from studio to studio. They are just too different in what kind of work they do, how they do it and in turn, what trade-offs in technology they are willing to accept over others.
Blender should help studios get a better pipeline; it should not limit or dictate what to do.
Because of this, the project doesn’t focus on asset management tools, but on the following: A streamlined, extensible UI for creating, editing, using and sharing asset libraries. This is the Asset Browser. Below is a section that describes how pipelines and online services can make good use of this as well.
The project also covers three things besides the Asset Browser itself:
- Asset View: A mini-version of the Asset Browser that can be displayed anywhere in the UI, e.g. in sidebars, popups and as part of data-block selectors:
- Asset System: An API for developers to register, access and display assets for Asset Browsers and Asset Views to use. Accessible via the Blender Python API for add-ons, as well as a C++ interface for Blender itself to use internally.
- Asset Bundle: An asset library that will be either bundled with Blender or available as separate download on blender.org. The aim is to help artists getting started with Blender quickly; it’s explained further below.
Lastly, we want to build something we can be proud of! All efforts will mean nothing if the outcome is not something artists enjoy using. Quality standards are high, it will be worth the struggle of the developers.
The current implementation is focused on a specific use-case: Local user asset libraries. That is, asset libraries for Blender data-blocks that an artist stores on the hard drive, accessible via the Asset Browser. So for example, easy reuse of base-meshes for sculpting, materials, poses, and more.
At this point, the artist is the asset manager. It is the artist’s responsibility to manage how and where assets are stored. Blender doesn’t try to be smart and do work for the artist. The core design needs to be reliable and the best way to do that is by keeping it simple. We can always add helpers, like operators that save the artist some work, but these are mere additions to a simple, reliable core design.
Probably the most obvious design decision coming from this, is that Blender doesn’t support “pushing” assets into an external library. To add an asset to an asset library, you have to open a .blend file inside the library, create the asset in there and save the file inside the library. Blender does not copy the created asset to an external file when using Mark Asset (as shown in the Create section above). It keeps the asset in the current file.
The same applies to editing an existing asset: Open the .blend file containing the asset, do the edits there and save the file. Assets are just Blender data, so they can be edited in exactly the same way you’re used to. Again, we can still add helpers to automate this process. At this point we focus on the foundations, though.
Above’s demo showed how the Asset Browser is used in practice. Here is a recap of the design fundamentals seen there.
A couple of important definitions:
- Current file: the currently open file, where work is happening.
- Asset: Data-block with meaning.
- Asset file: Any .blend file containing assets.
- Asset library: An entry point to one or more asset files.
- Data-block library: A pointer to a .blend file, dynamically linking content into the current File.
Blender sees assets as metadata enhanced data-blocks. Most data-blocks in Blender (objects, lights, materials) can already be extended with asset metadata and become assets. The creation of asset metadata happens in the current file.
In the example below, the Suzanne object in the suzanne.blend file has been turned into an asset.
Multiple asset files can be collected into an asset library, which can be referenced in Blender’s Preferences and “mounted” when Blender is launched. This will make all assets contained in the library available in open.
With any Blender instance having access to asset libraries, it is possible to append or link assets into the current file.
blender.org Asset Bundle
One important goal of the asset project is an official asset bundle. Such a thing can be a tremendous help for beginners and is a big step for Blender 101. Even for experienced artists it can be useful to have a bunch of assets ready for quick set mock-ups. An important principle is that the bundle shouldn’t only be there for the sake of being there – it should also be a way to learn. You should be able to pick apart assets, and look into how they are created. And that with assets created by some of the greatest Blender artists around.
The bundle is going to be more of a “getting started” kit, it’s not supposed to be a fully fledged asset library. For that there are still plenty of 3rd party online services available.
One issue is that we don’t want the bundle to increase the Blender download size drastically. Therefore the bundle will likely become available as a separate download, or we provide a way to browse them online (in accordance with our privacy and internet access principles).
Pipeline and 3rd Party Asset Service Integration
Typically, in a professional environment there is some kind of server side software, which does some basic asset management tasks. This could be an asset tracer like Attract or Kitsu; it can also be an online asset service like the Blender Cloud texture library, or BlenderKit. It is connected to some kind of asset database.
Blender knows nothing about the server software, or the database. How are assets stored there? What kind of database is it (SQL? SVN? Dropbox? …). However, the asset service can provide an Add-on as a bridge from Blender to its servers:
In fact, Blender doesn’t even need to know details about the database. Basically it just needs a list of asset names, some internal identifiers, maybe preview images, and some functions (callbacks) to be executed whenever a specific asset is dropped into editors or other actions are executed (like deleting an asset). So an add-on can connect Blender to some asset service by providing some metadata and operations, with which Blender can build an interactive view into the database:
The asset system needs to support some kind of “virtual” asset libraries (asset libraries not stored on the hard drive) and asynchronous loading of assets into Blender.
Assets can already store metadata, including custom properties. That way add-ons can register own metadata and (optionally) display that in the sidebar:
Blender should provide some kind of reference add-on that does this and can be used as a base by other studios and services. This may also just be Blender Studio add-ons for browsing Blender Cloud assets and for pipeline management.
* Graphics include Font Awesome icons: Font Awesome Free 5.15.3 by @fontawesome – https://fontawesome.com License – (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
The Asset Workshop
It is time to take the project to the next phase. That means:
- Evaluate and improve the design, for the 3.0 release and beyond, with all people involved and a number of stakeholders.
- Document designs, sign off technical specifications.
- Define targets for the 3.0 release.
- Implement remaining 3.0 targets, get existing implementation ready for a release.
This new phase started with the four day Asset Browser workshop, which took place end of May. It was done remotely, allowing more stakeholders to join and to drop in and out whenever needed.
Attendees (on and off) were:
- Andrew Peel
- Bastien Montagne
- Brecht Van Lommel
- Francesco Siddi
- Julian Eisel
- Julien Kaspar
- Pablo Dobarro
- Pablo Vazquez
- Sybren Stüvel
- Ton Roosendaal
- Vilem Duha
- William Reynish
A number of documents were created and notes were taken throughout the workshop. The outcomes will be presented in a separate blog post soon.
This should be enough to give a good idea about the Asset Browser project as it stands. The upcoming workshop post will expand on this to give an idea of where we want to go from here. It’s just too complex to cover the entire project in a single post.
A lot of effort is going into the project, especially to get a good first version into Blender 3.0. Many foundations seem to be there now – we are confident in them – from here on it’s a matter of polishing and expanding.