A Blender addon that provides a node-based visual interface for composing and generating HayStack rendering commands. This addon enables users to create complex scientific visualization workflows through an intuitive node editor.
BRaaS-HPC-HayStack Composer is a Blender addon developed by IT4Innovations National Supercomputing Center for creating HayStack rendering pipelines. It allows users to visually compose rendering commands through a node-based interface, supporting various data formats including unstructured meshes, volumes, point clouds, and more.
The addon generates executable command-line instructions that can be run locally or on remote HPC clusters via the BRaaS-HPC infrastructure.
- Visual Node-Based Workflow: Create rendering pipelines by connecting nodes in Blender's node editor
- Multiple Data Loaders: Support for various scientific data formats (UMesh, OBJ, Mini, Spheres, NanoVDB, RAW volumes, etc.)
- Render Backends: Multiple rendering targets including BRaaS-HPC, hsViewer, hsViewerQT, and offline rendering
- Auto-Generate Code: Automatically generate command-line code as you modify node parameters
- Remote/Local Support: Work with both local files and remote HPC filesystem paths
- Transfer Function Editor: Create and manage volume transfer functions using Blender's material nodes
- Camera Control: Integrated camera setup with Blender camera objects
- Blender: Version 4.5.0 or higher
- Optional: BRaaS-HPC addon for remote cluster execution
- Download or clone the addon to your local machine
- Open Blender
- Go to
Edit→Preferences→Add-ons - Click
Install...button - Navigate to the addon folder and select the folder or zip file
- Enable the addon by checking the box next to "BRaaS-HPC-HayStackComposer"
-
Open Node Editor:
- In Blender, switch any area to
Node Editor(Shift+F3) - From the node editor header, select
HayStack Composerfrom the tree type dropdown
- In Blender, switch any area to
-
Access the Panel:
- In the Node Editor, press
Nto open the sidebar - Navigate to the
HAYSTACKtab to find the composer panel
- In the Node Editor, press
- Press
Shift+Ain the node editor - Navigate to
Add→DataLoadercategory - Select a data loader node (e.g.,
UMesh,OBJ,RAWVolume, etc.) - Configure the file path to your data file
- Add a
Cameranode from theScenecategory - Configure camera position, view direction, and field of view
- Add a
TransferFunctionnode for volume rendering - Create and configure a material for the transfer function
- Add a
Propertiesnode to configure rendering parameters:- Number of frames
- Paths per pixel (sampling rate)
- Default radius for primitives
- Merge options
- Add an
OutputImagenode to specify output path and resolution
- Add a render node from the
Outputcategory:- hsBlender(BRaaS-HPC): Render on remote HPC cluster
- hsViewer: Interactive local viewer
- hsViewerQT: Qt-based interactive viewer
- hsOffline: Offline batch rendering
- Connect data loader outputs to the render node input
- Connect camera and other scene nodes to the render node
- The render node can accept multiple inputs (up to 100 connections)
- Click
Generate Tree Codebutton in the HAYSTACK panel - The generated command will be saved in a Blender text block
- Access it from the Text Editor in Blender
Enable automatic code generation for real-time feedback:
- In the HAYSTACK panel, check
Auto Generate Node Code - Adjust the FPS slider to control update frequency (1-30 FPS)
- Select any node in the tree
- As you modify node parameters, code is automatically generated
- The generated code appears in a text block named
{TreeName}_command_node.cmd
If you have the BRaaS-HPC addon installed:
- Go to
Edit→Preferences→Add-ons - Find
BRaaS-HPC-HayStackComposersettings - Enable
Remote/Localtoggle for remote file access - In the Node Editor sidebar, use the
Remotepanel to browse remote filesystems - Navigate directories and select files directly from the HPC cluster
HAYSTACK Panel (Sidebar → HAYSTACK tab):
- Generate Tree Code: Creates full command from entire node tree
- Auto Generate Node Code FPS: Sets refresh rate for auto-generation
- Auto Generate Node Code: Toggle automatic code generation
- Generate Node Code: Generate code for currently selected node only
- Active Node: Displays currently selected node name
Remote Panel (when remote mode enabled):
- Remote path: Current path on remote filesystem
- File browser: Navigate and select files from HPC cluster
- UMesh: Unstructured mesh files (.umesh)
- OBJ: Wavefront OBJ mesh files
- Mini: Mini mesh format files
- Spheres: Raw sphere data with configurable format and radius
- TSTri: Tim Sandstrom triangle files
- NanoVDB: NanoVDB volume files with optional spacing
- RAWVolume: Raw volume data with format, dimensions, and channels
- Boxes: Raw box primitive data
- Cylinders: Raw cylinder primitive data
- SpatiallyPartitionedUMesh: Spatially partitioned unstructured meshes
- Camera: Define camera position, view direction, up vector, and field of view
- TransferFunction: Volume transfer function using Blender materials
- Properties: Configure rendering parameters
- Num. frames: Accumulation frames
- Paths per pixel: Sampling rate
- Merge umeshes: Merge multiple unstructured meshes
- Default Radius: Default sphere/cylinder radius
- Measure: Enable performance measurement
- ndg: Number of data groups
- dpr: Data groups per rank
- Head node: Enable head node creation
- Output Image: Specify output filename, directory, and resolution
- hsBlender(BRaaS-HPC): Render on HPC cluster with hostname and port
- hsViewer: Interactive viewer
- hsViewerQT: Qt-based interactive viewer
- hsOffline: Offline rendering
- Orange sockets: HayStack command/data flow connections
-
Add
RAWVolumenode- Set file path to your .raw volume file
- Configure format (e.g., float)
- Set dimensions (e.g., 512, 512, 512)
- Set channels (e.g., 1)
-
Add
Cameranode- Set camera position (vp)
- Set view direction (vi)
- Adjust field of view (fovy)
-
Add
TransferFunctionnode- Click "Create Material" to generate a transfer function material
- Edit the color ramp and opacity curve in the material editor
- Specify output .xf filename
-
Add
OutputImagenode- Set output filename (e.g., "render.png")
- Set output directory
- Set resolution (e.g., 1920, 1080)
-
Add
Propertiesnode- Set paths per pixel (e.g., 16 for better quality)
- Set num. frames for accumulation
-
Add
hsViewerorhsBlender(BRaaS-HPC)node- Set executable path
- For BRaaS-HPC: configure hostname and port
-
Connect all nodes to the render node input
-
Click "Generate Tree Code" to create the command
The addon generates command-line arguments that follow this general structure:
<executable_path> <data_files> --camera <vp> <vi> <vu> -fovy <angle> -xf <transfer_function> -o <output_path> -res <width> <height> --num-frames <frames> --paths-per-pixel <spp> [additional_options]
This software is licensed under the terms of the GNU General Public License.
This work was supported by the Ministry of Education, Youth and Sports of the Czech Republic through the e-INFRA CZ (ID:90254).