Is there a way to quickly create simple thumbnail images for objects or materials? I ask because Blender 3.0's asset manager doesn't always reliably create thumbnails for items marked as Assets, and I've never been able to get Blender to create thumbnails for assets downloaded from Blenderkit. Thanks! Blender 3.0, Windows 11

  • $\begingroup$ You may want to look at this add-on to see if it will help. $\endgroup$ Jan 6, 2022 at 18:40
  • $\begingroup$ Marty Fouts, that works great, right out of the box. Thank you! $\endgroup$
    – WilburPost
    Jan 7, 2022 at 17:18

1 Answer 1


The thing is asset previews are generated in a different thread than the main Blender thread. The nice thing is it doesn't hang when you mark a bunch of assets at once. The bad thing is you have to wait until all previews are generated to work on something else otherwise the generation process will never correctly terminate.

Shameless Plug This is inspired by my Asset Browser Utilites addon.

In the Text Editor copy and paste this script :

import bpy
import numpy as np
import functools

assets = [o for o in bpy.data.objects if o.asset_data]  # Select all object assets
assets.extend([m for m in bpy.data.materials if m.asset_data])  # Select all material assets

def sleep_until_previews_are_done(assets, callback):
    while assets:  # Check if all previews have been generated
        preview = assets[0].preview
        if preview is None:            
            return 0.2
        # If the preview is all black, means it was not generated :
        arr = np.zeros((preview.image_size[0] * preview.image_size[1]) * 4, dtype=np.float32)
        if np.all((arr == 0)):            
            return 0.2
    return None

def message_end():
    def draw(self, context):
        self.layout.label(text="All previews have been generated !")
    bpy.context.window_manager.popup_menu(draw, title="Generation Finished")

if __name__ == "__main__":

Then click on the Play button to force generating previews :

enter image description here

Note for the future : Blender 3.3 will have a bpy.app.is_job_running function to know if a background render is going on. https://wiki.blender.org/wiki/Reference/Release_Notes/3.3/Python_API

  • 1
    $\begingroup$ Thank you Gorgious!! $\endgroup$
    – WilburPost
    Jan 7, 2022 at 17:19

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .