From e471812de13c3797db0536140f513c4222ca3de6 Mon Sep 17 00:00:00 2001 From: Stefan Jeske Date: Mon, 24 Nov 2025 13:57:37 +0100 Subject: [PATCH 1/5] blender extensions review --- blender_manifest.toml | 16 ++-- bseq/__init__.py | 8 +- bseq/importer.py | 15 ++-- bseq/operators.py | 146 +++++++++++++++++----------------- download_wheels.sh | 7 +- template/Comparison Render.py | 11 +++ 6 files changed, 110 insertions(+), 93 deletions(-) diff --git a/blender_manifest.toml b/blender_manifest.toml index 5d190ea..4d98e30 100644 --- a/blender_manifest.toml +++ b/blender_manifest.toml @@ -15,7 +15,7 @@ website = "https://github.com/InteractiveComputerGraphics/blender-sequence-loade # # Optional: tag list defined by Blender and server, see: # # https://docs.blender.org/manual/en/dev/advanced/extensions/tags.html -tags = ["Animation", "Object"] +tags = ["Import-Export"] blender_version_min = "4.2.0" # # Optional: Blender version that the extension does not support, earlier versions are supported. @@ -41,10 +41,9 @@ license = [ # # Optional: bundle 3rd party Python modules. # # https://docs.blender.org/manual/en/dev/advanced/extensions/python_wheels.html wheels = [ - "./wheels/Fileseq-1.15.2-py3-none-any.whl", - "./wheels/future-0.18.3-py3-none-any.whl", - "./wheels/meshio-5.3.4-py3-none-any.whl", - "./wheels/rich-13.7.0-py3-none-any.whl", + "./wheels/fileseq-2.2.1-py3-none-any.whl", + "./wheels/meshio-5.3.5-py3-none-any.whl", + "./wheels/rich-14.2.0-py3-none-any.whl", ] # # Optional: add-ons can list which resources they will require: @@ -77,5 +76,10 @@ paths_exclude_pattern = [ "/docs/", "/images/", "build_addon.py", - "download_wheels.sh" + "download_wheels.sh", + ".readthedocs.yaml", + ".gitignore", + ".gitmodules", + "template/dim3.py", + "template/template.py" ] \ No newline at end of file diff --git a/bseq/__init__.py b/bseq/__init__.py index 08a8e37..7bd5af0 100644 --- a/bseq/__init__.py +++ b/bseq/__init__.py @@ -1,5 +1,5 @@ from .utils import refresh_obj -from .operators import BSEQ_OT_load, BSEQ_OT_edit, BSEQ_OT_resetpt, BSEQ_OT_resetmesh, BSEQ_OT_resetins, BSEQ_OT_set_as_split_norm, BSEQ_OT_remove_split_norm, BSEQ_OT_disable_selected, BSEQ_OT_enable_selected, BSEQ_OT_refresh_seq, BSEQ_OT_disable_all, BSEQ_OT_enable_all, BSEQ_OT_refresh_sequences, BSEQ_OT_set_start_end_frames, BSEQ_OT_batch_sequences, BSEQ_PT_batch_sequences_settings, BSEQ_OT_meshio_object, BSEQ_OT_import_zip, BSEQ_OT_delete_zips, BSEQ_addon_preferences, BSEQ_OT_load_all, BSEQ_OT_load_all_recursive +from .operators import BSEQ_OT_load, BSEQ_OT_edit, BSEQ_OT_resetpt, BSEQ_OT_resetmesh, BSEQ_OT_resetins, BSEQ_OT_set_as_split_norm, BSEQ_OT_remove_split_norm, BSEQ_OT_disable_selected, BSEQ_OT_enable_selected, BSEQ_OT_refresh_seq, BSEQ_OT_disable_all, BSEQ_OT_enable_all, BSEQ_OT_refresh_sequences, BSEQ_OT_set_start_end_frames, BSEQ_OT_batch_sequences, BSEQ_PT_batch_sequences_settings, BSEQ_OT_meshio_object, BSEQ_OT_load_all, BSEQ_OT_load_all_recursive #, BSEQ_OT_import_zip, BSEQ_OT_delete_zips, BSEQ_addon_preferences from .properties import BSEQ_scene_property, BSEQ_obj_property, BSEQ_mesh_property from .panels import BSEQ_UL_Obj_List, BSEQ_List_Panel, BSEQ_Settings, BSEQ_PT_Import, BSEQ_PT_Import_Child1, BSEQ_PT_Import_Child2, BSEQ_Globals_Panel, BSEQ_Advanced_Panel, BSEQ_Templates, BSEQ_UL_Att_List, draw_template from .messenger import subscribe_to_selected, unsubscribe_to_selected @@ -62,9 +62,9 @@ def BSEQ_initialize(scene): "BSEQ_OT_batch_sequences", "BSEQ_PT_batch_sequences_settings", "BSEQ_OT_meshio_object", - "BSEQ_OT_import_zip", - "BSEQ_OT_delete_zips", - "BSEQ_addon_preferences", + # "BSEQ_OT_import_zip", + # "BSEQ_OT_delete_zips", + # "BSEQ_addon_preferences", "BSEQ_OT_load_all", "BSEQ_OT_load_all_recursive" ] diff --git a/bseq/importer.py b/bseq/importer.py index 523b6f7..06b19a3 100644 --- a/bseq/importer.py +++ b/bseq/importer.py @@ -308,12 +308,14 @@ def update_obj(scene, depsgraph=None): if obj.BSEQ.use_advance and obj.BSEQ.script_name: script = bpy.data.texts[obj.BSEQ.script_name] - try: - exec(script.as_string()) - except Exception as e: - show_message_box(traceback.format_exc(), "running script: " + obj.BSEQ.script_name + " failed: " + str(e), - "ERROR") - continue + show_message_box(f"Cannot run custom script {obj.BSEQ.script_name} using extension from Blender extensions. Use a custom build to enable. Removing script file..." + str(e), "INFO") + obj.BSEQ.script_name = "" + # try: + # exec(script.as_string()) + # except Exception as e: + # show_message_box(traceback.format_exc(), "running script: " + obj.BSEQ.script_name + " failed: " + str(e), + # "ERROR") + # continue if 'process' in locals(): user_process = locals()['process'] @@ -337,6 +339,7 @@ def update_obj(scene, depsgraph=None): continue finally: del locals()['preprocess'] + else: if obj.BSEQ.match_frames: fs_frames = fs.frameSet() diff --git a/bseq/operators.py b/bseq/operators.py index 7168868..95d7627 100644 --- a/bseq/operators.py +++ b/bseq/operators.py @@ -440,87 +440,87 @@ def draw(self, context): # if importer_prop.use_relative: # layout.prop(importer_prop, "root_path", text="Root Directory") -class BSEQ_addon_preferences(bpy.types.AddonPreferences): - bl_idname = __package__ - - zips_folder: bpy.props.StringProperty( - name="Zips Folder", - subtype='DIR_PATH', - ) - - def draw(self, context): - # layout = self.layout - # layout.label(text="Please set a folder to store the extracted zip files") - # layout.prop(self, "zips_folder", text="Zips Folder") - pass - -zip_folder_name = '/tmp_zips' - -class BSEQ_OT_import_zip(bpy.types.Operator, ImportHelper): - """Import a zip file""" - bl_idname = "bseq.import_zip" - bl_label = "Import Zip" - bl_options = {'PRESET', 'UNDO'} - - filename_ext = ".zip" - filter_glob: bpy.props.StringProperty( - default="*.zip", - options={'HIDDEN', 'LIBRARY_EDITABLE'}, - ) - - files: bpy.props.CollectionProperty(type=bpy.types.PropertyGroup) +# class BSEQ_addon_preferences(bpy.types.AddonPreferences): +# bl_idname = __package__ + +# zips_folder: bpy.props.StringProperty( +# name="Zips Folder", +# subtype='DIR_PATH', +# ) + +# def draw(self, context): +# # layout = self.layout +# # layout.label(text="Please set a folder to store the extracted zip files") +# # layout.prop(self, "zips_folder", text="Zips Folder") +# pass + +# zip_folder_name = '/tmp_zips' + +# class BSEQ_OT_import_zip(bpy.types.Operator, ImportHelper): +# """Import a zip file""" +# bl_idname = "bseq.import_zip" +# bl_label = "Import Zip" +# bl_options = {'PRESET', 'UNDO'} + +# filename_ext = ".zip" +# filter_glob: bpy.props.StringProperty( +# default="*.zip", +# options={'HIDDEN', 'LIBRARY_EDITABLE'}, +# ) + +# files: bpy.props.CollectionProperty(type=bpy.types.PropertyGroup) - def execute(self, context): - importer_prop = context.scene.BSEQ - - import zipfile - zip_file = zipfile.ZipFile(self.filepath) - - addon_prefs = context.preferences.addons[addon_name].preferences - # Check if a string is empty: - if not addon_prefs.zips_folder: - show_message_box("Please set a folder to store the extracted zip files", icon="ERROR") - return {"CANCELLED"} - zips_folder = addon_prefs.zips_folder + zip_folder_name - - valid_files = [info.filename for info in zip_file.infolist() if not info.filename.startswith('__MACOSX/')] - zip_file.extractall(zips_folder, members=valid_files) - zip_file.close() - - folder = str(zips_folder) + '/' + str(Path(self.filepath).name)[:-4] - print(folder) - - seqs = fileseq.findSequencesOnDisk(str(folder)) - if not seqs: - show_message_box("No sequences found in the zip file", icon="ERROR") - return {"CANCELLED"} - - for s in seqs: - # Import it with absolute paths - create_obj(s, False, folder, transform_matrix=get_transform_matrix(importer_prop)) +# def execute(self, context): +# importer_prop = context.scene.BSEQ + +# import zipfile +# zip_file = zipfile.ZipFile(self.filepath) + +# addon_prefs = context.preferences.addons[addon_name].preferences +# # Check if a string is empty: +# if not addon_prefs.zips_folder: +# show_message_box("Please set a folder to store the extracted zip files", icon="ERROR") +# return {"CANCELLED"} +# zips_folder = addon_prefs.zips_folder + zip_folder_name + +# valid_files = [info.filename for info in zip_file.infolist() if not info.filename.startswith('__MACOSX/')] +# zip_file.extractall(zips_folder, members=valid_files) +# zip_file.close() + +# folder = str(zips_folder) + '/' + str(Path(self.filepath).name)[:-4] +# print(folder) + +# seqs = fileseq.findSequencesOnDisk(str(folder)) +# if not seqs: +# show_message_box("No sequences found in the zip file", icon="ERROR") +# return {"CANCELLED"} + +# for s in seqs: +# # Import it with absolute paths +# create_obj(s, False, folder, transform_matrix=get_transform_matrix(importer_prop)) - # created_folder = context.scene.BSEQ.imported_zips.add() - # created_folder.path = folder +# # created_folder = context.scene.BSEQ.imported_zips.add() +# # created_folder.path = folder - return {'FINISHED'} +# return {'FINISHED'} -class BSEQ_OT_delete_zips(bpy.types.Operator): - """Delete a zip file""" - bl_idname = "bseq.delete_zips" - bl_label = "Delete Zip" - bl_options = {'PRESET', 'UNDO'} +# class BSEQ_OT_delete_zips(bpy.types.Operator): +# """Delete a zip file""" +# bl_idname = "bseq.delete_zips" +# bl_label = "Delete Zip" +# bl_options = {'PRESET', 'UNDO'} - def execute(self, context): - # folders = context.scene.BSEQ.imported_zips - # for folder in folders: +# def execute(self, context): +# # folders = context.scene.BSEQ.imported_zips +# # for folder in folders: - addon_prefs = context.preferences.addons[addon_name].preferences - zips_folder = addon_prefs.zips_folder + zip_folder_name +# addon_prefs = context.preferences.addons[addon_name].preferences +# zips_folder = addon_prefs.zips_folder + zip_folder_name - import shutil - shutil.rmtree(zips_folder) +# import shutil +# shutil.rmtree(zips_folder) - return {'FINISHED'} +# return {'FINISHED'} class BSEQ_OT_load_all(bpy.types.Operator): """Load all sequences from selected folder and its subfolders""" diff --git a/download_wheels.sh b/download_wheels.sh index 1abd6b0..2d8bd86 100755 --- a/download_wheels.sh +++ b/download_wheels.sh @@ -1,4 +1,3 @@ -pip wheel fileseq==1.15.2 -w ./wheels --no-deps -pip wheel meshio==5.3.4 -w ./wheels --no-deps -pip wheel future==0.18.3 -w ./wheels --no-deps -pip wheel rich==13.7.0 -w ./wheels --no-deps \ No newline at end of file +pip wheel fileseq==2.2.1 -w ./wheels --no-deps +pip wheel meshio==5.3.5 -w ./wheels --no-deps +pip wheel rich==14.2.0 -w ./wheels --no-deps \ No newline at end of file diff --git a/template/Comparison Render.py b/template/Comparison Render.py index f8b3e57..b2e3acd 100644 --- a/template/Comparison Render.py +++ b/template/Comparison Render.py @@ -1,3 +1,14 @@ +""" +This template script allows you to render each sequence in a specified collection. It toggles the visibility of each sequence one at a time, disabling all others and rendering them individually. + +This is mainly useful for creating comparison renders of different sequences in a scene, such as for different models of a physical simulation that were run outside of Blender. + +The path is automatically set to `//` for each render, where `` is the original render output path set in the scene settings, and `` is the name of the sequence being rendered. + +Usage: +1. Set the `comparison_collection` variable to the name of the collection containing the sequences you want to render. +2. Run the script in Blender's scripting environment. +""" import bpy # Utilities for comparison rendering From 970d9a7150cd338911dc1fb617bb476b8734c4cc Mon Sep 17 00:00:00 2001 From: Stefan Jeske Date: Mon, 24 Nov 2025 14:10:46 +0100 Subject: [PATCH 2/5] increase version since I cant re-upload with the same version --- blender_manifest.toml | 2 +- docs/conf.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/blender_manifest.toml b/blender_manifest.toml index 4d98e30..4b315ec 100644 --- a/blender_manifest.toml +++ b/blender_manifest.toml @@ -3,7 +3,7 @@ schema_version = "1.0.0" # Example of manifest file for a Blender extension # Change the values according to your extension id = "sequence_loader" -version = "0.3.7" +version = "0.3.8" name = "Sequence Loader" tagline = "Just-in-time loader for meshio-supported mesh file sequences" maintainer = "Stefan Rhys Jeske " diff --git a/docs/conf.py b/docs/conf.py index 3b2ec6b..8bb6f1d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -9,7 +9,7 @@ project = 'Sequence Loader' copyright = '2025, InteractiveComputerGraphics' author = 'InteractiveComputerGraphics' -release = '0.3.7' +release = '0.3.8' # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration From a838270924a27d9f1bcfd8d2b483368e49024750 Mon Sep 17 00:00:00 2001 From: Stefan Jeske Date: Wed, 26 Nov 2025 11:02:28 +0100 Subject: [PATCH 3/5] remove custom script execution for loading other file types --- bseq/importer.py | 58 ++++++++-------------------------------------- bseq/panels.py | 3 --- bseq/properties.py | 1 - 3 files changed, 10 insertions(+), 52 deletions(-) diff --git a/bseq/importer.py b/bseq/importer.py index 06b19a3..1d0b588 100644 --- a/bseq/importer.py +++ b/bseq/importer.py @@ -306,57 +306,19 @@ def update_obj(scene, depsgraph=None): fs = fileseq.FileSequence(full_path) - if obj.BSEQ.use_advance and obj.BSEQ.script_name: - script = bpy.data.texts[obj.BSEQ.script_name] - show_message_box(f"Cannot run custom script {obj.BSEQ.script_name} using extension from Blender extensions. Use a custom build to enable. Removing script file..." + str(e), "INFO") - obj.BSEQ.script_name = "" - # try: - # exec(script.as_string()) - # except Exception as e: - # show_message_box(traceback.format_exc(), "running script: " + obj.BSEQ.script_name + " failed: " + str(e), - # "ERROR") - # continue - - if 'process' in locals(): - user_process = locals()['process'] - try: - user_process(fs, current_frame, obj.data) - obj.BSEQ.current_file = "Controlled by user process" - except Exception as e: - show_message_box("Error when calling user process: " + traceback.format_exc(), icon="ERROR") - del locals()['process'] - # this continue means if process exist, all the remaining code will be ignored, whethere or not error occurs - continue - - elif 'preprocess' in locals(): - user_preprocess = locals()['preprocess'] - try: - meshio_mesh = user_preprocess(fs, current_frame) - obj.BSEQ.current_file = "Controlled by user preprocess" - except Exception as e: - show_message_box("Error when calling user preprocess: " + traceback.format_exc(), icon="ERROR") - # this continue means only if error occures, then goes to next bpy.object - continue - finally: - del locals()['preprocess'] - - else: - if obj.BSEQ.match_frames: - fs_frames = fs.frameSet() - if current_frame in fs_frames: - filepath = fs[fs_frames.index(current_frame)] - filepath = os.path.normpath(filepath) - meshio_mesh = load_meshio_from_path(fs, filepath, obj) - else: - meshio_mesh = meshio.Mesh([], []) - else: - filepath = fs[current_frame % len(fs)] + if obj.BSEQ.match_frames: + fs_frames = fs.frameSet() + if current_frame in fs_frames: + filepath = fs[fs_frames.index(current_frame)] filepath = os.path.normpath(filepath) meshio_mesh = load_meshio_from_path(fs, filepath, obj) + else: + meshio_mesh = meshio.Mesh([], []) + else: + filepath = fs[current_frame % len(fs)] + filepath = os.path.normpath(filepath) + meshio_mesh = load_meshio_from_path(fs, filepath, obj) - if not isinstance(meshio_mesh, meshio.Mesh): - show_message_box('function preprocess does not return meshio object', "ERROR") - continue update_mesh(meshio_mesh, obj.data) apply_transformation(meshio_mesh, obj, depsgraph) diff --git a/bseq/panels.py b/bseq/panels.py index c70cdd2..bac1206 100644 --- a/bseq/panels.py +++ b/bseq/panels.py @@ -112,9 +112,6 @@ def draw(self, context): if not obj.BSEQ.init: return - col1.label(text='Script') - col2.prop_search(obj.BSEQ, 'script_name', bpy.data, 'texts', text="") - # geometry nodes settings layout.label(text="Geometry Nodes (select sequence first)") diff --git a/bseq/properties.py b/bseq/properties.py index dd93647..a2f5fe5 100644 --- a/bseq/properties.py +++ b/bseq/properties.py @@ -121,7 +121,6 @@ class BSEQ_obj_property(bpy.types.PropertyGroup): name="Activate/Deactivate", description="If deactivated, sequence won't be updated each frame") use_advance: bpy.props.BoolProperty(default=False) - script_name: bpy.props.StringProperty(name="Script name") path: bpy.props.StringProperty(name="Path of sequence", subtype="DIR_PATH", options={'PATH_SUPPORTS_BLEND_RELATIVE' if bpy.app.version >= (4, 5, 0) else ''}) pattern: bpy.props.StringProperty(name="Pattern of sequence") current_file: bpy.props.StringProperty(description="File of sequence that is currently loaded") From 90fec9fcf0e3061a52429b7047dfe335670f29e7 Mon Sep 17 00:00:00 2001 From: Stefan Jeske Date: Wed, 26 Nov 2025 11:03:00 +0100 Subject: [PATCH 4/5] bump minor version --- blender_manifest.toml | 2 +- docs/conf.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/blender_manifest.toml b/blender_manifest.toml index 4b315ec..7fc3571 100644 --- a/blender_manifest.toml +++ b/blender_manifest.toml @@ -3,7 +3,7 @@ schema_version = "1.0.0" # Example of manifest file for a Blender extension # Change the values according to your extension id = "sequence_loader" -version = "0.3.8" +version = "0.3.9" name = "Sequence Loader" tagline = "Just-in-time loader for meshio-supported mesh file sequences" maintainer = "Stefan Rhys Jeske " diff --git a/docs/conf.py b/docs/conf.py index 8bb6f1d..6903eac 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -9,7 +9,7 @@ project = 'Sequence Loader' copyright = '2025, InteractiveComputerGraphics' author = 'InteractiveComputerGraphics' -release = '0.3.8' +release = '0.3.9' # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration From e04d9826919220b944c2ec6c5bf26a0431313fcb Mon Sep 17 00:00:00 2001 From: Stefan Jeske Date: Wed, 26 Nov 2025 11:20:13 +0100 Subject: [PATCH 5/5] update readme with information --- README.md | 24 ++++++++++++++++++++---- images/install_marketplace.png | Bin 0 -> 63451 bytes 2 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 images/install_marketplace.png diff --git a/README.md b/README.md index c51b8bd..0554610 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,12 @@ ![GitHub release (latest by date)](https://img.shields.io/github/v/release/InteractiveComputerGraphics/blender-sequence-loader) [![Documentation Status](https://readthedocs.org/projects/blender-sequence-loader/badge/?version=latest)](https://blender-sequence-loader.readthedocs.io/en/latest/?badge=latest) +## News + +* Now available for installation as an extension from the [Blender Marketplace](https://extensions.blender.org/add-ons/sequence-loader/)! + +*** + This is an addon for Blender 4.2+ (might work with 2.8+ but is not extensively tested on less recent versions) that enables loading of file sequences. All data is loaded *just-in-time* when the Blender frame changes, in order to avoid excessive memory consumption. By default, the addon is able to load vertices, lines, triangles and quads. It is also able to automatically extract triangle and quad surface meshes from tetrahedral and hexahedral volume meshes. Scalar and vector attributes on vertices are also imported for visualization purposes. The addon comes bundled together with [meshio](https://github.com/nschloe/meshio) which enables the loading of geometric data from a multitude of file formats. As stated there, the supported formats are listed in the following. Note that not all of the formats have been tested and some issues may still occur. @@ -22,9 +28,11 @@ It also loads any additional supported data as geometry node attributes that can **DISCLAIMER: This project is still very much under development, so breaking changes may occur at any time!** +- [News](#news) - [1. Installation](#1-installation) - - [1.1 Build from source (optional)](#11-build-from-source-optional) - - [1.2 Install Addon](#12-install-addon) + - [1.1 Install within blender.](#11-install-within-blender) + - [1.2 Build from source (optional)](#12-build-from-source-optional) + - [1.3 Install Addon](#13-install-addon) - [1.3 FAQs](#13-faqs) - [2. How to use](#2-how-to-use) - [1. Load the animation sequence you want](#1-load-the-animation-sequence-you-want) @@ -56,7 +64,15 @@ It also loads any additional supported data as geometry node attributes that can ## 1. Installation -### 1.1 Build from source (optional) +### 1.1 Install within blender. + +1. Go to `Preferences->Get Extensions` tab within Blender. +2. Search for `Sequence Loader` +3. Click install. + +![](images/install_marketplace.png) + +### 1.2 Build from source (optional) 1. Clone the project to download both project and dependencies @@ -71,7 +87,7 @@ git clone https://github.com/InteractiveComputerGraphics/blender-sequence-loader blender --command extension build ``` -### 1.2 Install Addon +### 1.3 Install Addon After obtaining an installable `.zip` file either from the releases page or from manually building the addon, this should be installed into blender. For more information on how to install addons see [here](https://docs.blender.org/manual/en/latest/editors/preferences/addons.html#installing-add-ons) for more details. diff --git a/images/install_marketplace.png b/images/install_marketplace.png new file mode 100644 index 0000000000000000000000000000000000000000..b4d676d219af237f31da40f7d5d2ab0acdf56ab9 GIT binary patch literal 63451 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 Pw{r78S4QNT}uWy-@l{@d84OCnydbFW_B3F4) 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