lorenzozanizz/rendersynth
lorenzozanizz/rendersynth has 28 GitHub stars and 2 forks. Star changes are not measured yet. Last checked 2026-11-13 16:07 UTC. Last push 2026-10-26.
What you can do
- Distribution-Based Randomization: Define probability distributions for scene parameters using preset distributions and (work in progress) a visual node editor
- Pipeline Configuration: Build randomization pipelines by concatenating operations for object transforms, material properties, and lighting
- Batch Rendering: Automatically render multiple images with varied scene parameters, setting an initial seed of reproducibility
- JSON Configuration: Load and save pipeline configurations as JSON for version control and reproducibility
Measured star growth
- in 24h
- Collecting history
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
A Blender extension for code-less generation of synthetic image datasets for computer vision
Machine LearningREADME.md
OriginalA Blender extension for generating synthetic datasets through procedural randomization and batch rendering. This addon enables users to create diverse image datasets with controlled variations in object placement, material properties, lighting conditions, and scene parameters. Additionally, the extensions supports a preview functionality which allows to inspect the output of the pipeline and the computed labels directly inside Blender.
The extension is intended for low to medium sized computer vision products, which benefit more from ease of generation rather than the efficiency and generality of tools like Blenderproc.
Overview

The Generator provides a building-block system for defining randomization pipelines within Blender. Users can specify how objects, materials, and lighting conditions should vary across multiple renders, then automatically output images with corresponding metadata suitable for computer vision training datasets. User can also specify named classes and assign classes to blender objects. Multiple objects can be grouped together to form multi-object entities which the extension will classify as a single object.
Features
Distribution-Based Randomization: Define probability distributions for scene parameters using preset distributions and (work in progress) a visual node editor
Pipeline Configuration: Build randomization pipelines by concatenating operations for object transforms, material properties, and lighting
Batch Rendering: Automatically render multiple images with varied scene parameters, setting an initial seed of reproducibility
JSON Configuration: Load and save pipeline configurations as JSON for version control and reproducibility
Multi-Parameter Support:
- Object position, rotation, and scale
- Material textures and properties (roughness, metallic, etc.)
- Visibility and occlusion constraints
- Lighting intensity, temperature, and color
- Camera parameters and positioning, locking of camera around a central point0
- Ground plane and boundary constraints (work in progress)
Export Integration: Export rendered datasets in formats compatible with computer vision frameworks (YOLO, COCO, etc.)
Live Preview: Allows the user to generate previews of the output of the blender directly inside Blender, including boundary boxes, labels and visibility statistics
Logging system (work in progress) Allows to analyze the results of single stochastic processes to inspect the generation and the outut of constraints solvers (work in progress)
Many labeling formats The extension currently supports:
- ULTRALYITICS YOLO
- COCO
- COCO Keypoints (skeletons)
- PNG/Multilayer EXR pixel semantic segmentation
- Depth maps
- Normal maps
- CVAT XML
- Point clouds (classes, colors)
System Requirements
- Blender: 4.5.0 or later
- OS: Windows, macOS, or Linux
Installation
You can either download one of the released .zips in the Github Release section or build a release from the current repository version.
You can also find the extension on the .
Release download
- Select the release
- Download the .ext zip file
- In Blender, navigate to Edit → Preferences → Add-ons
- Click Install... and select the downloaded
.zipfile
Manual extension creation
- Download the repository and select the /ext/ extension archive and compress it as a
.ziparchive. - In Blender, navigate to Edit → Preferences → Add-ons
- Click Install... and select the downloaded
.zipfile - Enable the addon by checking the box next to "Rendersynth"
The addon will appear in the 3D Viewport sidebar under the Synthetic panel.

Quick Start
1. Create classes and entities
A distribution defines how a parameter varies across renders. Access the Distribution Editor through the Randomizer panel to create distributions for your parameters.
Distribution Editor → Add Nodes → Configure Parameters
2. Build a Pipeline
Connect operations in the pipeline editor to specify which objects and properties should be randomized.
Pipeline Tab → Add Operation → Configure Operation → Connect to Distribution
3. Configure Parameters
Specify which objects, materials, and properties are affected by each operation. Each operation can target:
- Specific objects or material slots
- Defined lighting rigs
- Camera positions
- Constraint parameters
4. Generate Dataset
Once the pipeline is configured, render the dataset specifying the amount of samples extracted from the distribution and the labeling format:
Generate Tab → Set output directory → Set frame count → Render
Outputs are saved as:
- Rendered images (PNG/EXR format)
- Metadata txt/Json files (one per frame) depending on the labeling format
- Configuration snapshot and logs (for reproducibility) Render settings are extracted from the current Blender settings at the time of generation.
Concepts
Distributions
Distributions define probability functions for randomization. Two modes are provided to randomize most operations: using a preset distribution (normal, exponential, etc...) or generating a custom distribution through a node based editor (still incomplete). The editor allows the interconnection of nodes:
- Constant: Fixed values
- Continuous (Normal, Uniform, ...): Sampled probability distributions
- Discrete: Selection from predefined values
- Selector: Random choice among inputs, allowing for complex definitions of multimodal distributions
Pipeline Operations
Operations apply randomization to scene elements:
- Transform: Position, rotation, scale
- Material: Texture and property randomization
- Lighting: Light intensity, color, temperature
- Camera: Position and orientation
- Constraints: Overlap, occlusion, distance rules (work in progress)
Configurations
Pipelines can be saved and loaded as JSON, enabling:
- Version control of experiment configurations
- Reproducible dataset generation
- Easy parameter tuning and iteration
Usage Patterns
Basic Workflow
- Set up a Blender scene with objects, materials, and lighting
- Create a set of classes and entities
- Build a pipeline concatenating stochastic variations to the scene
- Configure constraints and render settings in Blender, labeling settings in the extension
- Render the dataset and obtain text labels
Advanced Workflows
- Multi-Stage Randomization: Chain multiple operations to create complex variations
- Constrained Randomization: Use overlap, occlusion, and distance constraints to ensure valid configurations (work in progress)
- Conditional Variations: Use selector operations and folders to choose between different randomization strategies
- Parameter Sweeps: Create multiple pipeline variants to explore design space
JSON Configuration Format
Pipelines are stored as JSON for reproducibility and sharing across .blend files. The save file includes definition for all custom distributions and all the settings for all stages in a pipeline.
Limitations
- Complex shader networks may not be fully randomized through the UI and direct material node editing may be necessary for advanced cases (the idea is to randomize certain nodes in the shader which impact the appearence of the full Cycles material)
- Very large pipelines with many operations may impact interactive performance, EEVEE is recommendend for preview.
Contributing
This is a user-focused addon. Bug reports and feature requests can be submitted by opening an issue
Support
For issues, questions, or feature requests, please open an issue. First consult the available documentation.
Version: 1.0.0
Target Blender Version: 4.5+
Acknowledgements and attributions
Models from Sketchfab used on some examples. Sometimes the code was readapted from online snippets, the github repository is always cited in the code documentation when this is the case.
Explore related projects
tensorflow/tensorflow
An Open Source Machine Learning Framework for Everyone
201,585 starshuggingface/transformers
🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.
168,950 starsAUTOMATIC1111/stable-diffusion-webui
Stable Diffusion web UI
165,302 starsComfy-Org/ComfyUI
The most powerful and modular diffusion model GUI, api and backend with a graph/nodes interface. The fastest local inference engine in the world.
146,661 stars