Skip to content

Object-arc R&D frontier: native service (R5), orientation solve (R10), image-edit rung (R7b), Pixal3D (R8) - #7

Merged
jjohare merged 2 commits into
mainfrom
feat/object-rd-frontier
Jul 18, 2026
Merged

Object-arc R&D frontier: native service (R5), orientation solve (R10), image-edit rung (R7b), Pixal3D (R8)#7
jjohare merged 2 commits into
mainfrom
feat/object-rd-frontier

Conversation

@jjohare

@jjohare jjohare commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Object-arc R&D frontier

Advances the four open PRD v4 / ADR-025 roadmap items past the single-image object
convergence already on main. Built by four Fable R&D teammates on distinct new
modules, then integrated serially into the shared pipeline. Kept on a feature
branch — this is R&D; two tracks are scaffolds pending real-model/env validation
(see "Not yet live" below).

What's in it

Track New module Status Tests
R5 native TRELLIS.2 service scripts/trellis2_native_service.py Complete service; the two upstream-API wrappers are VERIFY-ON-ENV-BUILD 15
R10 orientation solve src/pipeline/object_orientation.py Complete + live-verified in the USD assembler 17 + 2
R7 image-edit rung (b) src/pipeline/image_edit_view.py Complete + self-gating; Qwen edit UNET not staged 18
R8 Pixal3D src/pipeline/pixal3d_client.py Contract-validated scaffold; weights not staged 13

Production-ready in this PR

  • R10 orientation completes the pose-solve: upright yaw from the crop's COLMAP
    camera pose (canonical mesh front ↔ observing-camera ray), wired through
    object_placementusd/placements.json → the assembler's AddOrientOp.
    Live-verified end-to-end (yaw-90 → xformOp:orient=(0.7071,0,0.7071,0), TRS order).
  • Native service is the durable fix for the recurring ComfyUI drtk ABI
    fragility (the native pipeline uses nvdiffrast, off the brittle drtk path).
  • Both are backward compatible; the default single-shot object path is byte-identical.

Not yet live (honest scope — do NOT treat as validated generators)

  • Pixal3D weights are not staged and no verified node pack exists; the client is a
    contract-validated scaffold that fails fast → falls through to TRELLIS.2. Pixal3D is
    MIT
    (the ADR-025 correction), so its licence gate passes; the head-to-head eval plan
    is research/2026-07-pixal3d-eval.md. Enable only after staging.
  • Image-edit rung needs the Qwen-Image-Edit UNET staged; it self-gates via
    probe_edit_model() and is off by default.
  • The native service's pipeline.run()/to_glb() wrappers need a smoke test against the
    pinned upstream checkout (VERIFY-ON-ENV-BUILD markers in place).

Validation

  • Container pipeline suite: 209 passed (+47).
  • Exact CI hermetic set in a clean CI-deps venv: 164 passed.
  • R10 orientation + position + scale live-verified in a real USD assembly.
  • All new tiers are opt-in (config default-off); the integration is additive.

🤖 Generated with claude-flow

jjohare and others added 2 commits July 18, 2026 17:10
…ation, R7 image-edit, R8 Pixal3D

Four Fable R&D teammates, distinct new modules (each hermetically tested):

- scripts/trellis2_native_service.py (R5): native TRELLIS.2 HTTP service —
  /health vs /ready, JSON error taxonomy (400/413/503/500), param clamp/default
  hardening, thread-safe lazy load, 64MB cap, full lineage. The durable fix for
  the ComfyUI drtk ABI fragility (native path uses nvdiffrast). 15 tests.
- src/pipeline/object_orientation.py (R10): upright-object YAW solve from the
  crop's COLMAP camera pose (canonical mesh front +Z ↔ observing-camera ray);
  frame math verified vs colmap_parser + assembler conventions. 17 tests +
  research/2026-07-orientation-solve.md derivation.
- src/pipeline/image_edit_view.py + qwen_image_edit_view.json (R7 rung b):
  Qwen-Image-Edit 'show the back' alternate view as an extra single-image
  best-of-N candidate (NOT panel-stitching); self-gates on UNET staging. 18 tests.
- src/pipeline/pixal3d_client.py (R8): MIT TRELLIS.2-backbone successor as a
  drop-in single-image generator scaffold (VERIFY-ON-ENV-BUILD; weights not
  staged) + research/2026-07-pixal3d-eval.md head-to-head plan. 13 tests.

All new files additive; pipeline wiring is a separate commit.

Co-Authored-By: claude-flow <ruv@ruv.net>
Wires the four R&D modules into the shared pipeline (all backward compatible —
the default single-shot object path is byte-identical; new tiers are opt-in):

- config.py: Pixal3DConfig + ImageEditConfig + Trellis2Config escalation fields
  (image_edit_escalation/escalation_threshold); PipelineConfig + _from_dict.
- stages._generate_object_from_crop: Pixal3D as an opt-in primary tier (R8,
  falls through to TRELLIS.2 on any failure); the image-edit escalation rung in
  the best-of-N loop (R7 rung b — best tuple widened to carry edit lineage; a
  winning edit rewrites surface -> image-edit-inferred); _persist records the
  crop camera_pose for R10. NOTE: camera_pose reads from the provenance dict
  (the crops manifest), correcting the teammate diff which assumed crop_entry.
- object_placement.build_placements + assemble_usd_scene: R10 orientation —
  solve_yaw from the camera pose -> placements.json orientation_quat ->
  assembler AddOrientOp (TRS order). Live-verified: yaw-90 ->
  xformOp:orient=(0.7071,0,0.7071,0). +2 integration tests.
- eval/objects/run_eval.py: --generator pixal3d (constructs the client directly,
  no pipeline flag needed).
- CI: runs the 4 new hermetic suites (+flask dep).

Container pipeline suite: 209 passed (+47). Clean-venv CI simulation green.
Docs: engineering-log R&D entry; PRD R7 done / R8 partial / R10 done.

Co-Authored-By: claude-flow <ruv@ruv.net>
@jjohare
jjohare merged commit 79e8954 into main Jul 18, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant