Asset Browser Project Update

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.

Workflow Demo

Let’s start with a demo! 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. Many design improvements and features are yet to come.

The workflow can be separated into four parts: Creating, editing, using and sharing asset libraries. It’s not the “correct” order, but we’ll start with the best part: Using.

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:

Using assets from an external asset library.

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.

Creating

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.

Editing

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.

Edit assets from an external asset library, using the “Open Blend File” operator.

Sharing

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.


Some Background

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.

Current Scope

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 objects, 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.

Design Basics

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 relevant 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.

A currently open .blend file with regular data-blocks and assets.

In the example below, the Suzanne object in the suzanne.blend file has been turned into an asset. 

Example file: suzanne.blend. The right hand side shows the same .blend in a more compact way, which the following graphics will use too.

Multiple asset files can be collected into an asset library, which can be “mounted” in Blender’s Preferences. This will make all assets contained in the library available in any Blender instance (assuming the changed Preferences are saved).

With any Blender instance having access to asset libraries, it is possible to append or link assets into the current file. 

The Asset Browser uses the regular link and append functionality for Blender data-block assets.

Preset assets (such as poses and brushes) would be applied, not linked or appended.

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.

This shouldn’t lead to drastic increases in the Blender download size. 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 include; it can also be an online asset service like the Blender Cloud asset 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:

Blender add-on for the Asset Service. *

In fact, Blender doesn’t even need to know details about the database. Basically it just needs a list of asset names, 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:

Blender creates a view into the asset database through the metadata and operations provided by the add-on. *

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 custom properties in their metadata. That way add-ons can register own metadata and (optionally) display that in the sidebar:

Asset Browser sidebar showing the asset metadata. Add-ons can add own metadata fields with custom properties.

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.

16 comments 4,705 Views
  1. U guys mentioned Projects management before which should go hand in hand with the Assets manaement, any news on that?

    • Plan is still to introduce “Blender Projects”, as a way to make Blender aware of all .blend files relating to a project and assets created for it. This is already playing an important role in the designs. But actually introducing this will happen later, probably as its own project.

      • Just to be clear, this isn’t really “project management” which also a huge topic on its own. That could involve scheduling, team management, shot tracking, render farm integration, … Similar to asset management compared to asset browsing.
        It’s more about making Blender aware of projects and using that to improve workflows. I think this will have big (positive) impact, but is still quite different from regular “project management”.

  2. Do you guys plan on creating a new workspace for asset browser? Maybe integrated into Layout?

    • The Asset Browser will be useful in many (almost all) workspaces, so I think it makes more sense to integrate it well into the existing ones. Plus, the much more compact asset view can be integrated into the regular UI.

      It may make sense to have an asset management workspace, although maybe that’s an entire application template even (https://docs.blender.org/manual/en/latest/advanced/app_templates.html).

  3. Can assets and asset-libraries have “strong” names, like a GUID or hash + a revision number? It could then be possible to automatically satisfy and update asset references via a web service for example, and to not be dependent on file names.

    • For local user managed assets, something like UUIDs/GUIDs are very hard to get working reliably. E.g. what happens if the user duplicates a .blend with assets? There are ways to get it to work, but again, it’s tricky.

      For external (web) services it makes a lot of sense on the other hand. They can have a proper data-base where UUID management is much easier. But this would be up to the service and its Blender add-on to handle. The way Blender identifies assets is designed to work well with that.
      More about this in the upcoming workshop blog post.

  4. I do hope there would be some other way to apply materials than dragging; like double click or some function-key + click, because it would mean a lot of dragging if I would like to tryout couple different materials. Monitors are getting bigger and bigger and some of us use more than one so that could mean looooong distance from asset browser to object…

    • This is a great point. being able to double click to apply a material to the selected object would be great. Even better if we can have multiple objects selected and try the material on all of them by double clicking the material in the asset browser.

  5. also it would be nice if with some new tools like: material picker and material bucket would appear to complement material browser

  6. That sounds awesome. I was wondering if presets can be included too? There are some for clothes but nothing for mantaflow for example.

  7. Are you planning to introduce version control integration somehow? Looks pretty rad already!

  8. Congratulations!

  9. The long-awaited version 3.0 feels like 2.94, there are still 4 days to see what you have a bright new features, compared to the passion of 2.90 this time afraid that there is no

  10. The long-awaited version 3.0 feels like version 2.94, there are still 4 days to see what you have a bright new features, I hope to regain the passion of version 2.90

  1. Leave a Reply

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

     
share this story on