---
tags: Workshop
---
# Daily Write-up Monday, 31 May 2021
- [Friday](https://hackmd.io/YJRN7ZLmTo6OI43-btMucg)
- Monday: this document
### Virtual-Folders & Catalogs
*Attendees:* Julian Eisel, Julien Kaspar, Pablo Dobarro, Sybren Stüvel, Vilhém Duha
* Virtual-Folders can be a hierarchy that is separate from how files are stored on disk, catalogs are filtering presets that can be stored hierarchical as well. See Friday's write-up for details.
* Better name needed, at least for *Virtual Folders*
* "Folders" is commonly used for actual file storage on disk (or in online storage), would be confusing to use that term for something that is exactly not that.
* Better to have a clearly different term.
* Some ideas were discussed. Some of the
* Decision: For now we'll use *Catalog* (used to be *Virtual Folders*) and *Dynamic Catalog* (used to be just *Catalog*)
* We'll only support simple catalogs for now, so only filter by asset type, tags and name.
* Should use "Catalog" (American spelling), not "Catalogue" (British spelling).
### Online Service Migration
*Attendees:* Julian Eisel, Julien Kaspar, Pablo Dobarro, Sybren Stüvel, Vilhém Duha
* An online service like BlenderKit should be able to plan the migration process, or even start it when 3.0 is out.
* Ideally 3.0 already has basic online asset library support.
* Mostly needed for BlenderKit: An API function to call "Mark Asset" on any given data-block.
* Also: A API function to set the custom preview from an image file and a way to batch convert assets.
* It should be relatively easy to do the migration to the Blender Asset Browser then.
* Some features may be lost for the start, like the tooltip that shows the asset details in BlenderKit.
### Asset Pushing
*Attendees:* Julian Eisel, Julien Kaspar, Pablo Dobarro, Sybren Stüvel, Vilhém Duha
* Distinction between:
* Already being in the library and wanting to add new assets.
* Being outside of a library and wanting to copy an asset to the library.
* The latter needs to deal with dependencies.
* Pablo: How does this work with brushes?
* Julian:
* Discussion digressed, to be continued.
### Asset Identifiers/References
*Attendees:* Andrew Peel, Julian Eisel, Julien Kaspar, Pablo Dobarro, Sybren Stüvel, Vilhém Duha
* The switcher needs to store asset references somehow
* UUIDs could solve most issues with identifying/referencing assets
* Possible Asset identifiers:
* Path of the asset file + asset name.
* URIs (especially useful for online asset libraries)
* UUIDs
* Combination (e.g. URI consisting out of base URI and a UUID hash, like `library://SpriteFright/char/rex/rex_poses_approved.blend/Actions/RexSmile?uuid=ca335747-8487-496b-ab33-e4bb5259abb0`)
* To identify an asset, we also need to know which library it comes from
* Can we keep this local somhow
* Decision:
* Use a URI with the asset library identifier plus the relative asset path inside the library.
* UUIDs tend to break too much. We can add them later still with a solid implementation.
*Attendees:* Bastien Montagne, Brecht Van Lommel, Julian Eisel, Sybren Stüvel
* Collections and dynamic collections design was discussed and presented.
* Generally agreement is that the design seems useful and can work.
* We need to present this to Ton, also to decide on some technical questions (mainly: can we touch an external .blend file to change a property or should we not do this?)
* Some pictures for a short presentation will be prepared.
* How can favorites be stored?
* Initial idea was to just store a boolean/flag in the asset metadata, that won't work since you'd want this to be stored for you personally.
* So favorites have to be stored locally, e.g. like or as part of the Preferences.
* That requires some kind of config that stores asset identifiers.
* *Last Used* assets (dynamic catalog?)
* Would be nice to have as well, can use the same storing mechanism.
### Deduplicating Assets
*Attendees:* Andrew Peel, Julian Eisel, Julien Kaspar, Pablo Dobarro, Sybren Stüvel, Vilhém Duha
* Deduplication seems important to users: If they drag the same material on multiple objects, they don't want the material to be duplicated. That just adds too much memory.
* Not simple to solve, it relies on a way to identify assets (see above)
* Store the URI in the dragged in asset, until it was modified.
* Depsgraph or undo have to handle this after modifications.
* Plus, check users of the data-block if they should be "untagged"/"unlink". (So changing a texture used by a material will also remove the "link" to the source asset.)
* Use URI to identify assets that were dragged in already.
### Initializing the Default Brush Library
*Attendees:* Andrew Peel, Julian Eisel, Julien Kaspar, Pablo Dobarro, Sybren Stüvel, Vilhém Duha
* Plan is to dynamically create the brush library, so the brushes are created from code if not present.
* Pablo: If we dynamically create the library, could it break the existing library somehow?
* Julian: No, it would only add them if there are no brushes in the expected place (directory doesn't exist, or there's no .blend with brush assets).
* Maybe there should be an operator to reset the default brushes (ensures they are there).
* Or should the default brushes be read-only? (Don't allow moving, deleting or renaming.)
* Decision: Make them read-only.