Render Blender files with agent-controlled procedural parameters for synthetic data generation. Use when generating training data with controlled variations, creating procedural image datasets, or automating Blender renders via natural language. Supports CYCLES (production) and EEVEE (fast testing) render engines.
$PATHNo additional configuration required. Ensure blender command is available:
blender --version
Adjusts procedural Value Nodes and renders a frame in Blender.
Parameters:
blend_file (string, required): Absolute path to the .blend fileparameters (object, required): Key-value pairs of Value Node names and float values (e.g., {"GrainScale": 2.5, "Roughness": 0.3})output_path (string, required): Where to save the rendered image (e.g., /path/to/output.png)samples (integer, optional): Cycles samples (default: 128). Ignored for EEVEE.engine (string, optional): Render engine - "CYCLES" (default) or "EEVEE"timeout (integer, optional): Custom timeout in seconds. Defaults: 1800 for CYCLES, 60 for EEVEE.reference_image (string, optional): Complete path to a real-world reference image. Used for computing LPIPS similarity and Naturalness Delta.compute_metrics (boolean, optional): Set to true to compute Naturalness/LPIPS metrics after rendering. Default false.Returns:
{"status": "success", "output": "/path/to/output.png", "log": "...", "engine": "CYCLES", "samples": 128, "metrics": {"naturalness_mean": 0.85, "lpips_alex": 0.12}}{"status": "error", "message": "..."}Examples:
Production quality (CYCLES):
{
"blend_file": "/home/user/project/assets/test.blend",
"output_path": "/home/user/output/render_01.png",
"parameters": {
"GrainScale": 3.0,
"DisplacementStrength": 1.5
},
"engine": "CYCLES",
"samples": 256
}
Fast testing (EEVEE):
{
"blend_file": "/home/user/project/assets/test.blend",
"output_path": "/home/user/output/test_render.png",
"parameters": {
"GrainScale": 3.0
},
"engine": "EEVEE"
}
Convenience function for fast EEVEE rendering. Same as render_procedural_scene with engine="EEVEE".
Parameters:
blend_file (string, required): Absolute path to the .blend fileparameters (object, required): Key-value pairs of Value Node names and float valuesoutput_path (string, required): Where to save the rendered imageConvenience function for production Cycles rendering. Same as render_procedural_scene with engine="CYCLES" and higher samples.
Parameters:
blend_file (string, required): Absolute path to the .blend fileparameters (object, required): Key-value pairs of Value Node names and float valuesoutput_path (string, required): Where to save the rendered imagesamples (integer, optional): Cycles samples (default: 512)Analyzes a .blend file and returns available Value Nodes that can be manipulated.
Parameters:
blend_file (string, required): Absolute path to the .blend fileReturns: Dict containing status, a complexity object evaluating scene realism, and value_nodes (available parameter names with current values).
| Feature | CYCLES | EEVEE |
|---|---|---|
| Quality | Photorealistic | Real-time |
| Speed | Slow (minutes) | Fast (seconds) |
| Timeout | 30 minutes | 1 minute |
| Use case | Production | Testing |
| Samples | Configurable | N/A |
-b flag for securitysubprocess.run(shell=False) with -- separator| File | Purpose |
|---|---|
src/synthclaw/blender_skill.py | OpenClaw execution wrapper with engine selection |
scripts/agent_bridge.py | Blender-side Python script (handles both engines) |
scripts/analyze_blends.py | Blender-side analysis script |
config/render_schema.json | Tool schema for LLM function calling |
config/analyze_schema.json | Schema for blend file analysis |
analyze_blend to see available parametersrender_procedural_scene_fast (EEVEE) for quick previewrender_procedural_scene_production (CYCLES) for final outputCompatible with Blender 4.0+. Not backwards compatible with 2.7x.