The generic version of the Cospace clothing experiment: any object in, a clean, correctly sized 3D model out, viewable on the web and ready for the Game Kit. Seven steps, each pinned to a fleet machine, with GPT-6 Astra as the Blender operator and a second model as the judge.
The June to August work is all on record. Reading it back, the picture is clearer than "the 3D was not accurate".
| What happened | Root cause | Does it apply to generic objects? |
|---|---|---|
| Garments stayed frozen or exploded on the avatar | Rig mismatch. The garments used one skeleton, the bodies another, zero shared bone names. An asset problem, not a code problem. | No. A chair, a shoe or a lamp has no skeleton. |
| Sleeves did not follow the arms | Weight transfer put sleeve vertices on the torso. Only arms-out (T-pose) garments auto-rig cleanly; arms-down sources are hard. | No. Nothing to rig. |
| Garments looked tight, gappy, or like a puffer | Fit was scaled by height only, then patched with body-envelope scaling. Some engines inflate the shape. | Partly. Size still matters, but the reference is now the product's own dimensions, not a body. |
| Skin and shirt patches baked into the texture | Source photo had a person or busy background. The engine reproduces whatever is in the picture. | Yes. Fixed by cleaning the image first and generating extra views. |
| First engine too coarse | Higgsfield's mesh was rough. Switching to Tripo gave clean geometry and passed every check. | Yes. Engine choice is a bake-off, not a guess. |
| No "generate" button ever shipped | No machine with Blender behind the Cospace server, and the Studio UI sits in Lan's repo. | Yes, and this is the real fix. This plan puts Blender on a fleet worker with a queue in front of it. |
By 23 July there was a one-command tool that turned a product image into a wearable top that passed the validator, on garments it had never seen. What was missing was a backend and a button. Clothing stays a separate, later lane that reuses that tool. This plan is for everything else.
Every step writes its result to the job row in the Studio database and drops files in the media bucket, so the dashboard shows progress live and any step can be re-run alone.
Checked live on 9 September. This is the part where the preferred answer and the practical answer differ.
| Machine | What it has today | Role in this pipeline |
|---|---|---|
| tr-home worker v1 | 32-core Threadripper, 62 GB memory, AMD 24 GB GPU, Ubuntu on a normal x86 chip. Codex installed and logged in. The browser desk with the Shopee-capable Chrome profiles. Already runs the Studio publisher every five minutes. Blender is one command away (official build). | Steps 1, 2 and 4: browser fetch, image clean-up, Blender clean-up, GPU turntable renders, the Astra runner. A single worker process polls the Objek queue, same pattern as the publisher. |
| bandung-01 phase 2 · render node | Ultra 9 285K, 30 GB memory, RTX 5070 with 12 GB, 1.7 TB free, Ubuntu on a normal x86 chip. Idle for seven weeks (load near zero). The CUDA AI stack is already installed in the Forge training environment. No Blender, no Codex, no browser desk yet. Caveat: the graphics driver was updated but the machine was never rebooted, so the GPU is unusable until a reboot; it is also the twin brain's cold spare and the Forge trainer, so heavy jobs wait when training runs. | Best home for phase 2: our own mesh engine (TRELLIS-2 or Hunyuan3D fit in 12 GB with the smaller variants) plus CUDA turntable renders. Can also be the version 1 Blender worker instead of tr-home if you want NVIDIA from day one; the Shopee fetch stays on tr-home either way. |
| EdgeXpert reserve | NVIDIA GB10 with 121 GB unified memory, 3.4 TB free. The most capable AI box we own. But it is an ARM chip: Blender has no official build for it (community builds only), the AI libraries need NVIDIA's ARM stack installed, and it is Siti's home plus the twin brain. Codex is installed here too. | Step 5 judge today if we want it local. Otherwise only if a mesh model needs more than bandung-01's 12 GB. Not in the version 1 path, on purpose. |
| neo-bandung-ofc | Apartment Windows PC, Ultra 9 185H, 32 GB. Offline on the network for 23 days (parked). | None. |
| Studio dashboard | studio.neotodak.com on Netlify, the fleet database, the media bucket, PIN gate, lanes and gates already built for drama, lapisan and daily. | Steps 0 and 6, and every gate button. The Objek lane is a fourth lane, not a new app. |
| Hosted engines pay per object | Tripo through fal.ai (proven July), Hunyuan3D, Meshy, Rodin. Image models for extra views. A vision model for judging. | Step 3 and the extra views in step 2. Swappable per job so the bake-off can run. |
On "EdgeXpert because it is more powerful". True for running AI models, but for this pipeline bandung-01 is the better NVIDIA choice: normal chip, official Blender, CUDA libraries already there, and nothing else depending on it day to day. EdgeXpert would share the box with Siti and needs unofficial Blender builds. Blender work is not heavy anyway; the GPU only matters for turntable renders and, in phase 2, for running our own mesh engine.
Decided on 9 September from evidence, not preference. GPT-6 Astra is marketed on 3D and Blender reasoning; the dry run bore that out.
The evidence. On the same chair, Claude produced three parametric fold animations and all three were wrong against the seller's video, even after the video was in hand. Lan's Astra build got the fold right first time. Claude's mesh-lane work held up: the calibrated Hunyuan mesh passed its size check and the drawing sheets were correct. So the line is drawn at spatial reasoning, and it moves only if a later bake-off says otherwise.
Same shape as the other lanes: a job list, three gates, a cost line per job, a leaderboard per engine.
| Gate | What you see | What you decide | Cost so far |
|---|---|---|---|
| Pintu 0 · Kad produk | Photos pulled from the link, the product card, the size in centimetres | Size correct? Which views do we have? | RM0 |
| Pintu 1 · Rujukan | Two to four clean views on white, reviewer's consistency note | Do the views match the object? | RM1–2 |
| Pintu 2 · Objek | Two candidate meshes as turntables next to the source photos, judge's score and issues, measured size versus the card | Lulus, or Gagal with a reason that feeds the retry | RM6–16 |
| Terbit | Browser viewer, AR on phone, share link, download, send to Game Kit | — | RM0 |
For the course, the same lane is what students use in the 3D weeks: a student pastes a photo of a prop, gets a game-ready asset with a real size, and the prompt record shows how they directed the fix loop. The Game Kit's "asset" command is a front door to this lane.
About one week of work. Estimates, not quotes.
| Cost | Type | Estimate | Note |
|---|---|---|---|
| Per object, version 1 | Per job | RM8–20 | Extra views RM1–2, two candidate meshes RM6–16, Astra tokens RM1–3, renders RM0 |
| Blender, worker, viewer | One-off | RM0 | All free software on machines we already run |
| Phase 2 local mesh engine on EdgeXpert | One-off effort | 2–3 days | Worth it only past a few hundred objects a month, or for the course cohorts |
8000K KY507 folding director's chair, from a Shopee link. What worked, what failed, and what changed in this plan because of it.
| Step | Result | Verdict |
|---|---|---|
| Fetch | Shopee blocked the API and showed the browser a login wall; the page data still carried the spec text, every photo and the seller's fold video. | Works, via page data |
| Product card + drawings | Two-sheet technical drawing set with real listed dimensions, parts list, materials, exploded view. AI line-art for views, numbers drawn by us. | Correct |
| Mesh lane | Three engines on the same three views. Hunyuan3D v3 passed the size check (59 × 50 × 82 vs listed 55 × 50 × 82); Tripo 22% too wide; Meshy rebuilt the whole marketing photo. | Hunyuan wins |
| Blender clean-up on tr-home | Orientation, scale to listed height, floor origin, hygiene, 60k triangles, GLB/FBX/USDZ, turntable. 25 MB down to 462 KB for the web. | Works |
| Parametric fold by Claude | Three versions, all wrong against the video: the mechanism was guessed from stills, then misread from frames. | Failed, three times |
| Parametric fold by Astra (Lan) | Tech sheet, model and fold-into-bag animation in three.js, right first time. | Works |