diff --git a/README.md b/README.md index 49ceb22cb95f49ac0e93baed9e0310d91dc5aff3..af53a900d7fb6e7690dd6e64dde5f1f5b03dd004 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,9 @@ short_description: Benchmarking coding agents that build 3D scenes Project page for Code4Scene: the leaderboard, the paper's takeaways, and selected cases whose saved Unreal Engine scenes can be viewed in 3D. Each section has a Text-to-Scene tab (construction; selected by default, the 20-scene Research Track) and an Image-to-Scene tab (editing; the 75-case public evaluation). `scripts/t2s_only.py` removed Image-to-Scene on 2026-10-01; -`scripts/i2s_tabs.py` brought it back as the second tab on 2026-10-04. +`scripts/i2s_tabs.py` brought it back as the second tab on 2026-10-04; `scripts/i2s_more_cases.py` adds four more +Image-to-Scene cases (six in all) and `scripts/harbor_card.py` features GPT-6 Astra's Industrial Harbor, which links to its +own viewer Space. Paper: [arXiv:2609.36777](https://arxiv.org/abs/2609.36777) · Code: [SimWorld-AI/Code4Scene](https://github.com/SimWorld-AI/Code4Scene) @@ -42,7 +44,7 @@ Queue tests: `node --test tests/scene-assets.test.mjs`. Browser QA includes publ ## Geometry-first scene cards -The homepage uses `data/progressive-scenes.json` to choose immutable packed derivatives for its 11 public scene/state variants. Geometry and meshopt bytes are unchanged; embedded images are moved into small packed batches. The original packed models remain available to the full case explorer. `assets/progressive-gltf.js` returns the geometry with neutral texture placeholders, then the visible card starts material work after its first rendered frame. Image updates preserve glTF samplers, color spaces, transforms and material parameters. At most two texture jobs run across the page; offscreen cards pause them, and a texture failure keeps the geometry visible with a separate retry control. +The homepage uses `data/progressive-scenes.json` to choose immutable packed derivatives for 17 of its public scene/state variants (the suburban Image-to-Scene scenes are almost all geometry, so their cards load the packed model directly). Geometry and meshopt bytes are unchanged; embedded images are moved into small packed batches. The original packed models remain available to the full case explorer. `assets/progressive-gltf.js` returns the geometry with neutral texture placeholders, then the visible card starts material work after its first rendered frame. Image updates preserve glTF samplers, color spaces, transforms and material parameters. At most two texture jobs run across the page; offscreen cards pause them, and a texture failure keeps the geometry visible with a separate retry control. Three.js r160, GLTFLoader, MeshoptDecoder, Sky and OrbitControls are served from `assets/vendor/three-r160/`, retaining the official MIT license. Both page import maps use this pinned same-origin version. Original sources: https://github.com/mrdoob/three.js/tree/r160 . diff --git a/cases.html b/cases.html index ab77202f4edcf2776f3cf3be7638a4fd8337a2b9..8b50402ac588f445a9b50a4afa38fdb626050645 100644 --- a/cases.html +++ b/cases.html @@ -87,7 +87,7 @@ table.cs td,table.cs th{white-space:nowrap}.panel code{font-size:.82em;backgroun

Every scene in 3D, with its scores

Each agent's result is the engine-native scene it saved, exported from Unreal Engine so you can turn it in the browser. Beside it, how the -evaluator scored that scene. 6 cases, 41 scenes in 3D. Pick a case, then an agent.

+evaluator scored that scene. 10 cases, 58 scenes in 3D. Pick a case, then an agent.

·

@@ -99,7 +99,7 @@ evaluator scored that scene. 6 cases, 41 scenes in 3D. Pick a case, then an agen - - \ No newline at end of file + \ No newline at end of file diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/astra.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/astra.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6cdb4f8cd131b7fd4bfeb302908df75394b082b5 Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/astra.jpg differ diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/deepseek.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/deepseek.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48dffbe1f2ab506cb70a20bd9e5bb1de7d70d749 Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/deepseek.jpg differ diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/deepseek_full.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/deepseek_full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4e546f67e96f7c0c5c48541a162ab4eb473cb0da --- /dev/null +++ b/media/i2s/comp-17-rosies-service-bin-reset-v3/deepseek_full.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6489c63201ac0f57da4c61eb698fd2ff375b00c84d2b3124fa8abc16c7d788df +size 119961 diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/fable.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/fable.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e5d124b7bf4748aacbc78746aa7c03f85daf17f0 Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/fable.jpg differ diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/gemini.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/gemini.jpg new file mode 100644 index 0000000000000000000000000000000000000000..42c586fb2c22a6b0ebd395a2142fa19d553cc5a5 Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/gemini.jpg differ diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/gemma-off.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/gemma-off.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6f0072d6163fbce921c3c838ef741f2dea52b740 --- /dev/null +++ b/media/i2s/comp-17-rosies-service-bin-reset-v3/gemma-off.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab293c1acffa3cb6a33b5bdc88e42374cff0c3ab8c483b32fe9a2c63894e17a7 +size 106520 diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/gemma-on.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/gemma-on.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1e170913f87b46a5f9f4c742f1d9c76b7c0f2a28 Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/gemma-on.jpg differ diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/glm.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/glm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f8f5cfe0e791a0a1ee5d32b4583f554a01894737 Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/glm.jpg differ diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/grok.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/grok.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1e02ee630fb7c82cb21648f42984021fb534e475 Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/grok.jpg differ diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/gt.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/gt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4077c9aa2a4299797e125624fa7cddea9c0a3ec9 --- /dev/null +++ b/media/i2s/comp-17-rosies-service-bin-reset-v3/gt.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba1961232dd5aec0fbe844dd31de214b704d7fd3b3abd24692869e0c3518e01e +size 121114 diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/inkling.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/inkling.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ccc109bd5c2f2e3cf67f8f4d81e2a53a5be0bd9b Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/inkling.jpg differ diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/muse.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/muse.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3ac240b9f09bf8c050d3d55962452dfec47234c5 Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/muse.jpg differ diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/opus.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/opus.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c4db7881245e2e89c35ad7d01ca4d4a845a52656 Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/opus.jpg differ diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/qwen-off.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/qwen-off.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c760cefa6c07f3ddf0b0e81682429500629143fa Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/qwen-off.jpg differ diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/qwen-on.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/qwen-on.jpg new file mode 100644 index 0000000000000000000000000000000000000000..829539c67f7f54c70f2c8025c34a8900f6d18481 Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/qwen-on.jpg differ diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/qwen-on_full.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/qwen-on_full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..96cc807a90227772478b6934c12747f412c7a47c --- /dev/null +++ b/media/i2s/comp-17-rosies-service-bin-reset-v3/qwen-on_full.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ffab5f556dd0fc03e915973b4c0ca0a8e388edcda69a21d048b4b2d52e6ab6e3 +size 121471 diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/ref-1.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/ref-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..93839b3b9c1dc9d35d4a0a16fb8814dd937a35ed Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/ref-1.jpg differ diff --git a/media/i2s/comp-17-rosies-service-bin-reset-v3/sol.jpg b/media/i2s/comp-17-rosies-service-bin-reset-v3/sol.jpg new file mode 100644 index 0000000000000000000000000000000000000000..344a1c98e8fd95a2d652ef689f65cdadacb2be8c Binary files /dev/null and b/media/i2s/comp-17-rosies-service-bin-reset-v3/sol.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/astra.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/astra.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c5245486bcb1b9ba0426f73f830d09299b7abbe9 Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/astra.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/deepseek.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/deepseek.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0fa3909871ed56bf64f566584af96fa42688bbea Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/deepseek.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/fable.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/fable.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2611f80414113b8307ba79fad1fa39fff80e51ed Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/fable.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gemini.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gemini.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d2b91a6d1fe77c93748dffd4d9913a7c8810fd50 Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gemini.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gemini_full.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gemini_full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..198c8347fc9422b1430436e50a19cf803f4ddc32 --- /dev/null +++ b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gemini_full.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d4a3e4f578bc9ea1865cb24b82241e24544fc92b7b7c828226ee50c182f9618d +size 174201 diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gemma-off.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gemma-off.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0f241059d39637a3519e2e13783e3368f4b75f8b Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gemma-off.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gemma-on.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gemma-on.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ed8ea319792d3a9e64de0112d0e25ee4d3c52199 Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gemma-on.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/glm.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/glm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6685934809f63986a29bd4e90cf5ffc21a58c98a Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/glm.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/grok.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/grok.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7106b085a31c99f047e2322c8c8331db7092a59e Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/grok.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gt.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e33ae36c65d8e43533c5c86f6a7e81c03417ff82 --- /dev/null +++ b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/gt.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f930a1f3e404abc654034e456a01814d3053a94a761094d5f029b7992972f048 +size 125661 diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/inkling.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/inkling.jpg new file mode 100644 index 0000000000000000000000000000000000000000..70706b99839928cf5a114525789433a2579be970 Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/inkling.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/inkling_full.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/inkling_full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bdeec945d17068da8ee9a7e1c52e305efb56e4a0 --- /dev/null +++ b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/inkling_full.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:942130788e8eb398f08400d4993f5cc52ca5413cb3a4d418c91de6649047f1bd +size 105859 diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/muse.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/muse.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f58175e30394d0a665c0f504ae4d72cf2c0424ec Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/muse.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/opus.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/opus.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2f48a8e23c9a55a0c6bf83e446eb37e8268ca659 Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/opus.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/qwen-off.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/qwen-off.jpg new file mode 100644 index 0000000000000000000000000000000000000000..df5606660e96dca18b559618dbac458a427adae4 Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/qwen-off.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/qwen-on.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/qwen-on.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bf2a8d6f6323f642a6688d9b00cf2e8c692e4594 Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/qwen-on.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/ref-1.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/ref-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e07175a9fec262910131a7649374d92ec66315bc Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/ref-1.jpg differ diff --git a/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/sol.jpg b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/sol.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5fd1c587f513c2f2b8f06866e821007bd4115c8a Binary files /dev/null and b/media/i2s/comp-18-rosies-roadside-billboard-reset-v3/sol.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/astra.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/astra.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1d699cc5d05a626e41dbba8f2002a6b0fc754874 Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/astra.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/deepseek.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/deepseek.jpg new file mode 100644 index 0000000000000000000000000000000000000000..093983304388129c7809108584f12ca23ba1bce8 Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/deepseek.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/fable.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/fable.jpg new file mode 100644 index 0000000000000000000000000000000000000000..450e777b544d70c1dc5f9b19c93ac6f831164dca Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/fable.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gemini.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gemini.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4426a3ad03cc47fdb8b09730f3d1f27b2410dbbf Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gemini.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gemini_full.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gemini_full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..49d97a0bdda4188b5db2c2dd5f3ae60ce3a59f52 --- /dev/null +++ b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gemini_full.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c689122ab458bad0b239356548cb45bc470854ffd715782eedb46da394e1af0 +size 285122 diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gemma-off.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gemma-off.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b8d4bb98296a41bb3049626519a25ed829f48f88 Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gemma-off.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gemma-on.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gemma-on.jpg new file mode 100644 index 0000000000000000000000000000000000000000..73cc08b57d3fc64fe07506f5f526f56ac25a1a4f Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gemma-on.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/glm.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/glm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d7fb38cc349cda97e75e201d4a35101b710def07 Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/glm.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/grok.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/grok.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bc8e6a95a9723221498f23028d3469f193f91641 Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/grok.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gt.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..54678459d2312bffde5539a8e40bc0a2bac5b5a6 Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/gt.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/inkling.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/inkling.jpg new file mode 100644 index 0000000000000000000000000000000000000000..954934f1ad9807ce35a14c5f834fd0849de460ae Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/inkling.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/muse.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/muse.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d1e657d5fc65c66bd4278ad7600adcf974705f08 Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/muse.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/opus.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/opus.jpg new file mode 100644 index 0000000000000000000000000000000000000000..977eb693c069fa5f23f1436d17c4b00da392f1b6 Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/opus.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/qwen-off.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/qwen-off.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b4b4d633db87ec26a2b05f045dbf06a7b284b41b Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/qwen-off.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/qwen-on.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/qwen-on.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e68d73bdf781a09dae06dcad8aeb918f3f20f8e2 Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/qwen-on.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/qwen-on_full.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/qwen-on_full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3740476a0c92cf20ccea5713157d6a6d9e5db9f6 --- /dev/null +++ b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/qwen-on_full.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d3446c545aab89d7da618820990b3ea50c8042f2fce6086684b4fb8586781fe +size 302006 diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/ref-1.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/ref-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c8aae0bb1a631a91da516b9f2a6d013dd5568617 Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/ref-1.jpg differ diff --git a/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/sol.jpg b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/sol.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3e68d9c5de8001b374d8465967e6da32329e52ed Binary files /dev/null and b/media/i2s/comp-51-suburban-driveway-mailbox-recovery-v2/sol.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/astra.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/astra.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1f39dfd0a61def9db468aca083ebc6508cc50221 Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/astra.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/deepseek.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/deepseek.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9419d19c6933e80bb15dc8db4259325a8868e0f7 Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/deepseek.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/fable.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/fable.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8f8485e36adf44aa651d8252500939c73f3be0eb Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/fable.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemini.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemini.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1add4b860c824f52780798655cf8ae30edf09171 Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemini.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemini_full.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemini_full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..08eb99cd7996fbb3435f55286d3a51bb2c7594e7 --- /dev/null +++ b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemini_full.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a3c5b2c5211421b854532a94f155c244f766f86d18de0e1d50d259e3f912f3a +size 185721 diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemma-off.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemma-off.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d7331449c2f8750438bd421b38fb69676538a47c Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemma-off.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemma-off_full.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemma-off_full.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d179d1fa1b23559feed44c8f8c0c7d05b1f6cde7 --- /dev/null +++ b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemma-off_full.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a9370334804018cfb01bb3d9bf7c3b197470eea9b8ac0e55c7151be71ed5b5d +size 156594 diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemma-on.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemma-on.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f9a067864a9074b32c862068a2d6268ab2ed9b3e Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gemma-on.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/glm.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/glm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9a5453cb78f1137141dbf161d7e7155f780cc1ca Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/glm.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/grok.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/grok.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c6aefe5175df038f96d5127b0f685e02eb4afc95 Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/grok.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gt.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..687b2d47f98b3ca8fdaf21757d880a1f34d32a98 Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/gt.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/inkling.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/inkling.jpg new file mode 100644 index 0000000000000000000000000000000000000000..55132462c07cec2d1f54d14d8596a09a280025ca Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/inkling.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/muse.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/muse.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dc67d423ce786fd8fe0e8b0a079537bcadc04996 Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/muse.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/opus.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/opus.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f9333b5a5d37e79418ac8cb02c2f7f6d628c26dd Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/opus.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/qwen-off.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/qwen-off.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48854930a37f461f7532833d7fef7485ea0b2595 Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/qwen-off.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/qwen-on.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/qwen-on.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48d73921671c4067163810dae7ce8530d626c269 Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/qwen-on.jpg differ diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/ref-1.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/ref-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..467f28194b645e2523cee5f9a370d2deaa352061 --- /dev/null +++ b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/ref-1.jpg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2dd71e8114d91924391d8706b6f1b70e78fbb502cc07a9df0e76118a64ac1b41 +size 125884 diff --git a/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/sol.jpg b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/sol.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8071fae369f48538b877a66136a988163baf9227 Binary files /dev/null and b/media/i2s/comp-72-suburban-umbrella-pair-repair-v2/sol.jpg differ diff --git a/models/080b1ede90803e5f2471.bin b/models/080b1ede90803e5f2471.bin new file mode 100644 index 0000000000000000000000000000000000000000..ccbbe216c62d421d7e03ab4298d5d78c1eb91cbe --- /dev/null +++ b/models/080b1ede90803e5f2471.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f9b6d429d9d0077f62302d8b73d5f6618fadbc172e49b05da795c3978b820b40 +size 18480668 diff --git a/models/1dba7579ac6c8a41ba37.bin b/models/1dba7579ac6c8a41ba37.bin new file mode 100644 index 0000000000000000000000000000000000000000..50f481a4a87f7db874c79897d99b15a4e4706bec --- /dev/null +++ b/models/1dba7579ac6c8a41ba37.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:de3430f4172b31b0b2ad85c24023ae6840bb68509487718c2e4a9ba74a975151 +size 18480860 diff --git a/models/22346e0e2976ce48b780.bin b/models/22346e0e2976ce48b780.bin new file mode 100644 index 0000000000000000000000000000000000000000..b829d1a9176151be2088c01237f609e513202b0a --- /dev/null +++ b/models/22346e0e2976ce48b780.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d52566a0dbefa0a7c34f26749052127943cb952901bdb5be6202c6a6d9192de0 +size 4864820 diff --git a/models/28642a99430df3aabf6d.bin b/models/28642a99430df3aabf6d.bin new file mode 100644 index 0000000000000000000000000000000000000000..d502c9c71edef40bee5b2a8063cd539ac576e666 --- /dev/null +++ b/models/28642a99430df3aabf6d.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da2ea8fc108d010d5f899f2f78146cca442dd6a964620ac4851f3c80262c6245 +size 18481192 diff --git a/models/488318145581c6f1daf0.bin b/models/488318145581c6f1daf0.bin new file mode 100644 index 0000000000000000000000000000000000000000..eb5b512c29c2f5a926fb820765436fb7f0105a18 --- /dev/null +++ b/models/488318145581c6f1daf0.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a82c68b56cf9898dff8404e0539c41bad88607e898bcef1651b67642aaeae379 +size 4864820 diff --git a/models/6ed621e057a53331469a.bin b/models/6ed621e057a53331469a.bin new file mode 100644 index 0000000000000000000000000000000000000000..872237c514e74a0ce399c8a0ecb218caa1c102d6 --- /dev/null +++ b/models/6ed621e057a53331469a.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0677dbdfb751865c576fec3dc9be13cccfba8aa66f99d50a6054140e69ee6d6e +size 4864728 diff --git a/models/73ceabf2d178a47c7d70.bin b/models/73ceabf2d178a47c7d70.bin new file mode 100644 index 0000000000000000000000000000000000000000..e152391da8db7d658a049c80bb3c6cc5f7219f7d --- /dev/null +++ b/models/73ceabf2d178a47c7d70.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9ae9195e62b566a54e70457d05c4a7d1b2c6e4ba6fdf792ae209c194e597dbd +size 4864728 diff --git a/models/7aed11e6f3226fdf7609.bin b/models/7aed11e6f3226fdf7609.bin new file mode 100644 index 0000000000000000000000000000000000000000..f654b4a16fb2f625cd8b8abfb3fbf2cb93f7a122 --- /dev/null +++ b/models/7aed11e6f3226fdf7609.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:baac42e53411467118b7f5e633a909be9f347443f228db28fb16c7ee21d12875 +size 18481012 diff --git a/models/7b0873e910538ee6deb7.bin b/models/7b0873e910538ee6deb7.bin new file mode 100644 index 0000000000000000000000000000000000000000..26e939e46bc421411a771d6d6e234d018adb16f8 --- /dev/null +++ b/models/7b0873e910538ee6deb7.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76ba262b15c56a368f5b27df52b5cd0e848c5ac0e4cc12432fbbeccd660ced90 +size 18480756 diff --git a/models/843768ef1999c6f33178.bin b/models/843768ef1999c6f33178.bin new file mode 100644 index 0000000000000000000000000000000000000000..e152391da8db7d658a049c80bb3c6cc5f7219f7d --- /dev/null +++ b/models/843768ef1999c6f33178.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9ae9195e62b566a54e70457d05c4a7d1b2c6e4ba6fdf792ae209c194e597dbd +size 4864728 diff --git a/models/91b4550f7f977d874ed4.bin b/models/91b4550f7f977d874ed4.bin new file mode 100644 index 0000000000000000000000000000000000000000..0c878cd0b9b56df5cca586228728077f3a0a3d03 --- /dev/null +++ b/models/91b4550f7f977d874ed4.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00e3256cede85e94681fa8d12009f6b15b53b5765f950935f4ae50d77b1830ae +size 18480832 diff --git a/models/bdfec1e15f2c04acdf25.bin b/models/bdfec1e15f2c04acdf25.bin new file mode 100644 index 0000000000000000000000000000000000000000..f07b512f702609f3fd6c7865dacfcc0eba9dad96 --- /dev/null +++ b/models/bdfec1e15f2c04acdf25.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e493b0ba530781b880ec33d274116308bc64e182a26dc70f01674e30df3814f8 +size 18480692 diff --git a/models/ca03f1482ef5f2decbcb.bin b/models/ca03f1482ef5f2decbcb.bin new file mode 100644 index 0000000000000000000000000000000000000000..7bca034f607786505c7fb5c023ddc46363e80710 --- /dev/null +++ b/models/ca03f1482ef5f2decbcb.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44b29d83311f92384d4c5e202c5b3ff060a431fb367932f867e0163dbdc65cb2 +size 4864784 diff --git a/models/ced110d8d3e055c11e38.bin b/models/ced110d8d3e055c11e38.bin new file mode 100644 index 0000000000000000000000000000000000000000..c925ee2c3547d0177281520276918e7c39da1892 --- /dev/null +++ b/models/ced110d8d3e055c11e38.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90ba1eaf86c05928f5f1319c6bc922f6ebde220af76ec87ab37e503a2a0911e8 +size 18480832 diff --git a/models/d3e551d366b82c38cfe2.bin b/models/d3e551d366b82c38cfe2.bin new file mode 100644 index 0000000000000000000000000000000000000000..c87708b2fc0a75655b482c3911148da6610b2165 --- /dev/null +++ b/models/d3e551d366b82c38cfe2.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a95cc7d0fb4ed5cb3f557c44bc1107d3b2e8c71e7829e3863d91b9fade6adbe7 +size 4864836 diff --git a/models/e9bd9983e44a13bf127c.bin b/models/e9bd9983e44a13bf127c.bin new file mode 100644 index 0000000000000000000000000000000000000000..9c72b2115369e638576da84b6a94a159e05e07c8 --- /dev/null +++ b/models/e9bd9983e44a13bf127c.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28ba96c1c6590d4388e6ad67b782d04e8a3a97c9a81f97438a1730c2f933123e +size 18480488 diff --git a/models/fef6016b97b176af9fef.bin b/models/fef6016b97b176af9fef.bin new file mode 100644 index 0000000000000000000000000000000000000000..b45930d3a252923600fa3b5c2477ef019e89588e --- /dev/null +++ b/models/fef6016b97b176af9fef.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9cc7a118fd370945c0c417c8a93d708552a61eda59917ae4e1e6aab47ba3e19f +size 4864820 diff --git a/models/progressive-v1/geo-13f4cd9fc901d889707fc206.bin b/models/progressive-v1/geo-13f4cd9fc901d889707fc206.bin new file mode 100644 index 0000000000000000000000000000000000000000..03309a7d72b042cc4397e3646e33468ba0eb11c9 --- /dev/null +++ b/models/progressive-v1/geo-13f4cd9fc901d889707fc206.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc2e8f9a449319a702b26395ab4ab5df282cac70ada2c07626e7ee1d766d0fd8 +size 3641276 diff --git a/models/progressive-v1/geo-38a1193f3df64e3bf1e8f1b0.bin b/models/progressive-v1/geo-38a1193f3df64e3bf1e8f1b0.bin new file mode 100644 index 0000000000000000000000000000000000000000..ee051a12be2db262aa98587e23a78b4d8c23b3a4 --- /dev/null +++ b/models/progressive-v1/geo-38a1193f3df64e3bf1e8f1b0.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60f0c93d3cba90ad8e050ce171cf77136762d882641e510a2d93fa99248d22e1 +size 3641240 diff --git a/models/progressive-v1/geo-56b3730f534874fae19c22ef.bin b/models/progressive-v1/geo-56b3730f534874fae19c22ef.bin new file mode 100644 index 0000000000000000000000000000000000000000..8452468005fc0876ba3113759f601cb332b09269 --- /dev/null +++ b/models/progressive-v1/geo-56b3730f534874fae19c22ef.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a43946a2a59361fe1e0c6e15a5ce9f8ad4f282d578e3258b1b71dde501911a3 +size 3641180 diff --git a/models/progressive-v1/geo-7f4a328519e42f2fb2cd5bd8.bin b/models/progressive-v1/geo-7f4a328519e42f2fb2cd5bd8.bin new file mode 100644 index 0000000000000000000000000000000000000000..effbdbd5d17f52b983a190038281d8eddebfd995 --- /dev/null +++ b/models/progressive-v1/geo-7f4a328519e42f2fb2cd5bd8.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a66640d0a4623ddcaa98e1e94bac1fd9d1acd39a6c45b79d381811800b023ab +size 3641288 diff --git a/models/progressive-v1/geo-d0f2f25f6a11dcb13b80fd71.bin b/models/progressive-v1/geo-d0f2f25f6a11dcb13b80fd71.bin new file mode 100644 index 0000000000000000000000000000000000000000..df4d9f0f04fc7b5ea4814ab167a45af27283c5ef --- /dev/null +++ b/models/progressive-v1/geo-d0f2f25f6a11dcb13b80fd71.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a665b9c9d6e7fac418e7ed0dd9b1e2ed8a685d7fe155ed03a709c7d142fa381 +size 3641184 diff --git a/models/progressive-v1/tex-0c5583fc54157f4f8c44d66e.bin b/models/progressive-v1/tex-0c5583fc54157f4f8c44d66e.bin new file mode 100644 index 0000000000000000000000000000000000000000..d5320af7b8be524d714f2f3110ff773aa5e6b453 --- /dev/null +++ b/models/progressive-v1/tex-0c5583fc54157f4f8c44d66e.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb5e4f1045a75c7cc1db9ff28c455243d5fa18491f6e0cce3c97eb419b0b5d46 +size 280250 diff --git a/models/progressive-v1/tex-225bcc65cd7bcd3b9d16579a.bin b/models/progressive-v1/tex-225bcc65cd7bcd3b9d16579a.bin new file mode 100644 index 0000000000000000000000000000000000000000..878d328c4328176bdba63601d0d4e2b3c4387f84 --- /dev/null +++ b/models/progressive-v1/tex-225bcc65cd7bcd3b9d16579a.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13098ddd47e25af6bd53ac5204884f667703d5d4d47e6e082091b20603a97ec4 +size 74904 diff --git a/models/progressive-v1/tex-47081d9eda360ec2877b0a67.bin b/models/progressive-v1/tex-47081d9eda360ec2877b0a67.bin new file mode 100644 index 0000000000000000000000000000000000000000..49f524049bc29a7d550770182595d3129f2b68ad --- /dev/null +++ b/models/progressive-v1/tex-47081d9eda360ec2877b0a67.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:383c948d449a7de7a21546440e9656ee039c02766307304b5ccdcdefa1db1be2 +size 342426 diff --git a/models/progressive-v1/tex-58671762c37f9765338e766f.bin b/models/progressive-v1/tex-58671762c37f9765338e766f.bin new file mode 100644 index 0000000000000000000000000000000000000000..5ee3e79ae9b18d0c045149a9bd507c571a68952d --- /dev/null +++ b/models/progressive-v1/tex-58671762c37f9765338e766f.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:918a1361453561abcf9f25c67773f4e4335f2880a4da7b9f87161cedcbfe18f4 +size 116538 diff --git a/models/progressive-v1/tex-6e55d60fccc448b5fcd7687f.bin b/models/progressive-v1/tex-6e55d60fccc448b5fcd7687f.bin new file mode 100644 index 0000000000000000000000000000000000000000..99a29f4bd41d227e766322afd3586afe7f77196b --- /dev/null +++ b/models/progressive-v1/tex-6e55d60fccc448b5fcd7687f.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:459965079fce5e594db9283c7589608b5503cb0a2507da4fb85c139e02d019aa +size 223968 diff --git a/models/progressive-v1/tex-8651832a83a6d3fd6c3dcdcd.bin b/models/progressive-v1/tex-8651832a83a6d3fd6c3dcdcd.bin new file mode 100644 index 0000000000000000000000000000000000000000..159bae0b62e5e89b2092c27f8c016c39e8e65033 --- /dev/null +++ b/models/progressive-v1/tex-8651832a83a6d3fd6c3dcdcd.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce495eb90a73fad27bfa974327f852f296fc0d19b85605f61d05f5dd037aab66 +size 130918 diff --git a/models/progressive-v1/tex-ca618491f2136f6af09029fb.bin b/models/progressive-v1/tex-ca618491f2136f6af09029fb.bin new file mode 100644 index 0000000000000000000000000000000000000000..81ea3e4b447ad5e2208bf0144424d4fec285a2c1 --- /dev/null +++ b/models/progressive-v1/tex-ca618491f2136f6af09029fb.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48fa95fd53714e0cbc2e126d99ea42f895df8abc63b04ca88c44b5b72b0f30e8 +size 79972 diff --git a/scripts/i2s_more_cases.py b/scripts/i2s_more_cases.py new file mode 100644 index 0000000000000000000000000000000000000000..43ad4979c4ae74bbfbed80f4682a7ebb90217b5d --- /dev/null +++ b/scripts/i2s_more_cases.py @@ -0,0 +1,163 @@ +"""Four more Image-to-Scene cases (user, 2026-10-04: "然后image2scene多找几个case放上去"). + +Picked from the 75 public cases for a clean reference image and a perfect (1.000) repair whose saved scene is the one the +scored run reloaded, so it can be shown in 3D. Each card shows that repair; the case explorer adds the other exported agents. +The scenes were staged and exported to GLB on serv6 (code4scene-video/scripts/stage_i2s_more.py, export_glb_more.sh), +then compressed as website/compress_glb.sh does (meshopt geometry, 512 px WebP, Image-to-Scene nodes kept). +Scores, judge views and reference images are the film kit's (kit/host/film/i2s.json, collected by kit/collect_i2s.py); +targets and operations are the testset label.json corruption contracts; the reference cameras are the public cameras.json. + +Each step asserts it found what it edits. + GLB=__.glb> python3 scripts/i2s_more_cases.py +""" +from __future__ import annotations +import hashlib, json, os, re, shutil, sys +from pathlib import Path +import numpy as np +from bs4 import BeautifulSoup + +ROOT = Path(__file__).resolve().parent.parent +KIT = Path.home() / "Downloads/code4scene-video/kit/host/film/i2s.json" +PUB = Path.home() / "Downloads/Code4Scene/benchmark/public/image-to-scene" +GLB = Path(os.environ["GLB"]) +V = "20261004i2smore" +KEY = bytes.fromhex("5c2f9e71d3a84b06e1f7c29a38d05b64a7193ce8f2046db95e81c73a2df6904b") # website/pack_models.py + +# case, title, card agent, the target actors' GLB node names, the label.json corruption contract (authored_operations), a line +# on what was done. The exporter names nodes by actor label; where that differs from the label.json label, the node is the +# one whose transform differs between the ground truth and the input GLB: comp-72's StaticMeshActor_565 is SM_Umbrella_5, +# comp-51's BP_Mailbox_01_C_443 is BP_Mailbox_01 (as build_site.py's GLB_ALIAS for comp-31). +CASES = [ + ("comp-72-suburban-umbrella-pair-repair-v2", "Suburban Umbrella Pair", "opus", ["SM_Umbrella_5"], + [{"type": "duplication", "label": "StaticMeshActor_565", "new_label": "StaticMeshActor_565_CorruptDuplicate", "delta_cm": [-300.0, 220.0, 0.0], "yaw_deg": -28.0, "factor": 0.82}, + {"type": "rotation", "label": "StaticMeshActor_565", "yaw_deg": 46.0}, + {"type": "scaling", "label": "StaticMeshActor_565", "factor": [1.28, 1.28, 1.18]}], + "The patio umbrella turned 46° and enlarged, plus an unintended smaller duplicate."), + ("comp-17-rosies-service-bin-reset-v3", "Rosie's Service Bin", "astra", ["SM_Trashcan3"], + [{"type": "translation", "label": "SM_Trashcan3", "delta_cm": [260.0, 180.0, 0.0]}, + {"type": "rotation", "label": "SM_Trashcan3", "yaw_deg": 65.0}, + {"type": "scaling", "label": "SM_Trashcan3", "factor": 1.45}], + "A trash can moved 3.2 m, turned 65° and scaled up 1.45×."), + ("comp-18-rosies-roadside-billboard-reset-v3", "Rosie's Roadside Billboard", "astra", ["SM_Billboard02"], + [{"type": "translation", "label": "SM_Billboard02", "delta_cm": [650.0, 400.0, 0.0]}, + {"type": "rotation", "label": "SM_Billboard02", "yaw_deg": 55.0}, + {"type": "scaling", "label": "SM_Billboard02", "factor": 1.35}], + "The billboard moved 7.6 m, turned 55° and scaled up 1.35×."), + ("comp-51-suburban-driveway-mailbox-recovery-v2", "Suburban Driveway Mailbox", "fable", ["BP_Mailbox_01"], + [{"type": "removal", "label": "BP_Mailbox_01_C_443"}], + "The driveway mailbox removed."), +] + + +def one(found, what): + assert found, f"not found: {what}" + return found + + +def mid(glb_name): + return hashlib.sha256(b"c4s-model:" + glb_name.encode()).hexdigest()[:20] + + +def pack(): + """website/pack_models.py for the new GLBs: models/.bin, XORed with the page's keystream""" + table = {} + for g in sorted(GLB.glob("*.glb")): + assert any(g.name.startswith(c[0] + "__") for c in CASES), g.name + a = np.frombuffer(g.read_bytes(), np.uint8); idx = np.arange(a.size, dtype=np.int64) + ks = np.frombuffer(KEY, np.uint8)[idx % 32] ^ ((idx // 32) * 131 & 255).astype(np.uint8) + dst = ROOT / "models" / f"{mid(g.name)}.bin"; dst.write_bytes((a ^ ks).tobytes()) + table[g.name] = f"models/{dst.name}?v={int(dst.stat().st_mtime)}" + print("packed", len(table), "models") + return table + + +def ref_cam(setting, case): + v = next(v for v in json.loads((PUB / setting / case / "cameras.json").read_text())["views"] if v["name"] == "reference") + ue = lambda p: [p[0] / 100, p[2] / 100, p[1] / 100] # UE (x, y, z) cm -> glTF (x, z, y) m, as build_site.py + return {"pos": ue(v["location_cm"]), "target": ue(v["target_cm"]), "hfov": v["fov_deg"]} + + +def site_data(models): + p = ROOT / "data/site.js" + S = json.loads(p.read_text().split("=", 1)[1].rstrip().rstrip(";")) + assert not {c[0] for c in CASES} & {c["id"] for c in S["cases"]}, "already added" + kit = {c["case"]: c for c in json.loads(KIT.read_text())} + q = lambda rel: f"{rel}?v={V}" + for case, title, card, targets, ops, note in CASES: + c = kit[case]; d = f"media/i2s/{case}" + assert all((ROOT / d / a["img"]).exists() for a in c["agents"] if a["img"]), case + ags = [{"key": a["key"], "s": a["s"], "f1": a["f1"], "phys": a["phys"], "tp": a["tp"], "fp": a["fp"], "fn": a["fn"], + "img": q(f"{d}/{a['img']}") if a["img"] else None, "glb": models.get(f"{case}__{a['key']}.glb")} + for a in sorted(c["agents"], key=lambda a: -a["s"])] + best = next(a for a in ags if a["key"] == card) + assert best["s"] >= 0.999 and best["glb"], (case, card) + S["cases"].append({"id": case, "track": "i2s", "title": title, "note": note, "prompt": c["task"]["prompt"], "targets": targets, + "duplicates": [o["new_label"] for o in ops if o["type"] == "duplication"], "corruption": ops, + "gt_glb": one(models.get(f"{case}__gt.glb"), f"{case} gt"), "input_glb": one(models.get(f"{case}__input.glb"), f"{case} input"), + "ref_cam": ref_cam(c["setting"], case), "gt": q(f"{d}/{c['gt']}"), "input": q(f"{d}/{c['input']}") if c.get("input") else None, + "refs": [q(f"{d}/{r}") for r in c["refs"]], "ops": c["ops"], "agents": ags}) + p.write_text("window.SITE = " + json.dumps(S) + ";\n") + n3d = sum(1 for c in S["cases"] for a in c["agents"] if a.get("glb")) + sum(1 for c in S["cases"] for k in ("gt_glb", "input_glb") if c.get(k)) + cp = ROOT / "cases.html"; cs = cp.read_text() + cs, n = re.subn(r"\d+ cases, \d+ scenes in 3D", f'{len(S["cases"])} cases, {n3d} scenes in 3D', cs); assert n == 1 + cs, n = re.subn(r"(data/site\.js)\?v=\w+", lambda m: f"{m.group(1)}?v={V}", cs); assert n == 1 + cp.write_text(cs) + print("data/site.js:", len(S["cases"]), "cases ·", n3d, "scenes in 3D") + return S + + +def index(S): + p = ROOT / "index.html" + soup = BeautifulSoup(p.read_text(), "html.parser") + grid = one(soup.find(id="cases").find(class_="case-grid", attrs={"data-view": "i2s"}), "Image-to-Scene case grid") + name = {k: v["name"] for k, v in S["agents"].items()} + for case, title, card, *_ in CASES: + c = next(c for c in S["cases"] if c["id"] == case); a = next(a for a in c["agents"] if a["key"] == card) + grid.append(BeautifulSoup( + f'
' + 'Loading 3D scene…Drag to orbit · Scroll to zoom
' + f'Image-to-Scene

{title}

{name[card]} · score {a["s"]:.3f}

' + f'Compare all 14 agents ↗
', "html.parser")) + for t in soup.find_all("script", src=re.compile(r"^data/site\.js")): + t["src"] = f"data/site.js?v={V}" + p.write_text(str(soup)) + print("index.html:", len(grid.find_all("article", recursive=False)), "Image-to-Scene cards") + + +def texture_share(packed): + """the share of a packed GLB's bytes that are embedded images""" + a = np.frombuffer(packed.read_bytes(), np.uint8); idx = np.arange(a.size, dtype=np.int64) + raw = (a ^ (np.frombuffer(KEY, np.uint8)[idx % 32] ^ ((idx // 32) * 131 & 255).astype(np.uint8))).tobytes() + n = int.from_bytes(raw[12:16], "little"); g = json.loads(raw[20:20 + n]) + views = {im["bufferView"] for im in g.get("images", []) if "bufferView" in im} + return sum(g["bufferViews"][v]["byteLength"] for v in views) / len(raw) + + +def progressive(S): + """build_progressive.py's geometry-first derivative for each new card scene (repair, input, ground truth)""" + sys.path.insert(0, str(ROOT / "scripts")) + import build_progressive as bp + urls = [] + for case, _, card, *_ in CASES: + c = next(c for c in S["cases"] if c["id"] == case) + urls += [next(a for a in c["agents"] if a["key"] == card)["glb"], c["input_glb"], c["gt_glb"]] + # a derivative pays off only when textures are a real share of the file: the suburban scenes are ~98% geometry, so theirs + # would duplicate 18 MB for no earlier first frame; those cards load the packed model directly, as before progressive-v1 + urls = [u for u in urls if texture_share(ROOT / u.split("?")[0]) >= 0.1] + for u in urls: # the converter reads its cache before the live Space, which does not have these files yet + shutil.copyfile(ROOT / u.split("?")[0], bp.CACHE / u.split("/")[-1].split("?")[0]) + m = ROOT / "data/progressive-scenes.json"; d = json.loads(m.read_text()) + d.update(dict(bp.convert(u) for u in urls)) + m.write_text(json.dumps(d, indent=2) + "\n") + cu = ROOT / "scripts/progressive-card-urls.json"; cl = json.loads(cu.read_text()); cu.write_text(json.dumps(cl + urls) + "\n") + print("data/progressive-scenes.json:", len(d), "card scenes") + + +if __name__ == "__main__": + if os.environ.get("ONLY") == "progressive": # re-run the last step on an already-edited page + progressive(json.loads((ROOT / "data/site.js").read_text().split("=", 1)[1].rstrip().rstrip(";"))) + else: + models = pack(); S = site_data(models); index(S); progressive(S) diff --git a/scripts/progressive-card-urls.json b/scripts/progressive-card-urls.json index a6a32d7e003f10ff2c476be7a51db16d275fa88a..92857d68f3c9e53436de1466c056038251a817f3 100644 --- a/scripts/progressive-card-urls.json +++ b/scripts/progressive-card-urls.json @@ -1 +1 @@ -["models/38071c69a86d174dc55f.bin?v=1790737099", "models/46734878f740aae816d8.bin?v=1790737099", "models/66da6868d20ebb100197.bin?v=1790737099", "models/6afbbaec6b7a4271b21f.bin?v=1790737099", "models/a32fa4ebc640e2278635.bin?v=1790737099", "models/cb082e689f15e654daab.bin?v=1790737099", "models/cc1bdce0533a50e81385.bin?v=1790737099", "models/db5c0c5d2b78f9e47bb7.bin?v=1790737099", "models/e6a6333939ccfe57d584.bin?v=1790737099", "models/fa367ea5d33ed24f577a.bin?v=1790737099", "models/feb923d4f4f257315904.bin?v=1790737098"] \ No newline at end of file +["models/38071c69a86d174dc55f.bin?v=1790737099", "models/46734878f740aae816d8.bin?v=1790737099", "models/66da6868d20ebb100197.bin?v=1790737099", "models/6afbbaec6b7a4271b21f.bin?v=1790737099", "models/a32fa4ebc640e2278635.bin?v=1790737099", "models/cb082e689f15e654daab.bin?v=1790737099", "models/cc1bdce0533a50e81385.bin?v=1790737099", "models/db5c0c5d2b78f9e47bb7.bin?v=1790737099", "models/e6a6333939ccfe57d584.bin?v=1790737099", "models/fa367ea5d33ed24f577a.bin?v=1790737099", "models/feb923d4f4f257315904.bin?v=1790737098", "models/fef6016b97b176af9fef.bin?v=1791181855", "models/6ed621e057a53331469a.bin?v=1791181855", "models/843768ef1999c6f33178.bin?v=1791181855", "models/d3e551d366b82c38cfe2.bin?v=1791181856", "models/ca03f1482ef5f2decbcb.bin?v=1791181856", "models/73ceabf2d178a47c7d70.bin?v=1791181856"]