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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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.
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.
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.
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.
Finished scene, frame 1

The delivered scene through its camera: the ball rolls toward the red brick cottage.
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.
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
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
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.
Attachment

loco_front.png, the front elevation: 2000 mm wide on 762 mm gauge track, smokebox 940 mm across, buffers 1300 mm apart.
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.
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.
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.
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.
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.
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.
Finished scene

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
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
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.
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.
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.
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.
Message 1, tool call 107 of 198

The Walnut collection from the same camera: the same 20 parts as Oak, with a walnut body.
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.
Message 2, tool call 182 of 198

Close-up of a steel-blue leg where it meets the frame.
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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
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.
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.
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.
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.
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.
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.
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.
Finished scene

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
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
Attachment

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.
Message 1, tool call 10 of 82

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.
Message 1, tool call 13 of 82

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.
Message 1, tool call 17 of 82

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.
Message 1, tool call 27 of 82

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.
Message 1, tool call 77 of 82

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.
Finished scene, frame 37

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.
Finished scene, frame 73

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.
Finished scene, frame 180

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
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
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.
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.
Message 1, tool call 34 of 85

The goose from four sides: cream body, sand wings, clay beak and feet, charcoal eyes.
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.
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.
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.
Finished scene

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
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
Message 1, tool call 8 of 55

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.
Message 1, tool call 10 of 55

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.
Message 1, tool call 11 of 55

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.
Message 1, tool call 15 of 55

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.
Message 1, tool call 17 of 55

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.
Message 1, tool call 29 of 55

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.
Message 1, tool call 35 of 55

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.
Finished scene

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
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
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.
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.
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.
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.
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.
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.
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.