Empty Sleeves
A hoodie that does not exist
He was at work on the Monday, so most of the day's building happened down a phone. James talks to the agent - Claude Code Opus 5 - from the mobile app, and it drives the machine at home: the mouse, the editor, the screenshots coming back while he is somewhere else entirely. Three threads moved that way. The house interiors got an organising pass and then twenty-four estate-agent frames, two per house, taken from the doorway and from the bay at chest height with the camera pitch at exactly zero, because an agent keeps verticals vertical and the commercial point of an interior photograph is how much floor it shows.

The takeaway delivery job moved as well, and so did the snooker. Then he came home, cooked chicken and halloumi, watched an hour of television, and spent the next four hours on a hoodie that still does not exist.
It was meant to be a small job. Blush pink, cropped at the waist, fleece lining, and MARDY across the back in the same pink a shade darker. That is the kind of thing that is genuinely on a rail in a shop here, and it is the reason the whole project exists: GTA 6 is going to have clothing shops with more garments in them than this game will have buildings, and not one of those garments will say MARDY on it, because nobody in Los Angeles has ever needed the word. The small operation is the only reason a joke that lands in one county is worth making at all.
The answer to whether the hoodie needed a new tool had been written down earlier the same day, in this project's own research notes, in this project's own words: nothing in Marvelous Designer replaces the existing route through Blender. The main instruction file says the same thing. They spent four hours arriving at it again.
Nothing to sew with
Marvelous Designer is a garment tool, and a properly good one - it is how a great deal of film and advertising cloth gets made. It is also fully scriptable, which is the part that made it worth an evening. The agent dumped every function's own documentation rather than guessing at signatures, which is the habit that stops this sort of session going wrong in the first ten minutes, and came back with 653 functions across five modules. Patterns, fabrics, simulation, export, import. A call that renders the viewport straight to a PNG, so a script can look at what it just did.
There is no call anywhere in those 653 that sews two edges together.
Everything matching sew, seam or stitch turns out to be decorative topstitch or seamline metadata, and the one function that merges patterns only acts on patterns that are already sewn. So a script can draw pattern pieces all night and never join them into a garment. You start from something already sewn and you modify it, and the built-in library holds eighteen of those.
That is a ceiling, and it is not a criticism of the software - a human at the mouse sews in there all day and thinks nothing of it. It is a statement about this particular pipeline, where the point of a tool is that an agent can drive it unattended while its owner is at work.
Empty sleeves
The garment loaded onto the avatar floating above her head, which nobody expected but everybody could see. James took the mouse, selected the red vertical axis on the gizmo and dragged the whole thing down onto the body, and that unstuck the evening. Then the arms went straight past the sleeves.

The agent's first theory was that the sleeves were too short. It asked the avatar for its measurements to prove it, and the measurement call came back empty - not an error, not a refusal, an empty list, on a library avatar that plainly has arms. That killed the theory by accident rather than by evidence, and the render killed it properly: the sleeves are full length, the cuffs are at hand height, and they are simply empty. A sleeve that stops short and a sleeve that is hanging off nothing look nothing alike, and one glance at the picture would have saved twenty minutes of arguing from numbers that were never there.
The next theories were the ones every forum thread recommends. Lower the avatar's skin offset. Zero the static and kinetic friction. Both were set, both were read back to confirm they had taken, and the forearm still came through the sleeve at the elbow. Both were put back. That is worth recording, because a commenter under one of the tutorial videos had disputed the skin offset advice on exactly these grounds and been ignored. He was right, at least here.
The actual cause had nothing to do with collision. A garment's pieces are bound to named points on the avatar's body - arm, wrist, shoulder, neck, more than a hundred of them - and the hoodie had two of its sixteen pieces bound to anything at all. Both hood panels were pinned to the head. The sleeves were bound to nothing, so nothing had ever threaded an arm into them.
Binding them fixed one arm and left the other still coming through at the elbow, on the same simulation, with the same settings, differing only in which point had been chosen. The one that failed was an outside-of-the-arm point, which puts the tube's edge where the limb is. The one that worked was a front-of-the-arm point, which centres it. Four hours in, that is the single transferable fact of the whole evening, and it took three wrong theories and a reverted settings change to reach.

The wordmark is on the sleeve. The hem is at the thigh rather than the waist. There is no fleece. And at no point in the four hours did any of it reach Unreal Engine, because the UE half of the plan was still waiting on an editor restart that never happened. Somewhere in there the application grew to ten gigabytes, stopped responding and had to be killed from the command line, which cost nothing only because every risky step had been saved to a new file first.
A catalogue with no geometry in it
The other half of the evening was a question James had asked in the morning and wanted answered properly: could Higgsfield AI do this instead? It is recommended everywhere as the way to generate characters, which makes it exactly the sort of thing a solo developer should check before spending money on anything else.
Its API generates images and video. That is the whole catalogue - the explore page has three filter tabs and two of them are output types. Searching it for 3d, or for the names of the image-to-3D services, returns nothing, and the documentation index has no mesh, no rig and no model file anywhere in it.
The confusion is real and worth explaining, because the question keeps coming back and a web search will tell you the opposite. Higgsfield does ship 3D generation - in the browser app, in a Blender plugin and in an MCP server - and all three of those work by reselling other people's image-to-3D services. It is simply walled off from the paid API, so an agent cannot reach it.
And reaching it would not have helped. What comes out is one fused character with the clothes baked into the body, which cannot be split into a jacket that a game character wears as a separate garment. It is auto-rigged to a generic humanoid skeleton rather than the MetaHuman one, which in this project has a name and a memory file, because a garment on the wrong skeleton fits perfectly in a standing pose and freezes solid the moment anybody walks. It has no levels of detail, which is the other clothing fault this project already knows by name. And it is generative topology with no controlled quad flow, so there is nothing for a cloth simulation to hold on to. Four faults, all of them ones that have already cost days here.
What was already on file

So the decision went back to where it started the day. Garments come from Fab assets refitted through the existing Blender and Unreal pipeline, which is proven, documented and has already dressed every clothed character in the game. A blush hoodie almost certainly exists on Fab already, rigged and game-ready. Recolouring it is one material instance. Putting a wordmark on it is solved here and has been for weeks, which is the sourest part: the wordmark itself was the one thing the evening produced that survives. It is an ordinary PNG with a script behind it, and it goes onto a bought garment exactly as well as it goes onto a simulated one.
James cancelled the subscription the same night.
Two things could reopen it, and neither is wanting a garment. A cinematic cloth shot has no Fab equivalent, and a need for many bespoke garments would justify testing the automatic retopology and rigging toolkit that was the actual reason to look in the first place and never got tested. Both would need deciding on purpose rather than drifting into on a Monday evening.
Rockstar have a department for clothing, and a motion-capture stage to check it on. He had the back half of a Monday and a subscription he could cancel. The useful part of that gap is not the four hours - it is that the four hours were spent re-deriving a conclusion that was sitting in the project's own notes, written by the same pair, earlier that day. A studio has code review and a design document nobody is allowed to contradict. This has a banner at the top of a handover file saying do not open this tool again, and the next thought after it, which is that the same buy-and-refit route does not care whether the thing being dressed is a person. That idea is a thought and not a plan, and it is recorded as one.
The fault
The garment floats above the avatar and both arms hang outside the sleeves in Marvelous Designer
Loaded onto a library avatar in Marvelous Designer 2026.1.149, a hooded garment sat above the body entirely, and once dragged down, the arms passed outside the sleeves with the cuffs at hand height and the sleeves hanging empty. Three wrong causes were tested first:
- sleeve length - killed by the render, not by the measurement call, which returned an empty
list on an avatar that plainly has arms
- avatar skin offset, lowered from 3.0 mm to 1.0 mm - read back as applied, forearm still
came through, reverted
- static and kinetic friction, zeroed - no effect on this fault
The actual cause: only 2 of the garment's 16 pattern pieces were bound to a named arrangement point on the avatar, both of them hood panels pinned to the head. The sleeves were bound to nothing, so nothing threaded an arm into them. Standard collision tuning cannot fix this, because there is no interpenetration to resolve - the arm was never in the sleeve.
The fix
Bind each sleeve to a centred Arm_Front arrangement point, not an Arm_Outside one
Bind the sleeve pieces with the arrangement call, then run one settle simulation. Unbound pieces that are sewn to a bound piece follow it, so four of sixteen bindings were enough for the whole garment.
Which point decides whether it works. Same piece, same simulation, same settings:
| Binding | Result |
|---|---|
Arm_Outside_2_L | sleeve sits on the outside of the arm, limb ends at the tube's edge, forearm through the sleeve at the elbow |
Arm_Front_2_L | tube centred on the arm, clean |
The guard: prefer a Front point over an Outside point for any sleeve - Outside is an edge position, not a centred one. And before theorising about lengths or collision, look at the render: a sleeve that ends early and a sleeve that is empty are two different faults that no number will tell them apart.
The fault
An API call returns an empty list instead of raising an error
At least five calls in this scripting API answer an impossible question with an empty value and no exception, which is indistinguishable from a truthful "none":
| Call | Returns | What it means |
|---|---|---|
GetGraphicStyleCount() | 0 | while a graphic style exists |
GetPatternOutlinePoints(i) | [] | for every piece |
ExportTurntableImages(...) | [] | and writes no files, raises nothing |
GetAvatarMeasurements(0) | [] | on a library avatar |
GetBoundingBoxOfPattern(i) | height and width only | no position at all |
A pattern-piece name call returns auto-generated IDs, and two different pieces share one name, so piece identity cannot be read at all. A placement call that misses its target is a clean no-op, which makes probing safe but hides the miss unless the JSON-returning version is used - that one says No overlap - Graphic does not overlap with given pattern at position and is the only diagnostic on offer.
The fix
Treat an empty return as unknown, and identify a piece by putting something on it and looking
Dump every function's own documentation before calling it - the signatures are all in there, and guessing crashed the application twice. Then treat an empty return as "no answer", never as "none", and confirm by render.
The only reliable way to identify a pattern piece here is to place a graphic on it and look at the result. A large piece read as a body panel turned out to be a raglan sleeve, which is how the wordmark ended up on an arm.
The guard: do not brute-force a coordinate space against this API. A sweep of roughly two thousand placement calls drove the application from 1.7 GB to 3.9 GB and into a non-responding state, because each call does real geometry work. Probe coarsely, stop at the first hit, reuse the coordinate. And save to a new file before every risky step - that is the only reason a ten gigabyte hang and a force-kill cost nothing.
The kit
| Tool | Why this one, or why not |
|---|---|
| Fab asset customisation, through Blender into Unreal Engine 5.8 | the route that stayed. Proven here, documented here, and it dressed every clothed character already in the game |
| Marvelous Designer 2026.1.149 | evaluated for garments that have to animate on a game character. Scriptable, genuinely capable, and the wrong shape for this pipeline. Subscription cancelled |
| Higgsfield AI | evaluated for generating characters. Its API emits images and video; no model in it emits geometry |
| A PNG and a small script | the wordmark. Tool-independent, and the one thing from the evening that survives |
Plain English
| Term | What it means |
|---|---|
| MetaHuman | Epic's system for realistic human characters - face, body, hair and clothing, ready to animate. Every named person in the game is one. |
| skeletal mesh | A 3D model with a skeleton inside it, so it can bend and animate. People and animals are skeletal meshes. |
| skeleton | The hierarchy of bones inside an animated model. Two models sharing a skeleton can share animation. |
| LOD | Simpler versions of a model, swapped in as it gets further away. The trick that lets a street hold hundreds of objects. |
| retopology | Rebuilding a model's surface out of tidier, fewer polygons while keeping its shape. A shape that came out of a scan or a simulation is usually unusable in a game until this is done to it. |
| skin weights | The numbers that say how much each bone pulls on each part of a model's surface. Get them wrong and a shoulder collapses when the arm lifts; transfer them from the body underneath and a garment bends the way the body does. |
| cloth simulation | Working out how fabric falls and folds by calculating it, rather than modelling the folds by hand. Expensive, and usually baked down to a fixed shape before it reaches a game. |
| Fab | Epic's marketplace for ready-made game assets - models, materials, characters, clothing. Buying a garment and refitting it is how almost everyone in this game got dressed. |
| mardy | Sulky, in a huff. East Midlands, ordinary here and baffling almost everywhere else, which is why it is printed across the back of a hoodie in the game. |
Things we still need to fix tomorrow:
- The wordmark belongs on the back panel, and the back panel is one of four candidates. Identify it by rendering, since nothing else in that API will say.
- Three Unreal plugins were switched on for this evening and never used. Decide before the next editor restart whether any of them earns its place on an 8 GB card.
- The hoodie itself is next through the Fab route: find one, refit it, recolour it, print the wordmark.
- The interiors need the pass that takes them from placeholder furniture to the realistic look James asked for on Monday morning.