Assets - FileBrowser enhancements - experimental build available

Hey girls & guys,

Let’s start a new thread about assets and filebrowser work! So, details are in this blog post, but in a few words you can find here experimental builds of work done so far in the filebrowser, as preliminary step for assets project. As usual, any testing and feedback would be greatly appreciated.


Hi Bastien!

First up, thanks for this development… We are extremely looking forward to what the asset development will bring, especially the asset browser

I have downloaded a windows x64 version, however it does not allow me to append anything… I click on a blend file to look inside & select a datablock, but when i select a blend file it refreshes the current folder i am in.


No idea what these improvements to the file browser are yet, but I want you to know I support you 100% in this endeavor.

I can echo doublebishop here, just a flicker and a refresh when I try to append a file. But sometimes it posts a ‘not a library’ error. haven’t figured out the pattern yet, but it seems to give me the error more when I have generated the previews on a file that I am trying to link.

It did generate the previews without error on a pretty large and complicated material library file, though. I have no way of knowing if it worked or not, but it didn’t crash!

@doublebishop & sterlingRoth meeeh… I was daydreaming windows would work out of the box, but should not be surprised actually. Will have to use my VM in the end. :confused:

Hey, quick note to say those issues on Windows were fixed, and builds updated.

Hi Mont29,

I asked this before on a different thread but this one seems like a better bet. Is your Asset Browser work in any way related to Elubie’s Asset Browser development? Do they cover the same ground?

Hi Sleeper,

Yes, they cover the same ground. Unfortunately, Elubie did not had anymore time to work on it since over one year now. The new one (still in very early design/dev currently) does not take exactly the same way, but you could say it’s a descendant somehow…

Basically, I’d like to:

  • Have as small as possible impact inside Blender itself (so no new ID type, we already have a well working link/append code, I think we need really few changes in Blender core).
  • Be as flexible as possible, so that any kind of asset management (in studios, with centralized system like our BAM project, or for freelancers, with mere on-disk storage, etc.) can fit in.

Won’t go in tech details here, still have to finalize own design - and get first proof of concept implementation…

Dear mont29, there is a problem with linking that I never managed to understand and since you appear to be knowledgeable with the code you might have the answer.

Scenario: I link a group, using relative path names. Now I move the “destination” .blend file. Blender does not show anymore the linked mesh (completetly reasonable). I go into the RNA blocks and update the paths. Nothing happens. I save the file, close the Blender, reopen Blender, reopen the file… nothing. Nada.

Question: is there a way to fix relative paths? I understand that you penguinistas simply create a simbolic link to the asset .blend in the current directory and go on, but on Windows, Blender ignores the normal .lnk files and doing hard links is not exactly kosher.

Any ideas? am I missing something (maybe whale-sized)?

@jpb yes indeed, you do not have a way to relocate lib files… will put that on my TODO.

Thanks for satisfying my curiosity mont29. Good luck with the design and code.

You can’t imagine the importance of such addition. As it is now, relative paths make any kind of location refactoring (both on the including and included sides) impossible.

When you are working on asset management, you can also consider personal asset collections. Currently they are awkward to make and manage. I think that storing them somewhere in the personal config files, so they would be close at hand at all times, with an easy access from the UI would be best.

Would it be possible to save datablocks (like materials) as single files somehow? This was merging collections would be just a matter of pasting files in the config folder.

Currently the best design for asset collections seems to be the Shelf to me: You have a dedicated window in the software, where you can drag and drop assets (ex. materials), which will be accessible later (will stay there when starting/opening projects).

The File Browser could serve as such a Shelf, like in Fluid Designer. The Shelf would be a File Browser mode. It could also be a dedicated editor window. How is Shelf different from the standard File Browser:

  • Divided into data type directories (materials, node trees, meshes etc.) by default. Buttons for data types on the header.
  • Root directory of each data type is the corresponding folder in the config folder (under /Shelf).
  • No toolshelf sidebar (bookmarks are not needed, since it would be impossible to leave the data type folder anyway).

Sounds like a great initiative. My only contribution is a plea for local font interrogation. That is to build a reference set, possibly in a scene if not in browser, of the contents of a user defined font directory. Showing font name and short example.

Aren’t fonts assets?

@3pointedit Totally agree. It should also default to the system font dir if the user hasn’t specified one.

Datablocks could be read from blend files in the directory. I don’t think there’s a format to export data to.

It’d be interesting if the shelf could also manage some kind of “Notes” (a custom prop). So you can write short comments like “This skin uses fake SSS” or stuff like that, and get it in tooltips or descriptions below the datablock name.

Also keep the search field visible as much as posible. It’ll be quite useful for large collections.

(@mont29 are we going too offtopic with this?)

I would think the asset workflow enhancements are limited to what can be done (with minor improvements) from the File browser. I think Bastien isn’t considering new editors and/or datablock changes for now (based on the development/info sofar). For real asset management there should at least be flexible metadata structure added as well as an globally indexed search but I think that may be beyond the scope of the project.

Eeeeh… let’s try to summarize:

@@PLyczkowski I indeed intend to use filebrowser as a regular asset manager, from which one should be able to drag’n drop into other editors as well. However, I think that kind of ‘local lib’ you describe should rather be handled by separated addons - want to keep core funcs as generic as possible, to then allow defining any custom workflow one may imagine - this is also (remotely) connected to the 101 project (you know, ‘easy’ blender for beginners, schools, etc.).

re fonts: yes, of course they are also assets, and yes, we’ll need to work on them. Afraid to say they are not on the top of my priority list currently, though. :wink:

I could say that my goal currently is not to add a ‘fluid’-like tool to Blender, it’s to make it much much easier to do things like that!
Note this project is a rather long term one, for at least two reasons:

  • It is simply a quite big one - core feature should hopefully be done soon(ish), but potential ramifications are huge.
  • It’s gonna need many cycles of dev + testing, because it will affect all users’ workflow, from casual/beginners to full professional studios. Needs to be done in the right way! :slight_smile:

As long as you enable/implement as much python access to low level functionality as possible I think the focus is well planned. I compiled the branch and the current functionality that is working is looking nice. The collections mentioned above could be done in python addon as soon as custom pythons editors project is done. It could be even done as a custom panel if you can read previews from python. Although I don’t know if its possible to append data to non-opened blender files from python.

I think we are very close to some functional library. If mont29 put all the funcionality of the link/append file dialog in the normal file panel, and drag&drop support to objects (it is already in the materials lists), we could navigate to a material lib blend file, and drag materials to the scene.

I use blender in education, and this would help a lot. With a proper default file given to them, they could do a lot more without learning all the material system.

bumping so people know to help test this and report bugs! I have seen lots of threads asking for this functionality, now let’s all do what we can to make it happen!