GSoC Proposal - Files as Assets (WIP)

Hello everyone, my name is Abhinav Chennbhotla and I am interested in working on the Files as Assets project from the ideas list for GSoC 2023. The possible mentors for this project are @julianeisel and @sybren.

I have done some preliminary research on the Asset System - how it works, its goals, and the progress of these goals.

I wish to use this post as a place to collect opinions on what specific improvements we can add as part of this project, and any cascading effects caused by these changes (both good and bad). I will post a full proposal after we have reached a consensus on what the deliverables of this project should be.

Synopsis

The Asset System of Blender, introduced in v3.0, had its initial focus on delivering an Asset Browser to deal with ID data-blocks that were marked as assets. As the system matured, the focus shifted to creating a system that provides asset functionality and a global asset database that is separate from the Main database in Blender, which is the database used to represent .blend file data.

Currently, the asset system is still far from this goal, and one of the pain points happens to be how non-blender files are handled. This project aims to add a bundle of improvements to the Asset System with an emphasis on adding better support for non-blender data.

Deliverables (as of now)

  • Support various file types in the asset browser (Targeting images, audio, video, etc.)
  • Support XMP sidecar files for storing asset metadata for files. (Currently they are not separate).
  • Allow importing of external files from the file browser into the asset browser.
  • Drag and drop of image files into the 3D view working just like that of Blender image blocks

I would greatly appreciate it if you had any suggestions or critiques for this project, feel free to mention them so I can better this proposal.

Thank you

Edit:
Here’s the link to my draft proposal - Files as Assets - Blender GSoC 2023 Proposal - Google Documenten.

Let me know if any more technical details are necessary.
I’m specifically looking for some feedback on the parts in red font, I’m not sure if they’re a good design choice. Also, can the same kind of links being used to link video files to movie clip datablocks be used here?

12 Likes
  • Drag and drop of image files into the 3D view working just like that of Blender image blocks

What is different currently between dragging and dropping image files and blender image datablocks into the 3d view?

This would be amazing! I hope at least this item gets added and becomes fully functional for Blender 4.0 :crossed_fingers: :crossed_fingers:

The sidecar files for those file types, if they should be useable for the VSE and ex. node editor(Image Node), they should contain in and out points, so parts of clips can be stored as assets and there could be multiple assets pointing to the same source file. Also, there have been talk of being able to preview of those media files in the sidebar with an option to edit those in and out points, before drag and drop in to the sequencer.

The current status is that sound and movie clip data blocks have no thumbnails and can’t be used unless the experimental mode is enabled.

If there was added support for movie and sound files, then the Asset browser could work as a bin system for the VSE. Thinking about it. The VSE has automatic proxy generation, should this generation be executed when adding media files to the asset browser?

Btw. there was an attempt here to add images to movie strips: ⚙ D13305 Asset Browser: Draw Movie Clip previews
⚓ T79178 Asset Manager: Support preview thumbnails for more data-block types

Yeah, I would love to be able to have assets in their own blender files and just bring them all into 1 catalog/etc…

Not have to merge all into 1 scene, or whatever, which I think is how it is now? Honestly I didn’t even know how to use the Asset Browser at first/did not work at all as I expected. Or compared to other addons/other ones I’ve used in the past.

Hi @PhoenixFlame101 , thanks for your interest in the project.

To start, I would recommend keeping things simple. Accept the ideas that are mentioned here and see if they can be accommodated, but don’t necessarily put them all into your proposal. For example @tintwotin 's idea of having a single file show up as multiple assets is really interesting, and I think would be super valuable to have in Blender, but it might be too much to ask for a single GSoC student to also include that in their project.

I think the described set of deliverables already represent a significant amount of work (which isn’t necessarily bad). The first two are IMO the most important, and should be the focus of the proposal. Doing this well, which means both the techincal side and the UI/UX/usability side, is already hard. Having some ‘stretch goals’ is of course always good, but make sure they are described as such.

This project idea is specifically about assets that are not in blend files at all.

@PhoenixFlame101 as the next steps, it might be a good idea to spend some time playing around with the Blender source code, to see if you can make it do something; this can be something silly and/or useless, but just to get more familiar with altering Blender’s source code and going through the process of building it on your machine and seeing your changes.

5 Likes

Thanks a lot for the guidance! I spent the past week or so playing around with the asset browser and I’m feeling a little more comfortable navigating around the codebase now.

I have updated the main post with the link to my draft proposal, please look through it when you can.

@PhoenixFlame101 Interesting proposal! Did you perhaps think about linking files as assets too? For example, I may be working with Software X and Blender. I create a modeo in Software X and export that to a file that Blender reads as asset. Now, I realise that I need to make some edits in Software X and save it over the old file in the asset browser directory, what happens then?

Do I get to import the new file when I use the asset browser? Does this change existing files which link to this asset. You cannot currently link non-Blender file formats, such as FBX, even though that would be super helpful.

E: I see you’ve included file linking in your proposal. If you do that for the asset browser, does that mean you’ll also bring file linking for FBX, OBJ, etc.?

Also, how would you mark these files as asset, seeing as how Blender requires a bottom-up approach (mark assets in the original file)? A top down approach would be useful for the asset browser to become less of a browser and more of an asset manager

In my proposal I’ve mainly focused on bringing image, audio and video files into the asset browser, but I’ve tried to keep the design as agnostic as possible. 3D models need an import process to be converted into blender meshes, but i suppose you could do that after you put the assets in your scene.

As for the mark as asset part, the files are being recognised as assets through the import file functionality (or drag-and-drop).

3 Likes

Please hold back your enthousiasm :wink: This would expand the proposal considerably, as it would require deep changes to how Blender handles importing/exporting files. This import/export functionality is not even part of the current asset system in Blender, so it’s unrealistic to ask this of a GSoC student who’s just getting their feet wet in Blender’s source code.

1 Like

I understand, that’s why I was puzzled by the proposal. I didn’t expect linking to be included, but it’s clear to me now what the proposal is about. :slight_smile:

1 Like

@PhoenixFlame101 For whatever it is worth, here’s an add-on to import a/v media files directly into asset browser. The main purpose is to organise it into bins, and drag into the vse, however as mentioned there is no way to add thumbnails from python. GitHub - tin2tin/Import_as_asset: Imports files as assets