← Documentation Objek pipeline · v1.2 · Working plan
Creative pipeline · Objek lane · 9 Sep 2026 · Draft for Neo

From a photo or a shop link to a 3D object you can spin in the browser

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.

Short version
  1. What failed beforeThe Cospace attempt did not fail at "image to 3D". It failed at clothing on a body: rig mismatch, sleeves, T-pose, and fitting a garment to a torso. Tops actually worked by July. Generic objects skip all of that.
  2. CalibrationLast time "calibration" meant fitting a garment to a body by hand-tuned numbers. This time it means real-world size, taken from the product listing or confirmed by you before anything is generated, and checked automatically after.
  3. Which machinetr-home is the worker for version 1: official Blender, a 24 GB GPU for renders, the browser that can open Shopee, and Codex with Astra already logged in. bandung-01 is the NVIDIA box: normal chip plus a CUDA card with the AI libraries already installed, idle for seven weeks, so it becomes the phase 2 home for our own mesh engine and a render node, once it gets the reboot it has been waiting for. EdgeXpert stays with Siti and the twin brain; it only joins if a model needs more memory than 12 GB.
  4. Who does whatAstra does the 3D spatial work: parametric models, mechanisms, Blender repairs. Claude does the pipeline around it: fetching, product card, video-to-frames, size checks, viewers, the Studio lane, and judging results against references. Decided after the 9 Sep dry run, where Claude got the chair's fold wrong three times and Astra's version was right first time. Never the same model building and judging, same rule as the Studio.
  5. DashboardA fourth lane in studio.neotodak.com called Objek, with the same five-gate shape. No new dashboard. The viewer page and the "send to Game Kit" button live there.
01

What the Cospace clothing attempt actually taught us

The June to August work is all on record. Reading it back, the picture is clearer than "the 3D was not accurate".

What happenedRoot causeDoes it apply to generic objects?
Garments stayed frozen or exploded on the avatarRig 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 armsWeight 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 pufferFit 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 textureSource 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 coarseHiggsfield'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 shippedNo 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.

02

The seven steps, and who runs each one

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.

  1. 0
    Intake Studio
    You give one of three things: an image, a link (Shopee, Lazada, any product page), or a sentence describing the object. The Studio creates a job in the Objek lane. Nothing costs money yet.
  2. 1
    Fetch and understand tr-home Astra
    For a link, pull the product photos, title, the listed dimensions and weight, and any listing video. Shopee hides the video behind a login, but the page data still carries the file, and the seller's own video is the best reference for how a product moves. Cut it into frames. Claude writes a product card: what it is, category, real size in centimetres, materials, whether it is symmetric, which views and video we have. Pintu 0: you confirm the card, above all the size. This is the calibration, done before any money is spent. Rule from the dry run: nobody models motion from stills. If no video exists, the object ships as a static model and the card says so.
  3. 2
    Reference set tr-home image model
    Cut the object out of its background. Generate the views we do not have (back, side, top) with an image model told to keep the same object. Result: two to four clean views on white. Pintu 1: a reviewer model checks the views agree with each other. About RM1 to 2.
  4. 3
    Mesh generation hosted engines
    Send the views to a hosted image-to-3D engine and get a textured mesh back. Version 1 uses Tripo through fal.ai because it already proved itself in July. The lane runs a second engine in parallel (Hunyuan3D, Meshy or Rodin) so you get two candidates, and the winner count becomes a leaderboard like the Studio's writer bake-offs. About RM3 to 8 per candidate.
  5. 4
    Blender clean-up and calibration tr-home Astra
    Blender runs headless from scripts, no window. Fix orientation (the July bugs are documented: quaternion rotation, the Y-up wrapper), scale to the real size from the product card, set the origin and floor, reduce polygons to the target (web or game), close holes, fix normals, remove stray pieces, bake a clean 2K texture, and export three files: GLB for the web and Godot, USDZ for iPhone AR, FBX for other engines. Then render a turntable: eight stills and a six-second spin on the 24 GB GPU. Automatic checks: bounding box within 5% of the card, watertight, polygon budget, texture size, no stray meshes. Astra's role: when a check fails, it edits the script or changes the parameters and re-runs, up to three tries.
  6. 5
    Second pair of eyes EdgeXpert or cloud
    Pintu 2: a vision model that is not Astra compares the turntable with the source photos and scores 0 to 10 with a list of issues: wrong proportions, smeared logo, missing part, fake back side. Below the bar, the lane goes back to step 3 with the other engine or a new seed. Above the bar, you see source and result side by side and press Lulus or Gagal.
  7. 6
    Publish and use Studio
    Files go to the media bucket. The Studio shows the object in a browser viewer you can spin, with an AR button on a phone. Buttons: copy share link, download, send to Game Kit (drops the GLB into a student's Godot project as a ready asset), and later, send to Cospace through the July garment tool for tops only.

Two lanes, chosen per object

Why this works where the clothing version stalled

What it still cannot do well

03

Which fleet machine, and why

Checked live on 9 September. This is the part where the preferred answer and the practical answer differ.

MachineWhat it has todayRole in this pipeline
tr-home worker v132-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 nodeUltra 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 reserveNVIDIA 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-ofcApartment Windows PC, Ultra 9 185H, 32 GB. Offline on the network for 23 days (parked).None.
Studio dashboardstudio.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 objectTripo 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.

04

The split: Astra for 3D, Claude for the pipeline

Decided on 9 September from evidence, not preference. GPT-6 Astra is marketed on 3D and Blender reasoning; the dry run bore that out.

Astra · the spatial work

  • Parametric models built from the product card and the video: frames, hinges, fabric, the fold itself.
  • Blender clean-up scripts and repairs when a generated mesh fails a check.
  • Runs inside the pipeline on tr-home as a background command per job, with the video frames and the product card as its brief. Codex is logged in there and on your Mac.
  • Its output is judged by a different model. Same rule as the Studio writer and reviewer.

Claude · everything around it

  • Fetching the listing, the product card, cutting videos into frames, the reference set.
  • Running the mesh engines, the size checks, the web exports, the viewers, the Studio lane and its gates.
  • Judging results against the references and writing the record of what was tried.
  • Building and maintaining the worker itself.

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.

05

The Objek lane in the Studio

Same shape as the other lanes: a job list, three gates, a cost line per job, a leaderboard per engine.

GateWhat you seeWhat you decideCost so far
Pintu 0 · Kad produkPhotos pulled from the link, the product card, the size in centimetresSize correct? Which views do we have?RM0
Pintu 1 · RujukanTwo to four clean views on white, reviewer's consistency noteDo the views match the object?RM1–2
Pintu 2 · ObjekTwo candidate meshes as turntables next to the source photos, judge's score and issues, measured size versus the cardLulus, or Gagal with a reason that feeds the retryRM6–16
TerbitBrowser 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.

06

Build list and cost

About one week of work. Estimates, not quotes.

  1. Blender and the worker on tr-home · 1 day. Official Blender, a worker process that polls the Objek queue, the fal.ai and image-model calls, the Codex runner.
  2. Clean-up scripts · 2 days. Orientation, real-size scaling, decimation, hole closing, texture bake, three exports, turntable render, the automatic checks. Astra and Claude both write against the same five test objects.
  3. Objek lane in the Studio · 1.5 days. Job table, three gates, viewer page, send-to-Game-Kit. Built with the Studio session that owns that repo.
  4. Judge and retry loop · 1 day. Vision scoring, the retry rules, the engine leaderboard.
  5. Dry run · 1 day. Five real Shopee items of different kinds: a shoe, a chair, a bottle, a toy, a lamp. Every snag goes into the scripts before anyone else uses it.
CostTypeEstimateNote
Per object, version 1Per jobRM8–20Extra views RM1–2, two candidate meshes RM6–16, Astra tokens RM1–3, renders RM0
Blender, worker, viewerOne-offRM0All free software on machines we already run
Phase 2 local mesh engine on EdgeXpertOne-off effort2–3 daysWorth it only past a few hundred objects a month, or for the course cohorts
07

Dry run, 9 September: one Shopee chair through the steps by hand

8000K KY507 folding director's chair, from a Shopee link. What worked, what failed, and what changed in this plan because of it.

StepResultVerdict
FetchShopee 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 + drawingsTwo-sheet technical drawing set with real listed dimensions, parts list, materials, exploded view. AI line-art for views, numbers drawn by us.Correct
Mesh laneThree 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-homeOrientation, 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 ClaudeThree 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

What changed in the plan

08

Decisions for Neo

  1. 1tr-home is the version 1 worker; bandung-01 becomes the phase 2 mesh-engine and render node after a reboot; EdgeXpert stays in reserve. Recommended Alternative: bandung-01 as the worker from day one if you want NVIDIA now.
  2. 1bApprove a reboot of bandung-01 at a quiet moment so its GPU works again. Its two background services restart on their own.
  3. 2The dashboard is a fourth lane in studio.neotodak.com, not a new site. Recommended
  4. 3Astra does the 3D spatial work, Claude does the pipeline and judging. Decided 9 Sep from the dry run
  5. 4Hosted engines for version 1 at roughly RM8 to 20 per object, Tripo first with a second engine in parallel.
  6. 5Clothing on a body stays out of version 1. It gets its own lane later, reusing the July garment tool.
  7. 6Go: start the one-week build, or hold until the course Game Kit work is further along.
09

Changelog