Professional experience case study
Blender Automation
An automated 3D asset-to-render workflow that connects asset discovery, AI-assisted requirement extraction, cloud file transfer, and headless Blender rendering. The implementation combines n8n, an LLM integration, Sketchfab assets, Google Drive, a Flask service, and Google Cloud infrastructure. Alongside the working rendering pipeline, the project explored the limitations of generating complex procedural animations through LLM-produced Blender scripts.
Engineering highlights
- Asset requirement extraction and Sketchfab retrieval
- Asset transfer through Google Drive
- Headless Blender execution using xvfb-run on a GCP VM
- Scene construction and PNG or MP4 rendering branches
Implementation notes
An integrated asset-to-render pipeline
The workflow uses n8n to coordinate the process and an LLM to extract scene requirements for up to two assets. Sketchfab provides the 3D assets, while Google Drive handles file transfer between workflow stages. A Flask service deployed on a Google Cloud VM receives rendering jobs, downloads the required files, and invokes Blender in background mode through xvfb-run. Rendered outputs are then stored in Google Cloud Storage.
The Blender-side implementation includes GLTF/GLB asset importing, scene setup, bounding-box-based normalization, camera and lighting configuration, and image or video rendering. The rendering code also includes GPU detection with a CPU fallback. This project brought together workflow orchestration, API development, file handling, 3D tooling, and cloud infrastructure in one automated process.
Investigating procedural animation
Extending the pipeline from static rendering to animation exposed a different class of problems. LLM-generated Blender scripts made incorrect assumptions about scene objects, armatures, animation context, and keyframe operations. Generating syntactically valid Python was not enough to guarantee a valid or convincing animation.
The investigation moved toward template-based animation and controlled changes to object transforms and timing rather than relying entirely on unconstrained generated scripts. Some experiments required manual corrections and viewport playback validation. The work demonstrated the gap between generating a scene or animation script and producing a coherent animation with meaningful object interaction. Complex procedural animation was not fully solved.
Technical areas
n8n · LLM integration · Sketchfab · Google Drive · Flask · Blender Python · Google Cloud Platform