Blender 3D scene building

Client-style 3D jobs done by an agent in live Blender: the finished .blend scene and its full trajectory.

Built to orderImproves: 3D modeling in Blender

Request samples
API requests per trajectory
38–⁠15749–⁠198 tool calls
Automatic checks passed
83 / 83Across the ten samples
Median run time
51 minRange 17–⁠169 min
One unit
One finished .blend scene and its full request-level trajectory
Format
.blend (Blender 4.5 LTS), JSONL trajectory, zstd-compressed
Agent
Claude Opus 5.5 in Claude Code, max effort
Agent tools
Blender via MCP (Python, scene queries, screenshots), shell, files
Client requests
1–⁠3 messages in English, some with a floor plan, drawings, a table, a logo or a .blend file attached

Overview

Each unit is a 3D job written the way a client writes one, some with a floor plan, drawings, a logo or a .blend file attached. An agent does it in live Blender, writing Python for everything it adds, and hands back the finished scene with the full request-level trajectory.

What you get

<task>/
├── scene.blend         finished scene
├── requests.jsonl.zst  trajectory
├── request/            the request and the files sent with it
├── checks.json         check results
└── previews/           rendered views
  • Trajectory. One JSON line per Messages API request: the full request, with tool definitions and every screenshot, and the complete response.
  • Screenshots. Every view the agent took of its own work is in the trajectory; the in-progress frames in the samples below come from there.
  • Thinking. Thinking blocks hold the summaries the API returns.
  • Checks. Each check states the requirement, the measured value and the verdict.
  • Size. Scene and trajectory together: 3–⁠31 MB per unit.

Challenge coverage

Each of the ten samples stresses something different. A column number jumps to that sample.

Challenge 1 2 3 4 5 6 7 8 9 10
Works from supplied files (plan, drawings, logo, .blend) ● ● ● ●
A second message changes the job ● ● ●
Real-world sizes and units ● ● ● ● ● ● ●
Naming and scene organization rules ● ● ● ● ● ● ● ●
Timed animation (set length, seamless loop, still ending) ● ● ● ● ●
Triangle and material limits, UV and pivot rules ● ● ●
Exact colors (hex values or a fixed palette) ● ●
Explicit must-not rules ● ● ● ● ●
Physics, rigging, parametric modeling, file cleanup ● ● ● ●

Samples

Each card walks through one job from the request to the finished scene: the request as written, the files sent with it, the agent’s own screenshots and test renders along the way, and the finished scene. Click any image to enlarge it and step through the sequence.

Sample 1 of 10

Bungalow from a floor plan, then golden hour and a walk-through

  • Architecture
  • Interior
  • Lighting
  • Camera animation
  • 2 messages
  • Attachments: plan drawing, plan JSON, room schedule
  • Hard parts
  • Built to the plan's measurements
  • One named collection per room
  • Message 2: golden hour, 25 s walk-through
  • Two doors don't fit as drawn

A retired couple send their architect’s ground-floor plan three ways (a drawing, the same plan as numbers in a JSON file, and a room schedule) and want the bungalow built exactly to it: living room and kitchen-dining furnished, pool, terrace and garden at real size, every room in its own group named as on the plan. A second message asks for golden-hour light from the pool side and a slow 25-second walk-through from the front door to the pool. While reading the plan, the agent notices that two of its doors run 5 cm into the outside wall; it builds them as drawn and explains the fix in its reply.

The request, verbatim

Message 1

… My husband and I are retired and building our first new house, a two-bedroom bungalow near the coast. Before the builder starts in the spring, we would like to walk around it in 3D and get a feel for the rooms. The architect's plan is attached as plan.png. The same plan is in plan.json as numbers, and the room sizes are in room_schedule.csv. Please build it exactly to those measurements, with the doors and windows where the plan shows them. We'd like the living room and the kitchen-dining furnished properly, with a sofa, table, chairs and so on, so we can judge whether the space works. The bedrooms can stay empty for now. Outside we need the pool, which is 9 m by 4 m, plus the terrace, the lawn and some planting, all at real size. Our grandson wants to walk through it in a game engine later. He asked that each room be kept as its own separate group, named the same as on the plan. Could you have it ready in about three weeks? …

Message 2

Thank you, it's lovely to see it. Could you set the light to golden hour, with the low sun coming from the pool side? And please add a slow walk-through camera that starts at the front door, goes through the living room and out to the pool, about 25 seconds long.

From request to finished scene

  1. Attachment

    The architect's ground-floor plan that came with the request: a 25 × 25 m plot, the house 12.30 × 7.20 m to wall center lines with 3.00 m ceilings, a 9.00 × 4.00 m pool and a 6.00 × 2.70 m terrace.

    The architect's ground-floor plan that came with the request: a 25 × 25 m plot, the house 12.30 × 7.20 m to wall center lines with 3.00 m ceilings, a 9.00 × 4.00 m pool and a 6.00 × 2.70 m terrace.

  2. Message 1, tool call 27 of 125

    The agent's first test build with roof and ceilings hidden, seen from above and from the street side: seven rooms laid out from the plan's coordinates, door and window openings cut, floors already in oak, tile and carpet.

    The agent's first test build with roof and ceilings hidden, seen from above and from the street side: seven rooms laid out from the plan's coordinates, door and window openings cut, floors already in oak, tile and carpet.

  3. Message 1, tool call 45 of 125

    The furnished plan, seen through a camera that cuts the house at 2.9 m: a table for six in the dining room, sofa, armchair and rug in the living room, an L-shaped kitchen with a breakfast table, and the two bedrooms left empty as asked.

    The furnished plan, seen through a camera that cuts the house at 2.9 m: a table for six in the dining room, sofa, armchair and rug in the living room, an L-shaped kitchen with a breakfast table, and the two bedrooms left empty as asked.

  4. Message 1, tool call 54 of 125

    Test render of the living room: the sofa faces the TV wall, with a bookcase and an armchair. On the left the opening to the hall lines up with the open front door and the street; on the right is the sliding door to the terrace.

    Test render of the living room: the sofa faces the TV wall, with a bookcase and an armchair. On the left the opening to the hall lines up with the open front door and the street; on the right is the sliding door to the terrace.

  5. Message 1, tool call 66 of 125

    The garden side in daylight, before the second message: the 9 × 4 m pool with its entry steps, the terrace outside the sliding door, planting beds and the two trees from the plan.

    The garden side in daylight, before the second message: the 9 × 4 m pool with its entry steps, the terrace outside the sliding door, planting beds and the two trees from the plan.

  6. Message 1, tool call 82 of 125

    The kitchen: L-shaped units with the sink under the window, hob and hood, oven and a tall fridge-freezer. The units stop short of the back door on the right so it can open fully.

    The kitchen: L-shaped units with the sink under the window, hob and hood, oven and a tall fridge-freezer. The units stop short of the back door on the right so it can open fully.

  7. Message 2, tool call 115 of 125

    Six frames of the walk-through (frames 1, 60, 120, 300, 450 and 600), rendered by the agent to check it: from the street end of the front path, through the open front door and the hall, a pause facing the TV wall, then across the lawn to the edge of the pool. With the sun low beyond the pool, the street side is in shade and the lawn is striped with long shadows.

    Six frames of the walk-through (frames 1, 60, 120, 300, 450 and 600), rendered by the agent to check it: from the street end of the front path, through the open front door and the hall, a pause facing the TV wall, then across the lawn to the edge of the pool. With the sun low beyond the pool, the street side is in shade and the lawn is striped with long shadows.

  8. Finished scene

    The delivered scene after the second message, in golden-hour light: the sun is low beyond the pool, and the shrubs along the back boundary throw long shadows across the lawn.

    The delivered scene after the second message, in golden-hour light: the sun is low beyond the pool, and the shrubs along the back boundary throw long shadows across the lawn.

  9. Finished scene, top view

    The same scene from directly above with the roof cut away, to set beside the plan: the furnished rooms, terrace, pool, the two trees, planting along the back and side boundaries, the driveway and the front path.

    The same scene from directly above with the roof cut away, to set beside the plan: the furnished rooms, terrace, pool, the two trees, planting along the back and side boundaries, the driveway and the front path.

Result

minutes
107
API requests
103
tool calls
125
objects
143
triangles
77,414
checks passed
11 / 11
Acceptance checks (11 of 11 passed)
  • ✓A collection named Bedroom 2, as on the plan: present.
  • ✓A collection named Living Room, as on the plan: present.
  • ✓A collection named Dining Room, as on the plan: present.
  • ✓A collection named Kitchen, as on the plan: present.
  • ✓At least one collection per room on the plan (7 rooms): 18 collections, the seven rooms plus house, roof, garden parts and cameras.
  • ✓Scene at least as long as the house's outside length of 12.6 m: met.
  • ✓Scene at least as tall as the 3.0 m ceiling: met.
  • ✓A pool of 9 × 4 m: the pool water measures 9.0 × 4.0 m.
  • ✓A walk-through camera (message 2): present.
  • ✓The camera moves along the walk-through (message 2): it is the one moving object in the scene.
  • ✓Walk-through about 25 seconds long (message 2): 600 frames at 24 fps, 25.0 s.
From the trajectory: the agent's hand-over note

Reply to message 1

- All seven rooms match the room schedule exactly, 88.56 m² in total, with 3.00 m ceilings. - All 9 doors and 8 windows are where the plan puts them, at the right width, height and sill height. … Two doors don't quite fit where they're drawn: - the door from the hall into Bedroom 2 (D2) - the door from the living room into the dining room (D5) Each is 90 cm wide, but its edge sits 5 cm inside the outside wall, and the drawing shows the same. As drawn, the builder would have to cut into the outside wall, and the door would rub against it when opened. I've modelled both exactly as drawn, with the frame packed out on that side so the door can still open. The fix is easy: move each door 5–10 cm away from the outside wall, or use an 80 cm door. It's best settled before the builder starts.

Reply to message 2

- I checked the whole route by measuring it: it never passes through a wall or furniture, it keeps at least 35 cm clear at body height, and the head turns stay gentle.

Sample 2 of 10

Toy town knocked down for a vertical game ad

  • Physics simulation
  • Animation
  • Mobile game ad
  • 1 message
  • Hard parts
  • All three buildings down
  • Still for the last second
  • Low tracking camera
  • Tidy, named scene

A producer at a small studio that makes ads for mobile games wants an 8-second vertical hook: a giant bowling ball rolls down a bright toy-town street and knocks over three buildings of about 300 chunky blocks, filmed by a low camera that follows the ball. The blocks fall under real rigid-body physics: in the agent’s early runs the ball stalled against the cottage and then the tower, and loose blocks kept creeping and toppling until the last frame, but the brief needs everything still for the final second, where the end card comes in. The agent kept the ball on a guided path through all three buildings, slowed the last settling to a stop by frame 198 and baked the motion into keyframes.

The request, verbatim

… So I'm a producer at a small studio that makes short ads for mobile games and apps. One of our puzzle game clients has seen installs flatten out, so we're testing a few new hooks. The one everyone liked in the pitch is basically a giant bowling ball flattening a toy town, ha. What I'm picturing is about 8 seconds at 30 fps: a bright street with three buildings made of stacked toy blocks, roughly 300 blocks total, chunky and soft like plastic or clay toys. The ball rolls down the street and knocks all three over. By the last second everything has settled with nothing wobbling, because that's where our end card comes in. Camera low, down near the ball and following it, and vertical for phones. Sorry in advance, our editor is fussy, so a tidy, sensibly named scene would save me some grief.

From request to finished scene

  1. Message 1, tool call 16 of 167

    The agent's viewport once the street is built: the red brick cottage, the blue-and-yellow tower and the town hall with its turrets, 292 blocks in all, before any physics runs.

    The agent's viewport once the street is built: the red brick cottage, the blue-and-yellow tower and the town hall with its turrets, 292 blocks in all, before any physics runs.

  2. Message 1, tool call 54 of 167

    An early camera move, checked as a 15-frame contact sheet from frame 1 to 240. The camera runs too close to the cottage: its bricks fly through the lens, and at frame 58 a red brick fills the whole picture.

    An early camera move, checked as a 15-frame contact sheet from frame 1 to 240. The camera runs too close to the cottage: its bricks fly through the lens, and at frame 58 a red brick fills the whole picture.

  3. Message 1, tool call 80 of 167

    Another 15-frame check from frame 1 to 240, after the agent measured how close every block comes to the camera, moved the roadside trees back to open a lane beside the street, re-ran the simulation and re-planned the camera move: no frame is blocked, and no block comes within 0.78 m of the camera.

    Another 15-frame check from frame 1 to 240, after the agent measured how close every block comes to the camera, moved the roadside trees back to open a lane beside the street, re-ran the simulation and re-planned the camera move: no frame is blocked, and no block comes within 0.78 m of the camera.

  4. Message 1, tool call 131 of 167

    Test renders of frames 1, 50, 96 and 240, after the agent toned down the ball's swirl and reworked its spin so that it rolls instead of skidding over the rubble and comes to rest with the finger holes toward the camera.

    Test renders of frames 1, 50, 96 and 240, after the agent toned down the ball's swirl and reworked its spin so that it rolls instead of skidding over the rubble and comes to rest with the finger holes toward the camera.

  5. Message 1, tool call 151 of 167

    Full-resolution test render of frame 36: the cottage bursts apart around the ball, with motion blur and depth of field, while the tower and the town hall wait down the street.

    Full-resolution test render of frame 36: the cottage bursts apart around the ball, with motion blur and depth of field, while the tower and the town hall wait down the street.

  6. Finished scene, frame 1

    The delivered scene through its camera: the ball rolls toward the red brick cottage.

    The delivered scene through its camera: the ball rolls toward the red brick cottage.

  7. Finished scene, frame 240

    The last frame: the ball rests on the rubble with its finger holes toward the camera, nothing has moved since frame 198, and open sky leaves room for the end card.

    The last frame: the ball rests on the rubble with its finger holes toward the camera, nothing has moved since frame 198, and open sky leaves room for the end card.

Result

minutes
94
API requests
157
tool calls
167
objects, 295 of them moving
364
frames at 30 fps
240
checks passed
5 / 5
Acceptance checks (5 of 5 passed)
  • ✓About 8 seconds at 30 fps: the timeline runs 240 frames at 30 fps.
  • ✓Roughly 300 separate blocks: the scene holds 361 separate meshes, 292 of them blocks in the three buildings.
  • ✓The ball and the blocks really move: 295 objects move during the shot, the ball and all 292 blocks among them.
  • ✓Everything settled for the end card: no object moves between the last two frames.
  • ✓A camera for the shot: the scene has one camera, set as the scene camera.
From the trajectory: the agent's hand-over note
- Frame 24: it smashes through the red brick cottage. - Frame 58: it knocks down the blue-and-yellow apartment tower. - Frame 90: it plows through the town hall with its turrets and clock tower. - Frame 144: the ball comes to rest on the rubble with its finger holes turned toward camera. - End card: nothing moves after frame 198. Frames 211–240 are a completely still frame: every block, the ball, the camera and the zoom. … - Everything sits in named groups: CAMERA, LIGHTS, BALL, BUILDINGS (one group per building) and ENVIRONMENT. Objects, materials and animations all have readable names, with no leftover defaults. - The timeline has markers on each hit, on "ball at rest", on "all still" and on "end card in".

Sample 3 of 10

Tank locomotive from engineering drawings, wheels and rods turning

  • Mechanical
  • Vehicle
  • Hard-surface modeling
  • Animation
  • 1 message
  • Attachments: 2 drawings, parts list
  • Hard parts
  • Sizes from two drawings
  • 66 parts named as listed
  • Seamless 3 s loop
  • Parts clash as drawn

A volunteer at a heritage railway asks for a 3D model of a 0-4-0 side tank locomotive for a station display where visitors pick a part on screen and see its name. Side and front elevations (SVG and PNG) and a 33-line parts list come with the request: every visible part must be its own object named exactly as in the list, the engine 5.7 m over the buffers, with the wheels and rods turning once every 3 s in a seamless loop. The frames follow the agent from the drawings to the finished engine, including its overlays of both drawings on true-scale renders of the model. Reading the drawings and checking the motion, it found four places where parts pass through each other as drawn: it fixed two where the change cannot be seen in either drawing, and reported the other two in its hand-over note.

The request, verbatim

… I volunteer with a small heritage railway, and we're putting together an interactive display in the station shed about the little quarry engines that worked the line before the war. We'd like a 3D model of one of them, built from the attached drawings. The vector versions are loco_side.svg and loco_front.svg, with loco_side.png and loco_front.png in case those are easier to read, and parts.csv is the parts list. It's a 0-4-0 side tank, 5.7 m over the buffers. The idea is that visitors pick a part on screen and see what it's called. So every visible part needs to be its own separate piece, named exactly as in the parts list. Just the engine please, no track or scenery, because we have our own backdrop. We'd also like the wheels and coupling rods turning through one full revolution in 3 s, looping smoothly so it can run all day. Accuracy matters more than shine to us. A few of our members know these engines down to the last rivet and will spot anything wrong!

From the attached parts.csv (4 of 33 rows):

part qty material note
wheel 4 cast steel spoked, 1000 mm dia. on tread, 12 spokes
coupling_rod 2 forged steel 1950 mm centres
smokebox_door 1 steel plate dished, hinged on the right
cab_window 2 glass in brass frame round front spectacles

From request to finished scene

  1. Attachment

    loco_side.png, the side elevation at 1:20 with its main parts labeled: 5700 mm over the buffers, 3100 mm to the cab roof, 1000 mm wheels on a 1950 mm wheelbase.

    loco_side.png, the side elevation at 1:20 with its main parts labeled: 5700 mm over the buffers, 3100 mm to the cab roof, 1000 mm wheels on a 1950 mm wheelbase.

  2. Attachment

    loco_front.png, the front elevation: 2000 mm wide on 762 mm gauge track, smokebox 940 mm across, buffers 1300 mm apart.

    loco_front.png, the front elevation: 2000 mm wide on 762 mm gauge track, smokebox 940 mm across, buffers 1300 mm apart.

  3. Message 1, tool call 27 of 54

    The first full build, already with all 66 parts, seen from the side, from a three-quarter view, from the front and from above.

    The first full build, already with all 66 parts, seen from the side, from a three-quarter view, from the front and from above.

  4. Message 1, tool call 32 of 54

    The agent rendered the model side-on at the drawing's 1:20 scale and laid the side elevation over it: the drawn lines fall on the edges of every part, from buffers and wheels to chimney and cab.

    The agent rendered the model side-on at the drawing's 1:20 scale and laid the side elevation over it: the drawn lines fall on the edges of every part, from buffers and wheels to chimney and cab.

  5. Message 1, tool call 33 of 54

    The same check from the front: roof arch, round front windows, smokebox door, tanks, buffers and wheels all sit on the drawing's lines, with its part labels still in place.

    The same check from the front: roof arch, round front windows, smokebox door, tanks, buffers and wheels all sit on the drawing's lines, with its part labels still in place.

  6. Message 1, tool call 34 of 54

    Twelve frames from one wheel turn (frames 1 to 67 of the 72 that make 3 s at 24 fps): the coupling rod stays level while the connecting rod and crosshead follow the crank.

    Twelve frames from one wheel turn (frames 1 to 67 of the 72 that make 3 s at 24 fps): the coupling rod stays level while the connecting rod and crosshead follow the crank.

  7. Message 1, tool call 41 of 54

    A trailing wheel up close: twelve spokes as the parts list asks, the balance weight opposite the crank, and the connecting rod on its crank pin.

    A trailing wheel up close: twelve spokes as the parts list asks, the balance weight opposite the crank, and the connecting rod on its crank pin.

  8. Message 1, tool call 42 of 54

    Both sides with materials shown. The request named no colors, so the agent chose them: green body, black smokebox, red buffer beams, brass fittings.

    Both sides with materials shown. The request named no colors, so the agent chose them: green body, black smokebox, red buffer beams, brass fittings.

  9. Finished scene

    The finished engine in 66 separate parts, with no track or scenery, as the request asked.

    The finished engine in 66 separate parts, with no track or scenery, as the request asked.

Result

minutes
47
API requests
46
tool calls
54
separate parts (18 moving)
66
triangles
47,536
checks passed
12 / 12
Acceptance checks (12 of 12 passed)
  • ✓Length over the buffers 5.7 m: measured 5.70 m.
  • ✓Overall width 2.0 m, as on the front drawing: measured 2.00 m.
  • ✓Height to the cab roof 3.1 m, as on the side drawing: met.
  • ✓Wheel diameter 1.0 m: met.
  • ✓Smokebox diameter 0.94 m: measured 0.94 m.
  • ✓Four wheels, each its own object named as in the parts list: 4 found.
  • ✓Two coupling rods, named as in the parts list: 2 found.
  • ✓Two cylinders, named as in the parts list: 2 found.
  • ✓Four buffer heads, named as in the parts list: 4 found.
  • ✓Two side tanks, named as in the parts list: 2 found.
  • ✓Two cab windows, named as in the parts list: 2 found.
  • ✓Frame plates present under their parts-list name: frame_plate and frame_plate.001.
From the trajectory: the agent's hand-over note
Two changes I made Both are invisible in your drawings. As drawn, these parts would pass through each other on every turn: - Leading crank pins: these now stop at the coupling rod's outer face, because that rod is all they carry. At full length they would hit the slide bars and the connecting rod. - Crossheads: the inner face is 40 mm further out than drawn, so the coupling rod passes behind it. The crosshead is hidden behind the cylinder in the front view anyway. Things your members should check - Cylinders: as drawn, they overlap the leading wheel tyres by about 50 mm. I left them alone because their position is clear in both drawings, and the overlap only shows from underneath. A related 5 mm overlap between the connecting rod and the lower slide bar can't be seen at all. - Coupling hooks: the SVG draws these pointing downwards, and I kept that. Real drawhooks usually point up. - Smokebox door: I've hinged it on the right as you face the front, which is the engine's left. That's the way the hinge straps run in your drawing.

Sample 4 of 10

Sideboard in three finishes, then a fourth

  • Product model
  • Furniture
  • Materials and variants
  • 2 messages
  • Hard parts
  • Exact size: 1800 × 420 × 800 mm
  • One switchable collection per finish
  • Message 2: fourth finish, first three untouched
  • No lights or backdrop

A small furniture brand moving its catalog into an online configurator needs its mid-century sideboard modeled at real size: a timber body on a metal frame with legs, 4 doors, 3 drawers and handles on all of them. Oak, walnut and black finishes each go in their own collection so the configurator can switch between them; every finish must measure exactly 1800 × 420 × 800 mm, and lights and backdrop stay out because the configurator supplies its own. The brief names only the frame for the black finish, not the body, and once the first three are approved a second message asks for a fourth with the frame in steel blue.

The request, verbatim

Message 1

Type of project: Product model, furniture, paid About us: Small furniture brand. We're moving our catalogue into an online configurator this autumn. Description: We need our mid-century sideboard modelled for the configurator. It's a timber body on a metal frame with legs, with 4 doors and 3 drawers and handles on all of them. Overall size is 1800 mm wide, 420 mm deep and 800 mm high. It comes in three finishes: oak, walnut, and a matte black powder-coated frame. Each finish has to sit in its own collection called Oak, Walnut and Black so the configurator can switch between them. No lights or backdrop needed because the configurator supplies its own. We just need the product at real size. Deadline: End of next month …

Message 2

Thanks, this looks good. Sales now want a fourth option: the frame in … steel blue. Can you add that and set it up the same way as the other three, in its own collection? "Steel Blue" works for us as the name.

From request to finished scene

  1. Message 1, tool call 34 of 198

    The agent's first look at its build in the viewport, from the front, three-quarter, top and right: body, four doors, three drawers, bar handles, frame and splayed legs.

    The agent's first look at its build in the viewport, from the front, three-quarter, top and right: body, four doors, three drawers, bar handles, frame and splayed legs.

  2. Message 1, tool call 88 of 198

    Test render of the Black collection: a black-stained timber body on the matte black frame. The brief names only the frame for black, so the agent flags this reading in its hand-over.

    Test render of the Black collection: a black-stained timber body on the matte black frame. The brief names only the frame for black, so the agent flags this reading in its hand-over.

  3. Message 1, tool call 101 of 198

    The walnut texture the agent painted in code, shown whole. The file packs it at 4096 × 2048, next to the oak and black-stained timber maps from the same script.

    The walnut texture the agent painted in code, shown whole. The file packs it at 4096 × 2048, next to the oak and black-stained timber maps from the same script.

  4. Message 1, tool call 105 of 198

    The Oak collection from the same camera as Black. The agent renders every finish from this view to compare them.

    The Oak collection from the same camera as Black. The agent renders every finish from this view to compare them.

  5. Message 1, tool call 107 of 198

    The Walnut collection from the same camera: the same 20 parts as Oak, with a walnut body.

    The Walnut collection from the same camera: the same 20 parts as Oak, with a walnut body.

  6. Message 2, tool call 181 of 198

    The fourth finish from the second message, from the same camera: frame and legs in steel blue under the oak body, handles still matte black.

    The fourth finish from the second message, from the same camera: frame and legs in steel blue under the oak body, handles still matte black.

  7. Message 2, tool call 182 of 198

    Close-up of a steel-blue leg where it meets the frame.

    Close-up of a steel-blue leg where it meets the frame.

  8. Message 2, tool call 183 of 198

    The same close-up of the Oak collection, rendered for comparison: its black frame and legs are as approved.

    The same close-up of the Oak collection, rendered for comparison: its black frame and legs are as approved.

  9. Finished scene, door and drawer open

    The delivered file, rendered with one door swung open and the middle drawer pulled out, using the hinge and slide-direction data the agent stored on each door and drawer. Inside is a shelf; below, the steel-blue frame.

    The delivered file, rendered with one door swung open and the middle drawer pulled out, using the hinge and slide-direction data the agent stored on each door and drawer. Inside is a shelf; below, the steel-blue frame.

Result

minutes
169
API requests
114
tool calls
198
finishes × parts (80 objects)
4 × 20
triangles per finish
6,072
checks passed
8 / 8
Acceptance checks (8 of 8 passed)
  • ✓Overall width 1800 mm: measured 1800 mm.
  • ✓Overall depth 420 mm: measured 420 mm.
  • ✓Overall height 800 mm: measured 800 mm.
  • ✓A collection named Oak for the oak finish: present.
  • ✓A collection named Walnut for the walnut finish: present.
  • ✓A collection named Black for the matte black finish: present.
  • ✓A collection named Steel Blue for the fourth finish (message 2): present.
  • ✓At least four finish materials in the file, hidden finishes included: 5.
From the trajectory: the agent's hand-over note

Reply to message 1

Two readings of the brief to confirm: 1. Black finish. The brief names only the frame for black, so I made Black a third complete sideboard with a black-stained body and put the black frame under all three. If you meant oak and walnut bodies sharing one black frame, with Black holding just the frame, say so; it is a small change. 2. Depth. The carcass is 420 mm deep. The fronts sit 24 mm back and the handles project 22 mm, so nothing passes 420.

Reply to message 2

Oak, Walnut and Black are unchanged. I added to the approved file instead of rebuilding it, and a comparison against that file shows the three collections identical. … 1. Body. Your request names only the frame, so I put it on the oak body. If Sales want it on walnut instead, that is a material swap; if they want it on walnut as well, that would be a further collection. 2. Handles. I left them black for the same reason. Say if they should match the frame. …

Sample 5 of 10

Post-office hall for a vision dataset

  • Interior
  • Scene assembly
  • CV training scene
  • 1 message
  • Hard parts
  • No person shapes, no screen content
  • One object per item, 12 fixed classes
  • Real size: 11 × 6 m hall
  • Movable posts, belts follow

A four-person computer-vision team wants one realistic small post office for rendering the frames that train their queue-length estimator: an 11 × 6 m counter hall with a 2.8 m ceiling and a 3.5 × 2.5 m parcel-locker alcove. Every item has to be a separate object named by class and two-digit index (locker_bank_01), using only twelve given classes, and nothing person-shaped and nothing on any screen may appear anywhere, because either would poison the labels. The frames run from an early screenshot through the agent’s test renders of each zone, where it caught the entrance glass rendering black and fixed the cause, to the finished hall with 68 labeled objects.

The request, verbatim

We're a four-person CV team generating synthetic frames to train a queue-length estimator, and the next target domain is small post offices. We need one realistic interior: counter hall plus a self-service locker alcove. Target is end of the month. 1. Hall: 11 m x 6 m floor, 2.8 m ceiling. Main entrance on one of the 11 m walls, counter along the opposite one. 2. Alcove: 3.5 m x 2.5 m, open to the hall through a wide opening, same ceiling height. 3. Parcel lockers: 3 banks in the alcove with mixed compartment sizes. One bank has a small terminal. 4. Service counter with glazing above it, long enough for staff at several positions. 5. Queue: belt stanchions forming a lane with two switchbacks that ends at the counter. We will move these between variants, so each post stays a separate object. 6. Seating: 8 waiting seats. A mix of single chairs and linked rows is fine as long as each seat is its own object. 7. Writing desks (2-3) with a leaflet stand nearby, plus bins, plants, ceiling lights, wall displays, signs and doors. 8. Units: real metres everywhere, nothing scaled up or down. 9. Naming: one object per item, <class>_<nn> with a two-digit index. Classes are limited to locker_bank, counter, stanchion, waiting_seat, writing_desk, door, ceiling_light, wall_display, plant, leaflet_stand, bin, sign. One collection per class. Hard stop: no human figures, mannequins or silhouettes anywhere, and no screen showing anything. Locker terminal and wall displays are flat dark panels. Anything person-shaped or any text on a screen poisons our labels. Not in scope: animation, exterior, street facade.

From request to finished scene

  1. Message 1, tool call 20 of 87

    The room shell with the counter, three locker banks and twelve queue posts in place, seen from above and from outside the entrance wall with the ceiling hidden. The counter runs along the wall opposite the entrance, and the alcove opens off the right-hand end of the hall.

    The room shell with the counter, three locker banks and twelve queue posts in place, seen from above and from outside the entrance wall with the ceiling hidden. The counter runs along the wall opposite the entrance, and the alcove opens off the right-hand end of the hall.

  2. Message 1, tool call 49 of 87

    Test render of the alcove: three locker banks with mixed compartment sizes, the middle one carrying the terminal, whose screen is a blank dark panel. The wall display on the left is blank too.

    Test render of the alcove: three locker banks with mixed compartment sizes, the middle one carrying the terminal, whose screen is a blank dark panel. The wall display on the left is blank too.

  3. Message 1, tool call 50 of 87

    First test render of the entrance: the panes of the left sliding door, and part of the right one, come out black where daylight should show through. The agent renders the doorway again with the door hidden and shown to find out why.

    First test render of the entrance: the panes of the left sliding door, and part of the right one, come out black where daylight should show through. The agent renders the doorway again with the door hidden and shown to find out why.

  4. Message 1, tool call 59 of 87

    The same view after the fix: the glass material also reflected on the inner face of each pane and trapped the light there, so the agent limited reflection to the front faces. The portrait display by the door stays blank, and the signs use only arrows and icons.

    The same view after the fix: the glass material also reflected on the inner face of each pane and trapped the light there, so the agent limited reflection to the front faces. The portrait display by the door stays blank, and the signs use only arrows and icons.

  5. Message 1, tool call 66 of 87

    The counter seen from the hall: clear glazing with a speaking grille, a deal tray and a card terminal, and a wall display on the staff side that is a blank dark panel.

    The counter seen from the hall: clear glazing with a speaking grille, a deal tray and a card terminal, and a wall display on the staff side that is a blank dark panel.

  6. Message 1, tool call 68 of 87

    The waiting area: two linked rows of three seats and a single chair, each seat its own object, with a writing desk, a plant and another blank wall display.

    The waiting area: two linked rows of three seats and a single chair, each seat its own object, with a writing desk, a plant and another blank wall display.

  7. Message 1, tool call 75 of 87

    Looking from the counter toward the entrance: the queue posts with their belts and arrow signs. Each post is a separate object, and the belts attached to it follow when it is moved.

    Looking from the counter toward the entrance: the queue posts with their belts and arrow signs. Each post is a separate object, and the belts attached to it follow when it is moved.

  8. Finished scene, top view

    The finished layout from above with the ceiling and lights hidden: counter and staff area along the top wall, entrance at the bottom, writing desks in the top-left corner, waiting seats along the left and bottom walls, and the locker alcove on the right.

    The finished layout from above with the ceiling and lights hidden: counter and staff area along the top wall, entrance at the bottom, writing desks in the top-left corner, waiting seats along the left and bottom walls, and the locker alcove on the right.

  9. Finished scene

    The finished hall through the camera saved in the file: the counter with four numbered positions, the queue posts, the locker alcove at the far end and waiting seats under the windows.

    The finished hall through the camera saved in the file: the counter with four numbered positions, the queue posts, the locker alcove at the far end and waiting seats under the windows.

Result

minutes
55
API requests
60
tool calls
87
objects, 68 of them labeled
93
triangles
64,718
checks passed
12 / 12
Acceptance checks (12 of 12 passed)
  • ✓Hall at least 11 m on the long side: met, with the alcove adding to the overall length.
  • ✓Hall at least 6 m on the short side: 6.56 m overall, walls included.
  • ✓Interior reaches the 2.8 m ceiling: 3.0 m overall, floor and ceiling slabs included.
  • ✓Three locker banks: 3.
  • ✓Eight waiting seats, each its own object: 8.
  • ✓Two to three writing desks: 3.
  • ✓Belt stanchions as separate objects: 12.
  • ✓A service counter: counter_01.
  • ✓A leaflet stand: leaflet_stand_01.
  • ✓Bins: 3 (bin_01 to bin_03).
  • ✓Plants: 3 (plant_01 to plant_03).
  • ✓Ceiling light fixtures: 17 (ceiling_light_01 to ceiling_light_17).
From the trajectory: the agent's hand-over note
- Belts belong to the posts. Each belt is drawn by a modifier on the post it starts from, so belt pixels are labelled as that stanchion. When you move a post, the belts attached to it follow; I tested this. … - Screens: the wall displays, locker terminal, staff monitors and card terminals are all matte, non-glowing dark panels. The monitors and card terminals are part of counter_01. - What glows: only the light panels, the frosted windows, and the exit sign sign_06. The exit sign shows a door outline and an arrow, not a running man. - Sign text: the counter signs show the numbers 1–4. Other signs use only arrows and simple icons, with no people. Each labelled object has class and instance properties and its own object index, and the object-index render pass is turned on. …

Sample 6 of 10

Café props file cut down for a web viewer

  • Optimization
  • File cleanup
  • Web 3D
  • 1 message
  • Attachment: .blend, 6.5 MB
  • Hard parts
  • Someone else's messy file
  • Under 30,000 triangles, at most 12 materials
  • Nothing rearranged, same camera view
  • Nothing floating or doubled up

Someone has inherited a café props file from a freelancer who quit, and it is far too heavy for their web viewer. It has to come in under 30,000 triangles with at most 12 materials, get sensible lowercase names and lose anything floating or doubled up, while every prop stays its own object, nothing is rearranged and the picture from the existing camera stays the same. Inside, the agent found simple flat-sided shapes subdivided over and over, five objects with an exact copy stacked in the same spot, eight props hovering above their surfaces and 21 materials that were mostly near-identical copies.

The request, verbatim

inherited cafe_props.blend from a freelancer who bailed. way too heavy for our web viewer, need it under 30k tris total and max 12 materials. sensible lowercase names, nothing floating or doubled up. keep each prop its own object and don't rearrange anything, should look the same from the existing camera.

From request to finished scene

  1. Attachment

    The supplied file through its existing camera: three tables with ten chairs, a counter, two plants, a floor lamp and a menu board. It holds 150,174 triangles and 21 materials in 6.5 MB.

    The supplied file through its existing camera: three tables with ten chairs, a counter, two plants, a floor lamp and a menu board. It holds 150,174 triangles and 21 materials in 6.5 MB.

  2. Message 1, tool call 12 of 52

    A close look at the counter from the front and from a three-quarter view. The counter and espresso machine are simple flat-sided shapes yet carry 10,752 and 21,120 triangles, and the small grinder carries 43,008: half the file in three objects.

    A close look at the counter from the front and from a three-quarter view. The counter and espresso machine are simple flat-sided shapes yet carry 10,752 and 21,120 triangles, and the small grinder carries 43,008: half the file in three objects.

  3. Message 1, tool call 20 of 52

    On the left table, the shaker on the left hovers 7 cm above the top; its shadow falls on the table some way from its base.

    On the left table, the shaker on the left hovers 7 cm above the top; its shadow falls on the table some way from its base.

  4. Message 1, tool call 26 of 52

    A test on the grinder: subdivision level 1 instead of 4 leaves 672 triangles, and the knob and body turn visibly faceted.

    A test on the grinder: subdivision level 1 instead of 4 leaves 672 triangles, and the knob and body turn visibly faceted.

  5. Message 1, tool call 28 of 52

    At level 2, 2,688 triangles, the grinder is smooth again. The agent kept this level, within 1 mm of the original shape.

    At level 2, 2,688 triangles, the grinder is smooth again. The agent kept this level, within 1 mm of the original shape.

  6. Message 1, tool call 45 of 52

    The agent's difference image of two renders from the existing camera, before and after its changes. Red marks the pixels that changed, and they sit only on the props it set down and their shadows.

    The agent's difference image of two renders from the existing camera, before and after its changes. Red marks the pixels that changed, and they sit only on the props it set down and their shadows.

  7. Message 1, tool call 50 of 52

    The same view of the left table afterwards: the shaker stands on the top, its shadow meeting its base.

    The same view of the left table afterwards: the shaker stands on the top, its shadow meeting its base.

  8. Finished scene

    The returned file through the same camera: 8,006 triangles, 12 materials, 1.35 MB.

    The returned file through the same camera: 8,006 triangles, 12 materials, 1.35 MB.

Result

minutes
17
API requests
41
tool calls
52
triangles
150,174 → 8,006
materials
21 → 12
checks passed
4 / 4
Acceptance checks (4 of 4 passed)
  • ✓The whole scene is under 30,000 triangles: 8,006.
  • ✓No more than 12 materials: 12.
  • ✓Every prop is still its own object, none merged: 35 separate mesh objects.
  • ✓The existing camera is still in the file: yes.
From the trajectory: the agent's hand-over note
Why it was so heavy: two chairs, the espresso machine, the counter and one plate were simple flat shapes that had been subdivided over and over, adding up to 256 times the faces without changing the shape. I collapsed them back to their clean form, so the geometry is identical. The grinder had a subdivision modifier at level 4 (43k tris). I baked it in at level 2 (2.7k tris), which is within 1 mm of the original. It needed baking anyway: the glTF exporter doesn't apply modifiers by default, so the viewer would have received the blocky unsmoothed shape. Doubled up: five objects had an exact copy stacked in the same spot (floor lamp, menu board, a chair, a cup, a saucer). I deleted the extra copy of each. … Things I fixed that you didn't ask for: - One saucer and one cup were inside-out. They would show up dark or invisible in a web viewer. … How I checked: I rendered from the camera before and after. With the floating fixes temporarily undone, the two renders match almost exactly: no pixel differs by more than 15/255, and only 9 differ noticeably at all. The camera itself is untouched. I also loaded the saved file in a separate Blender to recheck every requirement, and a test GLB export came out at 8,006 tris and 12 materials (395 KB).

Sample 7 of 10

Shop logo from SVG to a looping 3D badge

  • Motion graphics
  • Logo
  • Animation
  • 1 message
  • Attachment: SVG logo
  • Hard parts
  • Built from the SVG's own shapes
  • Seamless loop on repeat
  • Exact hex brand colors

For a family bakery’s 25th anniversary, the request attaches the shop’s wheat logo as an SVG and asks for a big, chunky 3D badge, slowly spinning in a square frame, in two brand colors given as hex values, 6 seconds at 30 fps. The clip will play on repeat, also on the shop’s TV, so the loop has to be perfect. The agent builds the badge from the SVG’s own shapes, tunes the lights until the face-on render reads as the two hex values, and checks the seam on a low-resolution render of all 180 frames.

The request, verbatim

… I'm writing on behalf of my mum, who has run … for 25 years. For the anniversary we're redoing her socials and want the wheat logo (logo.svg) as a big chunky 3D badge, slowly spinning. The loop has to be perfect because it'll play on repeat, on the shop telly too. Square frame. Colours #6B4226 and #E9B949. 6 s at 30 fps please. I'll do the rendering and posting on my end. Hoping for it by the 20th. …

From request to finished scene

  1. Attachment

    Flat logo: a brown ring around a gold wheat ear

    The logo file sent with the request (logo.svg), shown on white: a brown ring around a gold wheat ear made of a stalk and 11 grains. The ring is open in the middle.

  2. Message 1, tool call 10 of 82

    Gray 3D wheat shapes, head-on and from an angle

    The stalk and 11 grains, read straight from the SVG's paths and given thickness and rounded edges, seen head-on and from an angle. The agent zoomed in here to check that the grain tips stayed clean.

  3. Message 1, tool call 13 of 82

    Gray badge with the wheat on its face, seen from four sides

    The wheat on the badge body: a disc with a recessed face and a raised rim sized to the logo's ring. The agent checked it from four sides in plain gray, then made it thicker, a fifth as thick as it is wide.

  4. Message 1, tool call 17 of 82

    Brown badge with gold wheat on a gold background

    First look through the square camera, in the two brand colors on a flat gold background. The brown came out too light and the metal gold too dark, so the agent sampled pixels in its test renders and reworked the lights until the face-on brown and gold came within a few points of the hex values.

  5. Message 1, tool call 27 of 82

    Eight test renders of the badge turning from 0° to 180°

    A turnaround of test renders at 0°, 20°, 40°, 60°, 80°, 100°, 140° and 180°. The gold went dull at 20° and 40° and a gray sheen washed over the face at 60°, so the agent added a bright ring of light around the scene for the gold to reflect, raised the rim lights and moved the camera closer.

  6. Message 1, tool call 77 of 82

    Two rows of five small frames: the badge edge-on above, face-on below

    The agent's seam check, built from its low-resolution render of all 180 frames. Top row: frames 43 to 47, where the badge passes edge-on; bottom row: frames 179, 180, 1, 2 and 3, across the point where the loop starts again.

  7. Finished scene, frame 37

    Finished badge seen nearly side-on

    72° into the turn, a fifth of the way around. Seen nearly side-on, the badge shows its thick polished edge and the raised wheat.

  8. Finished scene, frame 73

    Finished badge with its back face toward the camera

    144° into the turn, the back of the badge faces the camera. The wheat is on both faces, so the logo reads from either side.

  9. Finished scene, frame 180

    Finished badge face-on on a gold background

    The last frame of the loop, 2° short of a full turn, so the step back to frame 1 is the same 2° as every other step.

Result

minutes
101
API requests
71
tool calls
82
frames (30 fps, 1080 × 1080)
180
triangles
104,864
checks passed
4 / 4
Acceptance checks (4 of 4 passed)
  • ✓The animation lasts 6 seconds at 30 fps: 180 frames (1 to 180) at 30 fps.
  • ✓The frame is square: it renders at 1080 × 1080.
  • ✓The badge really spins over the timeline: one moving object, the badge.
  • ✓The loop is seamless: the badge's pose one frame after the last matches its pose on frame 1 (largest difference 0.0000).
From the trajectory: the agent's hand-over note
To check the loop, I rendered all 180 frames at low resolution: the jump from the last frame back to the first can't be told apart from any other frame step, and there's no flicker anywhere in the sequence. … - Your logo's ring is open in the middle, so to stick to just your two colours I made the face inside the ring brown. The background is plain #E9B949. … - Brown face (front-on): about (107, 66, 40) against #6B4226's (107, 66, 38). - Gold wheat: about (235, 184, 70) against #E9B949's (233, 185, 73). … - Frame 180 is 2° short of a full turn, so going back to frame 1 is the same 2° step as every other frame.

Sample 8 of 10

Two rigged farm animals with idle loops

  • Characters
  • Rigging
  • Animation
  • Low-poly
  • 1 message
  • Hard parts
  • Max 2,000 triangles each
  • Six palette colors only
  • Knees bend, no stretch
  • Seamless 2 s idle

A four-person team making a cozy mountain-village building game asks for a goat and a goose in its storybook low-poly style: flat colors from a six-color palette, at most 2,000 triangles each, sized in meters, with the pivot on the ground between the feet. The hard part is the motion: each animal needs a rig whose legs bend at the knee instead of stretching, and a 2-second idle loop at 24 fps (breathing, a small head turn, a tail or wing twitch) that ends on the pose it started with. The frames show both models taking shape, a crouch test of the goat’s leg rig, the agent’s frame-by-frame checks of both idle loops, and the finished pair. The delivered goat has 30 bones and 1,228 triangles; the goose has 21 bones and 1,006.

The request, verbatim

… We are 4 people making …, a cosy mountain-village builder for PC, storybook style, low-poly and flat shaded. We add farm animals before our trailer and need two of them. Goat - mesh name 'Goat', max 2000 tris including horns. About 0.9 m tall at shoulder. Goose - mesh name 'Goose', max 2000 tris including beak. Colours: flat colours only, from our palette #F7F3E3, #D6CFB4, #A3A380, #6B705C, #CB997E, #3F4238. No textures. Scale in metres, pivot on ground between the feet, both facing same direction. Rig: simple one for each, legs, neck and head must move. Legs should bend on the knee, not stretch. Idle: one loop per animal, 2 s at 24 fps, first and last frame same pose. Breathing, small head turn, and tail twitch for goat, wing twitch for goose. No lighting, no camera needed. …

From request to finished scene

  1. Message 1, tool call 13 of 85

    The goat from four sides: cream body, clay head and neck with a cream face stripe, sage horns, charcoal hooves. Every color comes from the six-color palette in the brief.

    The goat from four sides: cream body, clay head and neck with a cream face stripe, sage horns, charcoal hooves. Every color comes from the six-color palette in the brief.

  2. Message 1, tool call 19 of 85

    A test of the goat's leg rig, bones drawn over the mesh: with the body lowered 6 cm, the front knees bend forward, the hind hocks bend back and the hooves stay where they were. The small bones floating in front and behind are the knee targets.

    A test of the goat's leg rig, bones drawn over the mesh: with the body lowered 6 cm, the front knees bend forward, the hind hocks bend back and the hooves stay where they were. The small bones floating in front and behind are the knee targets.

  3. Message 1, tool call 34 of 85

    The goose from four sides: cream body, sand wings, clay beak and feet, charcoal eyes.

    The goose from four sides: cream body, sand wings, clay beak and feet, charcoal eyes.

  4. Message 1, tool call 46 of 85

    Six frames of the goose's idle loop from the front (frames 0, 18, 29, 31, 34 and 37): the head turns to one side and back, and at frame 31 both wings lift away from the body.

    Six frames of the goose's idle loop from the front (frames 0, 18, 29, 31, 34 and 37): the head turns to one side and back, and at frame 31 both wings lift away from the body.

  5. Message 1, tool call 48 of 85

    Six frames of the goat's idle loop from behind (frames 0, 13, 20, 27, 29 and 31): the head turns to the side, and from frame 27 to 31 the tail flicks from side to side.

    Six frames of the goat's idle loop from behind (frames 0, 13, 20, 27, 29 and 31): the head turns to the side, and from frame 27 to 31 the tail flicks from side to side.

  6. Message 1, tool call 78 of 85

    The agent's last look before the final save: both animals from four sides, facing the same way.

    The agent's last look before the final save: both animals from four sides, facing the same way.

  7. Finished scene

    The delivered file, goat and goose side by side: flat shaded, no textures.

    The delivered file, goat and goose side by side: flat shaded, no textures.

Result

minutes
41
API requests
64
tool calls
85
triangles (goat + goose)
1,228 + 1,006
bones (goat + goose)
30 + 21
checks passed
12 / 12
Acceptance checks (12 of 12 passed)
  • ✓A mesh named Goat: present.
  • ✓A mesh named Goose: present.
  • ✓Goat at most 2,000 triangles, horns included: 1,228.
  • ✓Goose at most 2,000 triangles, beak included: 1,006.
  • ✓Goat stands at least the 0.9 m shoulder height overall: 1.26 m to the top of the horns.
  • ✓Scene units in meters: metric, scale 1.0.
  • ✓Goat's pivot at ground level: yes.
  • ✓Goose's pivot at ground level: yes.
  • ✓A rig for each animal: 2 rigs.
  • ✓Idle animation on the animals: 4 animated objects (both meshes and both rigs).
  • ✓The idle moves the geometry, not just the bones: both meshes move.
  • ✓Idle loop of 2 s at 24 fps: frames 0 to 48 at 24 fps.
From the trajectory: the agent's hand-over note
- Legs: they use IK with knee targets and stretching turned off. When the body lowers, the goat's front knees bend forward, its hind hocks bend back and the goose's ankles fold back. The feet stay planted and the leg bones don't change length. - Idle loops: frames 0–48 at 24 fps, which is exactly 2.0 s. Frame 48 is the same pose as frame 0, with zero difference in the mesh. - Both: breathing (the belly swells and the body settles a few mm, which flexes the knees) and a small head turn with a tilt. - Goat: a tail twitch. - Goose: a quick wing twitch. … Extras I added: small ear flicks on the goat and a little tail wag on the goose. They're separate keys, easy to delete if you don't want them.

Sample 9 of 10

Quayside prop kit for a village-builder game

  • Game props
  • Low-poly
  • Real-time assets
  • 8 props
  • 1 message
  • Hard parts
  • At most 800 triangles each
  • One UV map, pivot at the base
  • 6 m quay tiles end to end
  • Names exactly as listed

The developer of a cozy fishing-village builder game asks for eight quay props for a small modern harbor: a 6 m quay section that has to tile end to end, a bollard, crate stack, net drum, ladder, lamp post, fuel pump and harbor office. The kit goes straight into a game engine, so each prop gets at most 800 triangles, one UV map and a pivot at its base, and keeps the exact name from the list. The frames follow the agent as it inspects each prop from several sides, reworks details it is not happy with, and tests the fit with three quay sections end to end before laying out the finished row.

The request, verbatim

Quay props for my cosy fishing-village builder. Small modern harbour, stylised low-poly, going into a game engine. SM_Quay_6m (6 m edge section, should tile end to end) SM_Bollard SM_CrateStack SM_NetDrum SM_Ladder SM_LampPost SM_FuelPump SM_HarbourOffice Max 800 tris each, one UV map each, pivot at the base, laid out in a row. No lights or camera needed.

From request to finished scene

  1. Message 1, tool call 8 of 55

    Four views of a gray quay wall section with pale coping blocks, two timber fenders and a green band along the bottom

    The 6 m quay section (250 triangles) in four views: granite coping blocks on a concrete wall, timber fenders, and darker wet and algae bands near the waterline. The agent finds the algae band too grassy and tones it down later.

  2. Message 1, tool call 10 of 55

    Four views of red and blue fish crates stacked on a wooden pallet, one crate filled with ice and three fish

    The crate stack (608 triangles) in four views, one of them straight down: red and blue fish crates on a pallet, one holding ice and three fish. The agent finds the fish too faint and adds contrast.

  3. Message 1, tool call 11 of 55

    Four views of a teal net drum with green netting and orange floats on a steel stand, one view blocked by a yellow ladder

    The net drum (584 triangles): green net and orange floats on a teal drum, on a steel stand with a crank. The agent thinks the dark patches make the net look like a quilt and makes them lighter and fewer; because the ladder blocks one view, it then hides the other props for its close-ups.

  4. Message 1, tool call 15 of 55

    Four views of a red and cream fuel pump on a concrete base, with a thin black hose looping from the nozzle

    First pass of the fuel pump (352 triangles): red and cream body, display, sign panel, nozzle and hose. The agent finds the hose loop thin and wobbly and makes it thicker and smoother.

  5. Message 1, tool call 17 of 55

    Four views of a small blue cabin with a red door, white trim, a flag on the roof and a lifebuoy on the side wall

    The harbor office from four sides: blue cabin with a red door, white trim, flower box, stove pipe, flag and lifebuoy. At 699 triangles it is the heaviest prop in the kit.

  6. Message 1, tool call 29 of 55

    Two views of three quay sections joined into one long wall, with ladders on the wall face and props on the deck

    Fit test with temporary copies: three quay sections end to end, two ladders against the wall, and two bollards, a lamp post, the net drum, crate stack and fuel pump on the deck. Coping joints and fenders stay evenly spaced across both seams; the agent deletes the copies afterwards.

  7. Message 1, tool call 35 of 55

    Close view of the red and cream fuel pump with a thicker, smoother black hose loop

    After the rebuild: the fuel pump with its thicker, smoother hose, now 364 triangles. The agent rechecks each prop it changed in a close-up like this one.

  8. Finished scene

    Blender viewport showing eight props in a row on the grid, from the quay section on the left to the blue harbor office on the right

    The finished kit in the viewport: all eight props in one row as asked, from the quay section to the harbor office, 3,621 triangles in total.

Result

minutes
39
API requests
38
tool calls
55
props (250–⁠699 triangles each)
8
triangles in total
3,621
checks passed
12 / 12
Acceptance checks (12 of 12 passed)
  • ✓Quay section 6 m long: 6.0 m.
  • ✓Object named SM_Quay_6m: present.
  • ✓Object named SM_Bollard: present.
  • ✓Object named SM_CrateStack: present.
  • ✓Object named SM_NetDrum: present.
  • ✓Object named SM_Ladder: present.
  • ✓Object named SM_LampPost: present.
  • ✓Object named SM_FuelPump: present.
  • ✓Object named SM_HarbourOffice: present.
  • ✓At most 800 triangles per prop: 8 of 8 (the largest has 699).
  • ✓A UV map on every prop: 8 of 8.
  • ✓Pivot at the base of every prop: 8 of 8.
From the trajectory: the agent's hand-over note
All eight props are under 800 tris, with one UV map each and the pivot at the base. I reopened the saved file to confirm, and test exports to glTF and FBX worked (temporary files, since deleted). … Quay tiling: the quay is 6 m long and 3 m deep, with the deck surface 2.5 m above its pivot. Placing copies every 6 m along X gives seamless joins; the coping joints and fenders stay evenly spaced across the seams. I checked this with three tiles side by side. … Every prop shares one material, M_Harbour_Palette, which reads its colours from one small texture of flat colour swatches (T_Harbour_Palette.png). Each face's UVs point at its colour's swatch, so you recolour by repainting a swatch. The texture is packed into the .blend and also saved next to it. The only second material is M_Harbour_LampGlow, an emissive one used just for the lamp glass on the lamp post and the office door lamp.

Sample 10 of 10

Printable drawer bin, then cut down to fit a 58 mm drawer

  • 3D printing
  • Parametric model
  • Geometry Nodes
  • 2 messages
  • Hard parts
  • Watertight, printable as is
  • Millimeter units
  • Size, dividers adjustable
  • Message 2: print didn't fit the drawer

The request asks for a printable bin for a tool drawer: 42 mm grid, stacking lip, magnet holes in the base, two dividers. It must be one watertight solid modeled in millimeters, with width, depth, height and divider count left adjustable, so every size the settings produce has to print as well. The agent builds the bin as a Geometry Nodes generator; when the second message reports that the print is too tall for a drawer 58 mm high inside, it adds an overall-height setting that takes the bin from 60.4 to 56.0 mm, lip included.

The request, verbatim

Message 1

Reorganising a tool drawer, need bins for every compartment. Standard 42 mm grid, 7 mm height units, stacking lip on top, magnet holes in the base (6 mm). Start with 2x4 units, 8u tall, 2 dividers across the long side. Width, depth, height and divider count need to stay adjustable so I can make the other sizes myself. Modelled in mm, solid watertight mesh, printable as is.

Message 2

Printed it. Doesn't fit, drawer is only 58 mm tall inside. Same 2x4 with 2 dividers, just bring the overall height down, lip included, so it clears with 2 mm or so to spare.

From request to finished scene

  1. Message 1, tool call 12 of 49

    First look at the bin (83.5 × 167.5 × 60.4 mm) in four views: three compartments and the stacking lip on top, eight feet with 32 magnet holes underneath.

    First look at the bin (83.5 × 167.5 × 60.4 mm) in four views: three compartments and the stacking lip on top, eight feet with 32 magnet holes underneath.

  2. Message 1, tool call 16 of 49

    Trying other settings: 3 × 2 units, 4 units tall, a divider added along the long side and magnets only at the outer corners give six compartments. Just before this, the agent built 14 combinations from 1 × 1 to 6 × 6 units, and each came out as a single watertight solid.

    Trying other settings: 3 × 2 units, 4 units tall, a divider added along the long side and magnets only at the outer corners give six compartments. Just before this, the agent built 14 combinations from 1 × 1 to 6 × 6 units, and each came out as a single watertight solid.

  3. Message 1, tool call 18 of 49

    Close-ups of the default bin: the underside with its chamfered feet, the grooves between them and the magnet holes, and the inside of one compartment.

    Close-ups of the default bin: the underside with its chamfered feet, the grooves between them and the magnet holes, and the inside of one compartment.

  4. Message 1, tool call 20 of 49

    A close view at one corner of the rim. The camera is so close that it cuts through the walls, showing the stepped profile of the stacking lip in section on both of them.

    A close view at one corner of the rim. The camera is so close that it cuts through the walls, showing the stepped profile of the stacking lip in section on both of them.

  5. Message 1, tool call 24 of 49

    Test render through the scene camera of the bin as handed over after the first message: 60.4 mm tall overall, lip included.

    Test render through the scene camera of the bin as handed over after the first message: 60.4 mm tall overall, lip included.

  6. Finished scene

    The bin after the second message: 56.0 mm tall overall, lip included, 2 mm under the 58 mm drawer. Footprint, lip shape and feet are unchanged; the walls are 4.4 mm shorter.

    The bin after the second message: 56.0 mm tall overall, lip included, 2 mm under the 58 mm drawer. Footprint, lip shape and feet are unchanged; the walls are 4.4 mm shorter.

Result

minutes
31
API requests
38
tool calls
49
final size, mm
83.5 × 167.5 × 56.0
triangles, one watertight mesh
7,540
checks passed
3 / 3
Acceptance checks (3 of 3 passed)
  • ✓Overall height, lip included, fits under the 58 mm drawer (message 2): 56.0 mm.
  • ✓Scene unit set to millimeters.
  • ✓The mesh is watertight: 0 non-manifold edges.
From the trajectory: the agent's hand-over note

Reply to message 2

The bin is now 56.0 mm tall overall, lip included, which leaves 2.0 mm under your 58 mm drawer. It's still 2×4 with 2 dividers. The footprint, lip shape, feet and magnet holes are unchanged; the lip just sits lower. What changed - New setting: the Size panel now has a Custom Overall Height toggle and an Overall Height value in mm, lip included. It's switched on at 56 mm and used instead of the 7 mm units. - Interior: the lip now starts at 51.6 mm. The 3 compartments are still 54.2 × 81.1 mm, but now 44.6 mm deep instead of 49. The dividers still stop 1 mm below the lip. - Other bins for this drawer: if you make them by duplicating this one (Shift+D), they keep the 56 mm setting. Change only width, depth and dividers.

Customization

Including, but not limited to, the following; anything else is open for discussion.

  • Job mix. Architecture, interiors, machines, vehicles, props, characters, animation, physics, 3D prints.
  • Difficulty. Job size, number of follow-up messages, share of jobs with attachments.
  • Attachments. Plans, drawings, spec tables, logos, .blend files; others on request.
  • Agent. Model, effort level, runs per task.
  • Delivery. File names and layout to your schema; per-message scene snapshots.
  • Volume and schedule. How many and by when.

Tell us what your model needs to get better at.

We reply with samples and a specification.