Case study: 3D placement pipeline
A 3D placement pipeline from Blender to render farm
A product placement workflow that moves from a browser plan to verified Blender scenes and repeatable renders.
Project details
Try it
Try the placement workflow.
Drag the slots around the room. The demo applies the same placement rules and shows the structured export used to prepare a scene.
drag to move · tap to select · arrow keys to nudge, bounds validation is the plugin's real AABB logic
Live export · the engine's real input format
{
"apartment": "demo_studio_01",
"designer": "zawish.si visitor",
"slots": [
{
"slot_id": "slot_room1a_Bed_Generic_01",
"usage_class": "Bed_Generic",
"sku": "BED-1042",
"pivot": "bottom",
"position_m": [
1.1,
1.35
],
"dims_min": [
1.1065,
0.0762,
1.27
],
"dims_max": [
1.6256,
2.1336,
1.4478
],
"valid": true
},
{
"slot_id": "slot_room1a_Seating_Large_02",
"usage_class": "Seating_Large",
"sku": "SOF-2210",
"pivot": "bottom",
"position_m": [
4.2,
3.8
],
"dims_min": [
1.2192,
0.5588,
0.6096
],
"dims_max": [
2.8448,
1.6766,
0.9131
],
"valid": true
},
{
"slot_id": "slot_room1a_Surface_Low_03",
"usage_class": "Surface_Low",
"sku": "TBL-0870",
"pivot": "bottom",
"position_m": [
4.2,
2.5
],
"dims_min": [
1.2192,
0.508,
0.4582
],
"dims_max": [
1.2192,
0.508,
0.4582
],
"valid": true
},
{
"slot_id": "slot_room1a_Decor_Rug_04",
"usage_class": "Decor_Rug",
"sku": "RUG-3301",
"pivot": "bottom",
"position_m": [
4.2,
2.9
],
"dims_min": [
0.6096,
0.9144,
0.0254
],
"dims_max": [
3.048,
4.2672,
0.0254
],
"valid": true
},
{
"slot_id": "slot_room1a_Lighting_Tabletop_05",
"usage_class": "Lighting_Tabletop",
"sku": "LMP-0114",
"pivot": "tabletop",
"position_m": [
4.2,
2.5
],
"dims_min": [
0.3709,
0.2127,
0.5153
],
"dims_max": [
0.5066,
0.3709,
0.5564
],
"valid": true
}
]
}The problem
From a browser floor plan to a checked Blender scene and repeatable render.
Repeated room staging becomes expensive when every layout is rebuilt by hand. The pipeline needed to place real product bundles, catch invalid layouts, and prepare scenes for rendering.
ZAWISH made a placement interface, structured scene export, Blender automation, product metadata rules, validation, and render-job preparation.
The system
How it fits together.
Scroll sideways to explore the enlarged map.
Read the components
The Blender plugin and scene export provide placement inputs. The placement engine connects to the render queue, GPU rendering, and delivery storage.
- Blender plugin
- smart slots · SKUs
- Scene export
- GLB + JSON
- Placement engine
- catalog match
- Render queue
- Redis
- GPU render farm
- ECS Fargate
- Delivery
- R2 presigned
simplified public map of implemented components and boundaries
The build
Validate the scene before expensive work begins.
Smart slots instead of meshes
A placement engine that shops the catalog
Queued rendering without idle workers
Validation before anything renders
Implementation evidence
Constraint
Scene intent had to survive the handoff from an artist tool to a catalog matcher and remote render workers.
Tradeoff
A small, explicit GLB and JSON contract is used instead of coupling Blender files directly to the rendering service.
The public demo shows the placement contract and export behavior with representative products; operational volume is intentionally not claimed.
For your business
Discuss a related system.
The public placement demo shows the interaction and export structure. Production asset libraries and render infrastructure remain private.
