KoeYe Claude Opus 5.5 commited on
Commit
c3746b4
·
1 Parent(s): 5bf5905

Feature GPT-6 Astra's Industrial Harbor in the Text-to-Scene cases

Browse files
.gitattributes CHANGED
@@ -96,3 +96,16 @@ media/t2s/nordic-harbour/sol.jpg filter=lfs diff=lfs merge=lfs -text
96
  media/teaser-poster.jpg filter=lfs diff=lfs merge=lfs -text
97
  media/teaser.mp4 filter=lfs diff=lfs merge=lfs -text
98
  media/teaser-v31.mp4 filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  media/teaser-poster.jpg filter=lfs diff=lfs merge=lfs -text
97
  media/teaser.mp4 filter=lfs diff=lfs merge=lfs -text
98
  media/teaser-v31.mp4 filter=lfs diff=lfs merge=lfs -text
99
+ media/i2s/comp-17-rosies-service-bin-reset-v3/deepseek_full.jpg filter=lfs diff=lfs merge=lfs -text
100
+ media/i2s/comp-17-rosies-service-bin-reset-v3/gemma-off.jpg filter=lfs diff=lfs merge=lfs -text
101
+ media/i2s/comp-17-rosies-service-bin-reset-v3/gt.jpg filter=lfs diff=lfs merge=lfs -text
102
+ media/i2s/comp-17-rosies-service-bin-reset-v3/qwen-on_full.jpg filter=lfs diff=lfs merge=lfs -text
103
+ media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gemini_full.jpg filter=lfs diff=lfs merge=lfs -text
104
+ media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gt.jpg filter=lfs diff=lfs merge=lfs -text
105
+ media/i2s/comp-18-rosies-roadside-billboard-reset-v3/inkling_full.jpg filter=lfs diff=lfs merge=lfs -text
106
+ media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gemini_full.jpg filter=lfs diff=lfs merge=lfs -text
107
+ media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/qwen-on_full.jpg filter=lfs diff=lfs merge=lfs -text
108
+ media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemini_full.jpg filter=lfs diff=lfs merge=lfs -text
109
+ media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemma-off_full.jpg filter=lfs diff=lfs merge=lfs -text
110
+ media/i2s/comp-72-suburban-umbrella-pair-repair-v2/ref-1.jpg filter=lfs diff=lfs merge=lfs -text
111
+ media/t2s/industrial-harbor/astra.jpg filter=lfs diff=lfs merge=lfs -text
assets/buildingbench.css CHANGED
@@ -63,3 +63,14 @@ svg.kit-ch{display:block;width:100%;height:auto;overflow:visible}
63
  /* evaluation tracks (scripts/tracks.py) */
64
  .tracks-why{max-width:860px;margin:8px 0 0;font-size:13px;line-height:1.65;color:var(--text-muted);text-align:left}
65
  @media(max-width:650px){.tracks-why{font-size:11px}}
 
 
 
 
 
 
 
 
 
 
 
 
63
  /* evaluation tracks (scripts/tracks.py) */
64
  .tracks-why{max-width:860px;margin:8px 0 0;font-size:13px;line-height:1.65;color:var(--text-muted);text-align:left}
65
  @media(max-width:650px){.tracks-why{font-size:11px}}
66
+
67
+ /* featured showcase card (scripts/harbor_card.py) */
68
+ .case-grid .case-feature{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}
69
+ .case-feature .feature-shot{position:relative;display:block;background:#8ec6ec;aspect-ratio:16/9;overflow:hidden}
70
+ .case-feature .feature-shot img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s}
71
+ .case-feature .feature-shot:hover img{transform:scale(1.025)}
72
+ .case-feature .feature-badge{position:absolute;left:12px;bottom:12px;padding:5px 10px;border-radius:6px;background:#17201dcc;color:#fff;font:500 12px 'IBM Plex Mono',monospace}
73
+ .case-feature .meta{display:flex;flex-direction:column;justify-content:center}
74
+ .case-feature .feature-prompt{margin:12px 0 14px;padding:10px 14px;border-left:3px solid var(--border);color:var(--text-muted);font-size:13px;line-height:1.6;font-style:italic}
75
+ .case-feature .feature-note{margin-top:6px;font-size:11px;color:var(--text-muted)}
76
+ @media(max-width:900px){.case-grid .case-feature{grid-template-columns:minmax(0,1fr)}}
index.html CHANGED
@@ -19,7 +19,7 @@ svg.ch .dim{opacity:.42}svg.ch g.row:hover{opacity:1}svg.ch .hot{fill:var(--c4s-
19
  .chip.ok{color:var(--c4s-ok);border-color:currentColor}.chip.no{color:var(--c4s-hot);border-color:currentColor}.chip small{font-weight:500;color:var(--text-muted);margin-left:4px}
20
  .bigstats{display:flex;flex-wrap:wrap;gap:12px 34px;margin:0 0 12px}.bigstats b{display:block;font-size:30px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
21
  .bigstats span{font-size:13px;color:var(--text-secondary)}
22
- </style><link href="assets/buildingbench.css?v=20261004i2s" rel="stylesheet"/><script type="importmap">{"imports":{"three":"./assets/vendor/three-r160/build/three.module.js","three/addons/":"./assets/vendor/three-r160/addons/"}}</script></head><body><a class="skip-link" href="#leaderboard">Skip to benchmark explorer</a>
23
  <header class="site-header"><div class="brand"><a aria-label="Code4Scene home" class="brand-home" href="index.html#top"><svg aria-hidden="true" fill="none" viewbox="0 0 30 32"><path d="M15 2 27 9v14l-12 7L3 23V9L15 2Z M3 9l12 7 12-7 M15 16v14 M9 5.5l12 7v14 M21 5.5l-12 7v14" stroke="currentColor" stroke-linejoin="round" stroke-width="1.6"></path></svg><span>Code4Scene</span></a><a class="brand-by" href="https://simworld.org/">by SimWorld</a></div><nav aria-label="Main navigation"><a class="nav-active" href="index.html#top">Benchmark</a><a href="index.html#leaderboard">Leaderboard</a><a href="index.html#cases">Visualization</a><a href="https://arxiv.org/abs/2609.36777" rel="noopener" target="_blank">Paper ↗</a><a href="https://github.com/SimWorld-AI/Code4Scene" rel="noopener" target="_blank">Github ↗</a></nav></header><main class="page-main"><section class="intro" id="top"><div class="intro-copy"><h1>Constructing<br/><em>3D Scenes with Code</em></h1><p class="intro-text">Benchmarking coding agents that turn open-ended scene descriptions into engine-native 3D scenes in Unreal Engine. Measuring spatial reasoning, task fulfillment and physical validity.</p><div class="intro-links"><a href="https://arxiv.org/abs/2609.36777">Read the paper ↗</a><a href="https://github.com/SimWorld-AI/Code4Scene">Code &amp; Data ↗</a><a href="#hero-video">Watch the teaser ↘</a></div></div><div class="featured featured-video" id="hero-video"><video aria-label="Code4Scene overview video" controls="" playsinline="" poster="media/teaser-poster.jpg" preload="metadata"><source src="media/teaser-v31.mp4" type="video/mp4"/>Your browser does not support embedded video. <a href="media/teaser-v31.mp4">Watch the Code4Scene video</a>.</video><div class="featured-video-caption"><strong>Code4Scene in 90 seconds</strong><span>Construction and evaluation</span></div></div></section><section class="task-section" id="task-format"><div class="container"><h2 class="section-title">Task Format</h2><div class="task-shell"><div aria-label="Task format" class="task-tabs" role="tablist"><button aria-controls="task-t2s" aria-selected="true" data-task="t2s" id="task-tab-t2s" role="tab">Text-to-Scene</button><button aria-controls="task-i2s" aria-selected="false" data-task="i2s" id="task-tab-i2s" role="tab" tabindex="-1">Image-to-Scene</button></div><div aria-labelledby="task-tab-t2s" class="task-content" data-task="t2s" id="task-t2s" role="tabpanel"><h3>Nordic Harbour <span>· Text-to-Scene</span></h3><p class="task-subtitle">An open-ended scene description, an asset catalog and the Unreal Engine editor.</p><div class="task-columns"><article class="task-panel"><div class="panel-heading"><strong>Agent input</strong><span>Text + assets</span></div><div class="prompt-preview"><span class="eyebrow">Task instruction</span><p>Build me a compact, sunlit Copenhagen-style canal district with narrow cobblestone streets and rectangular waterways enclosing dense urban blocks.</p><p class="prompt-detail">Townhouses, canals, bridges and a waterfront promenade — with detailed requirements for materials, layout and street furniture.</p></div><p class="task-foot"><strong>Given:</strong> an empty level and the content pack’s asset catalog.</p></article><article class="task-panel output-panel"><div class="panel-heading"><strong>Agent output</strong><span>GPT-6 Astra</span></div><div class="live-scene" data-agent="astra" data-case="nordic-harbour"><canvas aria-label="Interactive 3D scene: Nordic Harbour. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><a class="task-foot text-button" href="cases.html#nordic-harbour">Compare agents and evaluator views ↗</a></article><article class="task-panel evaluation-panel"><div class="panel-heading"><strong>Evaluation</strong><span>Engine-native scene</span></div><div class="score-block"><span>CASE SCORE</span><strong>0.877</strong><dl><div><dt>Detailed Alignment</dt><dd>0.757</dd></div><div><dt>Overview Alignment</dt><dd>0.909</dd></div><div><dt>Physical Safety</dt><dd>0.900</dd></div></dl></div><p class="task-foot">Task fulfillment, artifact integrity and static physical validity.</p><p class="task-formula">0.2 × Detailed + 0.6 × Overview + 0.2 × Physical</p></article></div><details class="task-full"><summary><span>+ Full task instruction</span><span>TEXT-TO-SCENE</span></summary><p>Build me a compact, sunlit Copenhagen-style canal district with narrow cobblestone streets and rectangular waterways enclosing dense urban blocks. Arrange roughly thirty attached four- to six-storey townhouses in continuous street and canal-front rows, using slender façades, repetitive white-framed windows, arched doors and carriage entrances, modest cornices, and steep tiled roofs packed with dormers and brick chimneys. Include occasional exposed party walls between staggered building rows. Finish the façades in weathered muted red, mustard yellow, dusty blue, warm grey, beige, and exposed brick, with red, orange, and charcoal roof tiles. Run a principal waterfront street along a stone quay, crossed by smaller streets and linked across the canals by short, gently arched stone-and-metal bridges, including one opening onto a broad paved promenade with rounded landings. Form the canal edges from stepped pale stone, dark timber retaining walls, and iron railings around reflective rippling water. Add regularly spaced leafy trees, ornate black lamps, stone bollards, benches, European road signs, zebra crossings, puddles, grime, and sparse weeds.</p></details><div class="availability"><span><b>20</b> scenes in the <strong>Research Track</strong>: affordable, reproducible evaluation for academic and model-development use</span><span><b>160</b> scenes in the <strong>Full Benchmark</strong>: comprehensive evaluation for leaderboard and final reporting</span></div></div><div aria-labelledby="task-tab-i2s" class="task-content" data-task="i2s" hidden="" id="task-i2s" role="tabpanel"><h3>Old Industrial Pallet Bay <span>· Image-to-Scene</span></h3><p class="task-subtitle">Repair the corrupted scene using its reference image; preserve all unrelated actors.</p><div class="task-columns"><article class="task-panel input-panel"><div class="panel-heading"><strong>Agent input</strong><span>Scene + reference image</span></div><div class="live-scene" data-agent="astra" data-case="comp-31-old-industrial-pallet-bay-repair-v2" data-state="input"><canvas aria-label="Interactive 3D: Old Industrial Pallet Bay, input. Drag to orbit; scroll to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Resume scene rotation" class="scene-motion">▶</button></div><a class="task-reference" href="media/i2s/comp-31-old-industrial-pallet-bay-repair-v2/ref-1.jpg?v=1790549706" rel="noopener" target="_blank"><img alt="Provided reference image for Old Industrial Pallet Bay" loading="lazy" src="media/i2s/comp-31-old-industrial-pallet-bay-repair-v2/ref-1.jpg?v=1790549706"/><span>Provided reference image ↗</span></a><p class="task-foot">A translated and rotated pallet stack, plus an unintended duplicate.</p></article><article class="task-panel output-panel"><div class="panel-heading"><strong>Agent output</strong><span>GPT-6 Astra</span></div><div class="live-scene" data-agent="astra" data-case="comp-31-old-industrial-pallet-bay-repair-v2" data-state="repair"><canvas aria-label="Interactive 3D: Old Industrial Pallet Bay, repair. Drag to orbit; scroll to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Resume scene rotation" class="scene-motion">▶</button></div><div aria-label="Output scene state" class="scene-versions"><button class="on" data-state="repair">Repair</button><button data-state="input">Corrupted input</button><button data-state="gt">Ground truth</button></div><p class="task-foot">Inspect the saved repair from the same reference camera.</p><a class="text-button task-foot" href="cases.html#comp-31-old-industrial-pallet-bay-repair-v2">Compare agents and evaluator views ↗</a></article><article class="task-panel evaluation-panel"><div class="panel-heading"><strong>Evaluation</strong><span>Actor-level repair</span></div><div class="score-block"><span>CASE SCORE</span><strong>1.000</strong><dl><div><dt>Repair F1</dt><dd>1.000</dd></div><div><dt>Physical Safety</dt><dd>1.000</dd></div><div><dt>TP / FP / FN</dt><dd>2 / 0 / 0</dd></div></dl></div><p class="task-foot">Restore each target within 5 cm, 5° and 5%, without unintended edits.</p><p class="task-formula">0.8 × Repair F1 + 0.2 × Physical</p></article></div><details class="task-full"><summary><span>+ Full task instruction</span><span>IMAGE-TO-SCENE</span></summary><p>Repair the current outdoor scene so it matches the provided reference image. Make only the minimum changes needed, and preserve all unrelated actors and properties.</p></details><div class="availability"><span><b>160</b> editing cases in the full benchmark target, including private cases</span><span><b>72</b> public editing cases (22 indoor, 50 outdoor)</span></div></div></div></div></section><section id="leaderboard"><div class="container">
24
  <div class="section-header centered"><span class="section-label">Leaderboard</span><h2 class="section-title">Leaderboard</h2>
25
  <p class="section-desc" data-view="t2s">Research Track · 20 representative scenes · 14 coding-agent configurations.</p><p class="section-desc" data-view="i2s" style="display:none">Image-to-Scene · 75 public cases (25 indoor, 50 outdoor) · 14 coding-agent configurations.</p><p class="tracks-why" data-view="t2s">Text-to-scene generation with frontier models is a long-horizon agentic task with substantial inference cost and runtime, which makes repeated full-scale evaluation difficult for many research groups. The Research Track supports affordable, reproducible experimentation; the Full Benchmark provides the more comprehensive evaluation for final model comparison and leaderboard reporting.</p></div>
@@ -32,7 +32,20 @@ svg.ch .dim{opacity:.42}svg.ch g.row:hover{opacity:1}svg.ch .hot{fill:var(--c4s-
32
  </div></section><section id="cases"><div class="container">
33
  <div class="section-header centered"><span class="section-label">Cases</span><h2 class="section-title">Visualizing agent outputs</h2>
34
  <p class="section-desc" data-view="t2s">Drag any scene to inspect the saved 3D output, or open a case to explore every agent.</p><p class="section-desc" data-view="i2s" style="display:none">Drag any scene to inspect the saved 3D output. Switch each repair between the saved scene, its corrupted input and the ground truth, or open a case to explore every agent.</p></div>
35
- <div class="lb-tabs"><div class="seg seg-lg" data-for="cases"><button class="on" data-view="t2s">Text-to-Scene</button><button data-view="i2s">Image-to-Scene</button></div></div><div class="case-grid" data-view="t2s"><article class="case-card"><div class="live-scene" data-agent="astra" data-case="nordic-harbour"><canvas aria-label="Interactive 3D scene: Nordic Harbour. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><div class="meta"><span class="eyebrow">Text-to-Scene</span><h4>Nordic Harbour</h4><p>GPT-6 Astra (max) · score 0.877</p><a class="text-button" href="cases.html#nordic-harbour">Compare all 14 agents ↗</a></div></article><article class="case-card"><div class="live-scene" data-agent="fable" data-case="medieval-big-farm-town"><canvas aria-label="Interactive 3D scene: Medieval Big Farm Town. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><div class="meta"><span class="eyebrow">Text-to-Scene</span><h4>Medieval Big Farm Town</h4><p>Claude Fable 5.1 (max) · score 0.830</p><a class="text-button" href="cases.html#medieval-big-farm-town">Compare all 14 agents ↗</a></div></article><article class="case-card"><div class="live-scene" data-agent="opus" data-case="egyptian-temple"><canvas aria-label="Interactive 3D scene: Egyptian Temple. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><div class="meta"><span class="eyebrow">Text-to-Scene</span><h4>Egyptian Temple</h4><p>Claude Opus 5 (max) · score 0.777</p><a class="text-button" href="cases.html#egyptian-temple">Compare all 14 agents ↗</a></div></article><article class="case-card"><div class="live-scene" data-agent="fable" data-case="bazaar"><canvas aria-label="Interactive 3D scene: Bazaar. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><div class="meta"><span class="eyebrow">Text-to-Scene</span><h4>Bazaar</h4><p>Claude Fable 5.1 (max) · score 0.930</p><a class="text-button" href="cases.html#bazaar">Compare all 14 agents ↗</a></div></article></div><div class="case-grid" data-view="i2s" style="display:none"><article class="case-card"><div class="live-scene" data-agent="astra" data-case="comp-31-old-industrial-pallet-bay-repair-v2"><canvas aria-label="Interactive 3D scene: Old Industrial Pallet Bay. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><div aria-label="Scene state" class="scene-versions"><button class="on" data-state="repair">Repair</button><button data-state="input">Corrupted input</button><button data-state="gt">Ground truth</button></div><div class="meta"><span class="eyebrow">Image-to-Scene</span><h4>Old Industrial Pallet Bay</h4><p>GPT-6 Astra (max) · score 1.000</p><a class="text-button" href="cases.html#comp-31-old-industrial-pallet-bay-repair-v2">Compare all 14 agents ↗</a></div></article><article class="case-card"><div class="live-scene" data-agent="fable" data-case="comp-61-new-york-mailbox-pair-repair-v2"><canvas aria-label="Interactive 3D scene: New York Mailbox Pair. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><div aria-label="Scene state" class="scene-versions"><button class="on" data-state="repair">Repair</button><button data-state="input">Corrupted input</button><button data-state="gt">Ground truth</button></div><div class="meta"><span class="eyebrow">Image-to-Scene</span><h4>New York Mailbox Pair</h4><p>Claude Fable 5.1 (max) · score 1.000</p><a class="text-button" href="cases.html#comp-61-new-york-mailbox-pair-repair-v2">Compare all 14 agents ↗</a></div></article></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
36
  <div style="text-align:center;margin-top:2rem"><a class="btn btn-primary" href="cases.html"><svg aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.5" viewbox="0 0 16 16"><path d="M8 1.5l5.5 3v7L8 14.5l-5.5-3v-7z"></path><path d="M2.5 4.5L8 7.5l5.5-3M8 7.5v7"></path></svg> Open the case explorer</a></div>
37
  </div></section><section class="alt" id="takeaways"><div class="container">
38
  <div class="section-header centered"><span class="section-label">Findings</span><h2 class="section-title">Takeaways</h2>
 
19
  .chip.ok{color:var(--c4s-ok);border-color:currentColor}.chip.no{color:var(--c4s-hot);border-color:currentColor}.chip small{font-weight:500;color:var(--text-muted);margin-left:4px}
20
  .bigstats{display:flex;flex-wrap:wrap;gap:12px 34px;margin:0 0 12px}.bigstats b{display:block;font-size:30px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
21
  .bigstats span{font-size:13px;color:var(--text-secondary)}
22
+ </style><link href="assets/buildingbench.css?v=20261004harbor" rel="stylesheet"/><script type="importmap">{"imports":{"three":"./assets/vendor/three-r160/build/three.module.js","three/addons/":"./assets/vendor/three-r160/addons/"}}</script></head><body><a class="skip-link" href="#leaderboard">Skip to benchmark explorer</a>
23
  <header class="site-header"><div class="brand"><a aria-label="Code4Scene home" class="brand-home" href="index.html#top"><svg aria-hidden="true" fill="none" viewbox="0 0 30 32"><path d="M15 2 27 9v14l-12 7L3 23V9L15 2Z M3 9l12 7 12-7 M15 16v14 M9 5.5l12 7v14 M21 5.5l-12 7v14" stroke="currentColor" stroke-linejoin="round" stroke-width="1.6"></path></svg><span>Code4Scene</span></a><a class="brand-by" href="https://simworld.org/">by SimWorld</a></div><nav aria-label="Main navigation"><a class="nav-active" href="index.html#top">Benchmark</a><a href="index.html#leaderboard">Leaderboard</a><a href="index.html#cases">Visualization</a><a href="https://arxiv.org/abs/2609.36777" rel="noopener" target="_blank">Paper ↗</a><a href="https://github.com/SimWorld-AI/Code4Scene" rel="noopener" target="_blank">Github ↗</a></nav></header><main class="page-main"><section class="intro" id="top"><div class="intro-copy"><h1>Constructing<br/><em>3D Scenes with Code</em></h1><p class="intro-text">Benchmarking coding agents that turn open-ended scene descriptions into engine-native 3D scenes in Unreal Engine. Measuring spatial reasoning, task fulfillment and physical validity.</p><div class="intro-links"><a href="https://arxiv.org/abs/2609.36777">Read the paper ↗</a><a href="https://github.com/SimWorld-AI/Code4Scene">Code &amp; Data ↗</a><a href="#hero-video">Watch the teaser ↘</a></div></div><div class="featured featured-video" id="hero-video"><video aria-label="Code4Scene overview video" controls="" playsinline="" poster="media/teaser-poster.jpg" preload="metadata"><source src="media/teaser-v31.mp4" type="video/mp4"/>Your browser does not support embedded video. <a href="media/teaser-v31.mp4">Watch the Code4Scene video</a>.</video><div class="featured-video-caption"><strong>Code4Scene in 90 seconds</strong><span>Construction and evaluation</span></div></div></section><section class="task-section" id="task-format"><div class="container"><h2 class="section-title">Task Format</h2><div class="task-shell"><div aria-label="Task format" class="task-tabs" role="tablist"><button aria-controls="task-t2s" aria-selected="true" data-task="t2s" id="task-tab-t2s" role="tab">Text-to-Scene</button><button aria-controls="task-i2s" aria-selected="false" data-task="i2s" id="task-tab-i2s" role="tab" tabindex="-1">Image-to-Scene</button></div><div aria-labelledby="task-tab-t2s" class="task-content" data-task="t2s" id="task-t2s" role="tabpanel"><h3>Nordic Harbour <span>· Text-to-Scene</span></h3><p class="task-subtitle">An open-ended scene description, an asset catalog and the Unreal Engine editor.</p><div class="task-columns"><article class="task-panel"><div class="panel-heading"><strong>Agent input</strong><span>Text + assets</span></div><div class="prompt-preview"><span class="eyebrow">Task instruction</span><p>Build me a compact, sunlit Copenhagen-style canal district with narrow cobblestone streets and rectangular waterways enclosing dense urban blocks.</p><p class="prompt-detail">Townhouses, canals, bridges and a waterfront promenade — with detailed requirements for materials, layout and street furniture.</p></div><p class="task-foot"><strong>Given:</strong> an empty level and the content pack’s asset catalog.</p></article><article class="task-panel output-panel"><div class="panel-heading"><strong>Agent output</strong><span>GPT-6 Astra</span></div><div class="live-scene" data-agent="astra" data-case="nordic-harbour"><canvas aria-label="Interactive 3D scene: Nordic Harbour. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><a class="task-foot text-button" href="cases.html#nordic-harbour">Compare agents and evaluator views ↗</a></article><article class="task-panel evaluation-panel"><div class="panel-heading"><strong>Evaluation</strong><span>Engine-native scene</span></div><div class="score-block"><span>CASE SCORE</span><strong>0.877</strong><dl><div><dt>Detailed Alignment</dt><dd>0.757</dd></div><div><dt>Overview Alignment</dt><dd>0.909</dd></div><div><dt>Physical Safety</dt><dd>0.900</dd></div></dl></div><p class="task-foot">Task fulfillment, artifact integrity and static physical validity.</p><p class="task-formula">0.2 × Detailed + 0.6 × Overview + 0.2 × Physical</p></article></div><details class="task-full"><summary><span>+ Full task instruction</span><span>TEXT-TO-SCENE</span></summary><p>Build me a compact, sunlit Copenhagen-style canal district with narrow cobblestone streets and rectangular waterways enclosing dense urban blocks. Arrange roughly thirty attached four- to six-storey townhouses in continuous street and canal-front rows, using slender façades, repetitive white-framed windows, arched doors and carriage entrances, modest cornices, and steep tiled roofs packed with dormers and brick chimneys. Include occasional exposed party walls between staggered building rows. Finish the façades in weathered muted red, mustard yellow, dusty blue, warm grey, beige, and exposed brick, with red, orange, and charcoal roof tiles. Run a principal waterfront street along a stone quay, crossed by smaller streets and linked across the canals by short, gently arched stone-and-metal bridges, including one opening onto a broad paved promenade with rounded landings. Form the canal edges from stepped pale stone, dark timber retaining walls, and iron railings around reflective rippling water. Add regularly spaced leafy trees, ornate black lamps, stone bollards, benches, European road signs, zebra crossings, puddles, grime, and sparse weeds.</p></details><div class="availability"><span><b>20</b> scenes in the <strong>Research Track</strong>: affordable, reproducible evaluation for academic and model-development use</span><span><b>160</b> scenes in the <strong>Full Benchmark</strong>: comprehensive evaluation for leaderboard and final reporting</span></div></div><div aria-labelledby="task-tab-i2s" class="task-content" data-task="i2s" hidden="" id="task-i2s" role="tabpanel"><h3>Old Industrial Pallet Bay <span>· Image-to-Scene</span></h3><p class="task-subtitle">Repair the corrupted scene using its reference image; preserve all unrelated actors.</p><div class="task-columns"><article class="task-panel input-panel"><div class="panel-heading"><strong>Agent input</strong><span>Scene + reference image</span></div><div class="live-scene" data-agent="astra" data-case="comp-31-old-industrial-pallet-bay-repair-v2" data-state="input"><canvas aria-label="Interactive 3D: Old Industrial Pallet Bay, input. Drag to orbit; scroll to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Resume scene rotation" class="scene-motion">▶</button></div><a class="task-reference" href="media/i2s/comp-31-old-industrial-pallet-bay-repair-v2/ref-1.jpg?v=1790549706" rel="noopener" target="_blank"><img alt="Provided reference image for Old Industrial Pallet Bay" loading="lazy" src="media/i2s/comp-31-old-industrial-pallet-bay-repair-v2/ref-1.jpg?v=1790549706"/><span>Provided reference image ↗</span></a><p class="task-foot">A translated and rotated pallet stack, plus an unintended duplicate.</p></article><article class="task-panel output-panel"><div class="panel-heading"><strong>Agent output</strong><span>GPT-6 Astra</span></div><div class="live-scene" data-agent="astra" data-case="comp-31-old-industrial-pallet-bay-repair-v2" data-state="repair"><canvas aria-label="Interactive 3D: Old Industrial Pallet Bay, repair. Drag to orbit; scroll to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Resume scene rotation" class="scene-motion">▶</button></div><div aria-label="Output scene state" class="scene-versions"><button class="on" data-state="repair">Repair</button><button data-state="input">Corrupted input</button><button data-state="gt">Ground truth</button></div><p class="task-foot">Inspect the saved repair from the same reference camera.</p><a class="text-button task-foot" href="cases.html#comp-31-old-industrial-pallet-bay-repair-v2">Compare agents and evaluator views ↗</a></article><article class="task-panel evaluation-panel"><div class="panel-heading"><strong>Evaluation</strong><span>Actor-level repair</span></div><div class="score-block"><span>CASE SCORE</span><strong>1.000</strong><dl><div><dt>Repair F1</dt><dd>1.000</dd></div><div><dt>Physical Safety</dt><dd>1.000</dd></div><div><dt>TP / FP / FN</dt><dd>2 / 0 / 0</dd></div></dl></div><p class="task-foot">Restore each target within 5 cm, 5° and 5%, without unintended edits.</p><p class="task-formula">0.8 × Repair F1 + 0.2 × Physical</p></article></div><details class="task-full"><summary><span>+ Full task instruction</span><span>IMAGE-TO-SCENE</span></summary><p>Repair the current outdoor scene so it matches the provided reference image. Make only the minimum changes needed, and preserve all unrelated actors and properties.</p></details><div class="availability"><span><b>160</b> editing cases in the full benchmark target, including private cases</span><span><b>72</b> public editing cases (22 indoor, 50 outdoor)</span></div></div></div></div></section><section id="leaderboard"><div class="container">
24
  <div class="section-header centered"><span class="section-label">Leaderboard</span><h2 class="section-title">Leaderboard</h2>
25
  <p class="section-desc" data-view="t2s">Research Track · 20 representative scenes · 14 coding-agent configurations.</p><p class="section-desc" data-view="i2s" style="display:none">Image-to-Scene · 75 public cases (25 indoor, 50 outdoor) · 14 coding-agent configurations.</p><p class="tracks-why" data-view="t2s">Text-to-scene generation with frontier models is a long-horizon agentic task with substantial inference cost and runtime, which makes repeated full-scale evaluation difficult for many research groups. The Research Track supports affordable, reproducible experimentation; the Full Benchmark provides the more comprehensive evaluation for final model comparison and leaderboard reporting.</p></div>
 
32
  </div></section><section id="cases"><div class="container">
33
  <div class="section-header centered"><span class="section-label">Cases</span><h2 class="section-title">Visualizing agent outputs</h2>
34
  <p class="section-desc" data-view="t2s">Drag any scene to inspect the saved 3D output, or open a case to explore every agent.</p><p class="section-desc" data-view="i2s" style="display:none">Drag any scene to inspect the saved 3D output. Switch each repair between the saved scene, its corrupted input and the ground truth, or open a case to explore every agent.</p></div>
35
+ <div class="lb-tabs"><div class="seg seg-lg" data-for="cases"><button class="on" data-view="t2s">Text-to-Scene</button><button data-view="i2s">Image-to-Scene</button></div></div><div class="case-grid" data-view="t2s"><article class="case-card case-feature">
36
+ <a aria-label="Open GPT-6 Astra's Industrial Harbor in the interactive 3D viewer" class="feature-shot" href="https://simworld-ai-industrial-harbor-viewer.static.hf.space/" rel="noopener" target="_blank">
37
+ <img alt="GPT-6 Astra's Industrial Harbor: quay cranes over a container ship, container stacks, a hangar, storage tanks and a rail siding" height="900" loading="lazy" src="media/t2s/industrial-harbor/astra.jpg?v=20261004harbor" width="1600"/>
38
+ <span class="feature-badge">3,949 actors</span>
39
+ </a>
40
+ <div class="meta">
41
+ <span class="eyebrow">Text-to-Scene · Showcase</span>
42
+ <h4>Industrial Harbor</h4>
43
+ <p>GPT-6 Astra (max) · one agent session in Unreal Engine, from an empty 130 m stage</p>
44
+ <blockquote class="feature-prompt">An industrial harbor loading dock with shipping containers, barrels, cranes, warehouse props, pallets, and warning signs.</blockquote>
45
+ <a class="text-button" href="https://simworld-ai-industrial-harbor-viewer.static.hf.space/" rel="noopener" target="_blank">Explore the full scene in 3D ↗</a>
46
+ <p class="feature-note">Streams about 1.2 GB of textures on first load.</p>
47
+ </div>
48
+ </article><article class="case-card"><div class="live-scene" data-agent="astra" data-case="nordic-harbour"><canvas aria-label="Interactive 3D scene: Nordic Harbour. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><div class="meta"><span class="eyebrow">Text-to-Scene</span><h4>Nordic Harbour</h4><p>GPT-6 Astra (max) · score 0.877</p><a class="text-button" href="cases.html#nordic-harbour">Compare all 14 agents ↗</a></div></article><article class="case-card"><div class="live-scene" data-agent="fable" data-case="medieval-big-farm-town"><canvas aria-label="Interactive 3D scene: Medieval Big Farm Town. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><div class="meta"><span class="eyebrow">Text-to-Scene</span><h4>Medieval Big Farm Town</h4><p>Claude Fable 5.1 (max) · score 0.830</p><a class="text-button" href="cases.html#medieval-big-farm-town">Compare all 14 agents ↗</a></div></article><article class="case-card"><div class="live-scene" data-agent="opus" data-case="egyptian-temple"><canvas aria-label="Interactive 3D scene: Egyptian Temple. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><div class="meta"><span class="eyebrow">Text-to-Scene</span><h4>Egyptian Temple</h4><p>Claude Opus 5 (max) · score 0.777</p><a class="text-button" href="cases.html#egyptian-temple">Compare all 14 agents ↗</a></div></article><article class="case-card"><div class="live-scene" data-agent="fable" data-case="bazaar"><canvas aria-label="Interactive 3D scene: Bazaar. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><div class="meta"><span class="eyebrow">Text-to-Scene</span><h4>Bazaar</h4><p>Claude Fable 5.1 (max) · score 0.930</p><a class="text-button" href="cases.html#bazaar">Compare all 14 agents ↗</a></div></article></div><div class="case-grid" data-view="i2s" style="display:none"><article class="case-card"><div class="live-scene" data-agent="astra" data-case="comp-31-old-industrial-pallet-bay-repair-v2"><canvas aria-label="Interactive 3D scene: Old Industrial Pallet Bay. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><div aria-label="Scene state" class="scene-versions"><button class="on" data-state="repair">Repair</button><button data-state="input">Corrupted input</button><button data-state="gt">Ground truth</button></div><div class="meta"><span class="eyebrow">Image-to-Scene</span><h4>Old Industrial Pallet Bay</h4><p>GPT-6 Astra (max) · score 1.000</p><a class="text-button" href="cases.html#comp-31-old-industrial-pallet-bay-repair-v2">Compare all 14 agents ↗</a></div></article><article class="case-card"><div class="live-scene" data-agent="fable" data-case="comp-61-new-york-mailbox-pair-repair-v2"><canvas aria-label="Interactive 3D scene: New York Mailbox Pair. Drag to orbit, scroll or use plus and minus to zoom." tabindex="0"></canvas><span class="scene-loading" role="status">Loading 3D scene…</span><span class="scene-hint">Drag to orbit · Scroll to zoom</span><button aria-label="Pause scene rotation" class="scene-motion">Ⅱ</button></div><div aria-label="Scene state" class="scene-versions"><button class="on" data-state="repair">Repair</button><button data-state="input">Corrupted input</button><button data-state="gt">Ground truth</button></div><div class="meta"><span class="eyebrow">Image-to-Scene</span><h4>New York Mailbox Pair</h4><p>Claude Fable 5.1 (max) · score 1.000</p><a class="text-button" href="cases.html#comp-61-new-york-mailbox-pair-repair-v2">Compare all 14 agents ↗</a></div></article></div>
49
  <div style="text-align:center;margin-top:2rem"><a class="btn btn-primary" href="cases.html"><svg aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.5" viewbox="0 0 16 16"><path d="M8 1.5l5.5 3v7L8 14.5l-5.5-3v-7z"></path><path d="M2.5 4.5L8 7.5l5.5-3M8 7.5v7"></path></svg> Open the case explorer</a></div>
50
  </div></section><section class="alt" id="takeaways"><div class="container">
51
  <div class="section-header centered"><span class="section-label">Findings</span><h2 class="section-title">Takeaways</h2>
media/t2s/industrial-harbor/astra.jpg ADDED

Git LFS Details

  • SHA256: 3604979f9a4eba5dac77f89380c0396a94ccb12d1d4d9533ac2a1ed9bf4c2d1c
  • Pointer size: 131 Bytes
  • Size of remote file: 172 kB
scripts/harbor_card.py ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Feature GPT-6 Astra's Industrial Harbor in the Text-to-Scene cases (user, 2026-10-04: "你把harbor的case也放在这个code4scene里").
2
+
3
+ The scene is the one SimWorld-AI/industrial-harbor-viewer serves (scene industrial-harbor-astra-max, 3,949 actors). Its ~1.2 GB
4
+ texture library is too large for this Space's model cards, so the card shows a still from that viewer and links to it.
5
+ media/t2s/industrial-harbor/astra.jpg is a headless-Chrome capture of the viewer's preview textures, UI hidden.
6
+ The task is SceneBench's text-to-scene/industrial-harbor.yaml; it is not one of the 20 Research Track scenes, so no score.
7
+
8
+ Each step asserts it found what it edits.
9
+ python3 scripts/harbor_card.py
10
+ """
11
+ from __future__ import annotations
12
+ import re
13
+ from pathlib import Path
14
+ from bs4 import BeautifulSoup
15
+
16
+ ROOT = Path(__file__).resolve().parent.parent
17
+ V = "20261004harbor"
18
+ VIEWER = "https://simworld-ai-industrial-harbor-viewer.static.hf.space/"
19
+ PROMPT = ("An industrial harbor loading dock with shipping containers, barrels, cranes, warehouse props, pallets, "
20
+ "and warning signs.")
21
+
22
+
23
+ def one(found, what):
24
+ assert found, f"not found: {what}"
25
+ return found
26
+
27
+
28
+ CARD = f"""<article class="case-card case-feature">
29
+ <a class="feature-shot" href="{VIEWER}" target="_blank" rel="noopener" aria-label="Open GPT-6 Astra's Industrial Harbor in the interactive 3D viewer">
30
+ <img src="media/t2s/industrial-harbor/astra.jpg?v={V}" alt="GPT-6 Astra's Industrial Harbor: quay cranes over a container ship, container stacks, a hangar, storage tanks and a rail siding" loading="lazy" width="1600" height="900"/>
31
+ <span class="feature-badge">3,949 actors</span>
32
+ </a>
33
+ <div class="meta">
34
+ <span class="eyebrow">Text-to-Scene · Showcase</span>
35
+ <h4>Industrial Harbor</h4>
36
+ <p>GPT-6 Astra (max) · one agent session in Unreal Engine, from an empty 130 m stage</p>
37
+ <blockquote class="feature-prompt">{PROMPT}</blockquote>
38
+ <a class="text-button" href="{VIEWER}" target="_blank" rel="noopener">Explore the full scene in 3D ↗</a>
39
+ <p class="feature-note">Streams about 1.2 GB of textures on first load.</p>
40
+ </div>
41
+ </article>"""
42
+
43
+ CSS = """
44
+ /* featured showcase card (scripts/harbor_card.py) */
45
+ .case-grid .case-feature{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}
46
+ .case-feature .feature-shot{position:relative;display:block;background:#8ec6ec;aspect-ratio:16/9;overflow:hidden}
47
+ .case-feature .feature-shot img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s}
48
+ .case-feature .feature-shot:hover img{transform:scale(1.025)}
49
+ .case-feature .feature-badge{position:absolute;left:12px;bottom:12px;padding:5px 10px;border-radius:6px;background:#17201dcc;color:#fff;font:500 12px 'IBM Plex Mono',monospace}
50
+ .case-feature .meta{display:flex;flex-direction:column;justify-content:center}
51
+ .case-feature .feature-prompt{margin:12px 0 14px;padding:10px 14px;border-left:3px solid var(--border);color:var(--text-muted);font-size:13px;line-height:1.6;font-style:italic}
52
+ .case-feature .feature-note{margin-top:6px;font-size:11px;color:var(--text-muted)}
53
+ @media(max-width:900px){.case-grid .case-feature{grid-template-columns:minmax(0,1fr)}}
54
+ """
55
+
56
+
57
+ def index():
58
+ p = ROOT / "index.html"
59
+ soup = BeautifulSoup(p.read_text(), "html.parser")
60
+ assert not soup.find(class_="case-feature"), "already featured"
61
+ grid = one(soup.find(id="cases").find(class_="case-grid", attrs={"data-view": "t2s"}), "Text-to-Scene case grid")
62
+ grid.insert(0, BeautifulSoup(CARD, "html.parser"))
63
+ for t in soup.find_all("link", href=re.compile(r"^assets/buildingbench\.css")):
64
+ t["href"] = f"assets/buildingbench.css?v={V}"
65
+ p.write_text(str(soup))
66
+ print("index.html: Industrial Harbor card")
67
+
68
+
69
+ def css():
70
+ p = ROOT / "assets/buildingbench.css"; s = p.read_text()
71
+ assert "scripts/harbor_card.py" not in s
72
+ p.write_text(s.rstrip("\n") + "\n" + CSS)
73
+ print("buildingbench.css: feature card rules")
74
+
75
+
76
+ if __name__ == "__main__":
77
+ index(); css()