Skip to content

Add WorldMirror (HunyuanWorld-Mirror 2.0) as a scriptable framework - #1052

Draft
ryang-amd wants to merge 1 commit into
mainfrom
3d-worldmirror-scriptable-framework
Draft

Add WorldMirror (HunyuanWorld-Mirror 2.0) as a scriptable framework#1052
ryang-amd wants to merge 1 commit into
mainfrom
3d-worldmirror-scriptable-framework

Conversation

@ryang-amd

Copy link
Copy Markdown
Collaborator

Onboards worldmirror as a SCRIPTABLE (server-less) framework, like xDiT: a single feed-forward 3D-reconstruction pass per scene, ranked by e2el_mean_ms and gated on output quality (per-head relative-L1). Enables inference_optimizer optimize --framework worldmirror end to end.

  • framework_registry: register the worldmirror FrameworkSpec (kind=SCRIPTABLE, throughput_unit="recon/s", no server reuse).

  • repo_map: map worldmirror -> HY-World-2.0 for PR scouting.

  • _workload_envs: map worldmirror -> baseline_worldmirror.yaml.

  • profile.py: select profile_worldmirror.yaml for the profile round.

  • framework.py: scriptable frameworks (worldmirror, xDiT) can never git-apply a serving diff, so skip the global serving PR allowlist and scout only the framework's own repo.

  • assets/configs: add baseline_worldmirror.yaml + profile_worldmirror.yaml.

  • Description: what and why

  • Linked issue(s): close/fix refs

  • Tests: added/updated? commands run?

  • Breaking changes: yes/no (details if yes)

Onboards `worldmirror` as a SCRIPTABLE (server-less) framework, like xDiT:
a single feed-forward 3D-reconstruction pass per scene, ranked by
e2el_mean_ms and gated on output quality (per-head relative-L1). Enables
`inference_optimizer optimize --framework worldmirror` end to end.

- framework_registry: register the `worldmirror` FrameworkSpec
  (kind=SCRIPTABLE, throughput_unit="recon/s", no server reuse).
- repo_map: map worldmirror -> HY-World-2.0 for PR scouting.
- _workload_envs: map worldmirror -> baseline_worldmirror.yaml.
- profile.py: select profile_worldmirror.yaml for the profile round.
- framework.py: scriptable frameworks (worldmirror, xDiT) can never
  git-apply a serving diff, so skip the global serving PR allowlist and
  scout only the framework's own repo.
- assets/configs: add baseline_worldmirror.yaml + profile_worldmirror.yaml.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR onboards WorldMirror (HunyuanWorld-Mirror 2.0) as a SCRIPTABLE (server-less) framework in Hyperloom, wiring it through the framework registry and orchestration path so it can be selected end-to-end (including profile/baseline config resolution and framework-agent scouting behavior).

Changes:

  • Register worldmirror in framework_registry (SCRIPTABLE, recon/s, repo URL, extra args env).
  • Add shipped baseline/profile YAML configs for WorldMirror and hook them into baseline/profile config resolvers.
  • Update framework-agent discovery to avoid querying the global serving/infra repo allowlist for scriptable frameworks.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/hyperloom/orchestrator/phases/framework.py Skip global PR allowlist scouting for scriptable frameworks during framework-agent discovery.
src/hyperloom/orchestrator/actions/executors/profile.py Select profile_worldmirror.yaml when FRAMEWORK=worldmirror.
src/hyperloom/orchestrator/actions/executors/_workload_envs.py Map worldmirror to the shipped baseline YAML.
src/hyperloom/inference_optimizer/framework_registry.py Register worldmirror as a scriptable framework spec (recon/s, repo URL).
src/hyperloom/inference_optimizer/assets/configs/profile_worldmirror.yaml Add profiling config for WorldMirror (torch profiler enabled).
src/hyperloom/inference_optimizer/assets/configs/baseline_worldmirror.yaml Add baseline config for WorldMirror (throughput + quality gate).
src/hyperloom/agents/framework/repo_map.py Map worldmirror to Tencent-Hunyuan/HY-World-2.0.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +2987 to +2991
if not framework_registry.is_scriptable(framework):
for repo in PR_QUERY_REPOS:
repo = str(repo or "").strip()
if repo and "/" in repo:
_add(f"https://github.com/{repo}.git")
Comment on lines +106 to +112
# WorldMirror (HunyuanWorld-Mirror): a ~1.2B feed-forward 3D reconstruction
# model (ViT backbone + DPT/GS heads). It runs a single forward pass per
# scene, so it is a SCRIPTABLE (server-less) workload like xDiT: the wrapper
# worldmirror_{runner_type}.sh runs the benchmark once per variant, parses
# e2el latency, runs a quality gate (LPIPS/SSIM/MSE vs a BF16 reference), and
# writes benchmark_report.json. primary_metric_name() -> "e2el_mean_ms" is
# derived automatically from kind=SCRIPTABLE.
Comment on lines +64 to +68
# Geometry-quality gate. The wrapper writes quality_gate.{passed,lpips,ssim,mse};
# _accuracy_gate maps passed->1.0. Gate keys on per-head relative-L1 (scale-
# invariant across depth/pts3d/normals); MSE is reported as a diagnostic only.
XDIT_QUALITY_REF: "" # reference output dir; empty = gate skipped
WM_QUALITY_REL_MAX: 0.2 # max relative-L1 per head (2%); all heads must pass
Comment on lines +113 to +117
"worldmirror": FrameworkSpec(
name="worldmirror",
kind=SCRIPTABLE,
extra_args_env="EXTRA_WORLDMIRROR_ARGS",
repo_url="https://github.com/Tencent-Hunyuan/HY-World-2.0.git",
@github-actions

Copy link
Copy Markdown

CI E2E report — ❌ Failed

item value
result ❌ Failed
model Qwen/Qwen3-0.6B (dense)
resources 1× GPU, TP=1
PR branch 3d-worldmirror-scriptable-framework
commit 70ac4a183543d5592959219f09beca8740c65f1d
session_id ada3ade2-32c6-4fce-9059-ad1867ab8efc
queue → dispatch 0s
run time 153m 26s
total 153m 26s
reason platform reported Failed: container hyperloom exited with code 1 (Error): pruned_families : []
detail `platform reported Failed: container hyperloom exited with code 1 (Error): pruned_families : []

details

@tsrikris

tsrikris commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

@ryang-amd pls reach out to the TraceLens team in case you face any issues with the analysis portion

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.

3 participants