1<!doctype html> 2<html lang="en"> 3 4<head> 5 <meta charset="UTF-8" /> 6 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" /> 7 <title>WorldReel</title> 8 <style> 9 body { 10 padding: 2em; 11 font-family: sans-serif; 12 background-color: #f7f7f7; 13 color: #333; 14 margin: 0; 15 } 16 17 .hero { 18 text-align: center; 19 padding: 2.5em 2.5em; 20 background-color: #ffffff; 21 color: #1f252d; 22 border-radius: 1em; 23 margin-bottom: 2em; 24 border: 1px solid #e5e5e5; 25 box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06); 26 } 27 28 .hero h1 { 29 font-size: 2.2em; 30 margin: 0; 31 font-weight: bold; 32 margin-bottom: 0.5em; /* ç¨å¾®å¢å æ é¢åä½è ä¹é´çé´è· */ 33 } 34 35 .publication-venue { 36 display: block; 37 margin: 0 0 0.9em; 38 color: #d65252; 39 font-size: 1.65em; 40 font-weight: 700; 41 line-height: 1.05; 42 } 43 44 .hero p { 45 font-size: 1.15em; 46 margin: 0.75em 0 0; 47 } 48 49 .publication-authors { 50 font-family: 'Google Sans', sans-serif; 51 } 52 53 .author-block { 54 font-size: 20px; 55 color: #1f252d; 56 padding: 0 5px; 57 display: inline-block; 58 } 59 60 .author-block a { 61 color: inherit; 62 text-decoration: none; 63 } 64 65 .author-block a:hover { 66 text-decoration: underline; 67 } 68 69 .publication-affiliations { 70 margin-top: 10px; 71 font-size: 16px; 72 color: #55616a; 73 } 74 75 .affiliation-block { 76 display: inline-block; 77 margin: 0 10px; 78 } 79 80 .hero-actions { 81 display: flex; 82 justify-content: center; 83 gap: 0.75em; 84 margin-top: 1.5em; 85 flex-wrap: wrap; 86 } 87 88 .hero-button { 89 display: inline-flex; 90 align-items: center; 91 gap: 0.5em; 92 padding: 0.55em 1.2em; 93 border-radius: 0.8em; 94 border: 1px solid #2d3138; 95 background-color: #2d3138; 96 color: #ffffff; 97 text-decoration: none; 98 font-weight: 600; 99 transition: all 0.18s ease; 100 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); 101 } 102 103 .hero-button:hover { 104 background-color: #181c22; 105 color: #ffffff; 106 border-color: #181c22; 107 } 108 109 .hero-button svg { 110 width: 18px; 111 height: 18px; 112 } 113 114 .hero .hero-tldr { 115 display: block; 116 margin: 1.1em 0 0; 117 padding: 0 1em; 118 font-size: 1.02em; 119 line-height: 1.55; 120 color: #4a5560; 121 text-align: center; 122 white-space: normal; 123 overflow-wrap: anywhere; 124 } 125 126 .hero .hero-tldr strong { 127 color: #1f252d; 128 font-weight: 700; 129 } 130 131 .overview-figure { 132 width: 85%; 133 max-width: 1100px; 134 height: auto; 135 display: block; 136 margin: 1em auto; 137 border: none; 138 border-radius: 0; 139 box-shadow: none; 140 overflow: visible; 141 } 142 143 .overview-caption { 144 max-width: 1100px; 145 margin: 0 auto; 146 font-size: 0.97em; 147 line-height: 1.6em; 148 color: #444; 149 text-align: left; 150 } 151 152 .bibtex-block { 153 background-color: #ffffff; 154 border: 1px solid #e5e5e5; 155 border-radius: 1em; 156 padding: 2em; 157 box-shadow: 0 0 1em 0 rgba(0, 0, 0, 0.1); 158 margin: 0 0 3em 0; 159 } 160 161 .bibtex-block .teaser-title { 162 text-align: center; 163 } 164 165 .bibtex-code { 166 background: #f1f2f5; 167 color: #1f252d; 168 border-radius: 0.6em; 169 padding: 1.1em; 170 overflow-x: auto; 171 font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 172 font-size: 0.9em; 173 margin: 0 auto; 174 border: 1px solid #dcdfe3; 175 max-width: 960px; 176 } 177 178 179 .section-nav { 180 display: flex; 181 flex-wrap: wrap; 182 justify-content: center; 183 gap: 1em; 184 margin-bottom: 2em; 185 } 186 187 .section-button { 188 background-color: #ffffff; 189 border-radius: 999px; 190 border: 2px solid #333; 191 color: #333; 192 padding: 0.6em 1.5em; 193 text-decoration: none; 194 font-weight: 600; 195 transition: background-color 0.2s ease, color 0.2s ease; 196 } 197 198 .section-button:hover { 199 background-color: #333; 200 color: #fff; 201 } 202 203 .teaser { 204 text-align: center; 205 margin-bottom: 3em; 206 padding: 2em; 207 background-color: #ffffff; 208 border-radius: 1em; 209 box-shadow: 0 0 1em 0em rgba(0, 0, 0, 0.1); 210 } 211 212 .teaser-title { 213 font-size: 2em; 214 font-weight: bold; 215 margin-bottom: 0.5em; 216 } 217 218 .teaser-description { 219 font-size: 1.05em; 220 line-height: 1.55em; 221 margin-bottom: 2em; 222 max-width: 1100px; 223 margin-left: auto; 224 margin-right: auto; 225 } 226 227 /* --- Ablation Text Description Styles --- */ 228 .ablation-text { 229 text-align: left; 230 max-width: 1000px; 231 margin: 0 auto 2em auto; 232 padding: 1.5em; 233 background-color: #f4f4f4; /* Slightly different grey to distinguish */ 234 border-radius: 0.5em; 235 font-size: 0.95em; 236 line-height: 1.6em; 237 } 238 239 .ablation-text strong { 240 color: #222; 241 font-weight: 700; 242 } 243 244 .ablation-text ul { 245 margin-top: 0.5em; 246 padding-left: 1.5em; 247 } 248 249 .ablation-text li { 250 margin-bottom: 0.5em; 251 } 252 253 .placeholder-note { 254 color: #666; 255 font-style: italic; 256 } 257 258 .ablation-sample { 259 margin-bottom: 2.5em; 260 } 261 262 .ablation-input-row { 263 display: flex; 264 justify-content: center; 265 gap: 1.25em; 266 margin-bottom: 1em; 267 } 268 269 .ablation-row { 270 display: flex; 271 flex-wrap: nowrap; 272 gap: 1.25em; 273 justify-content: flex-start; 274 overflow-x: auto; 275 padding-bottom: 0.5em; 276 padding-left: 1em; 277 padding-right: 1em; 278 } 279 280 @media (min-width: 1600px) { 281 .ablation-row { 282 justify-content: center; 283 } 284 } 285 286 .ablation-row::-webkit-scrollbar {
287 height: 8px; 288 } 289 290 .ablation-row::-webkit-scrollbar-thumb { 291 background: rgba(0, 0, 0, 0.25); 292 border-radius: 999px; 293 } 294 295 .ablation-item { 296 flex: 0 0 auto; 297 text-align: center; 298 } 299 300 .ablation-label { 301 font-size: 1em; 302 font-weight: 600; 303 margin-bottom: 0.4em; 304 } 305 306 .ablation-media { 307 width: 300px; 308 border-radius: 0.5em; 309 box-shadow: 0 0 1em rgba(0, 0, 0, 0.15); 310 display: block; 311 } 312 313 @media (max-width: 1200px) { 314 .ablation-media { 315 width: 280px; 316 } 317 } 318 319 @media (max-width: 900px) { 320 .ablation-media { 321 width: 260px; 322 } 323 } 324 325 @media (max-width: 600px) { 326 .ablation-media { 327 width: 220px; 328 } 329 } 330 331 .generated-group { 332 margin-bottom: 2.5em; 333 } 334 335 .generated-row { 336 display: flex; 337 flex-wrap: nowrap; 338 justify-content: flex-start; 339 gap: 1em; 340 overflow-x: auto; 341 padding-bottom: 0.5em; 342 padding-left: 1em; 343 padding-right: 1em; 344 } 345 346 @media (min-width: 1600px) { 347 .generated-row { 348 justify-content: center; 349 } 350 } 351 352 .generated-row::-webkit-scrollbar {
353 height: 8px; 354 } 355 356 .generated-row::-webkit-scrollbar-thumb { 357 background: rgba(0, 0, 0, 0.25); 358 border-radius: 999px; 359 } 360 361 .generated-item { 362 flex: 0 0 auto; 363 text-align: center; 364 } 365 366 .generated-label { 367 font-weight: 600; 368 margin-bottom: 0.4em; 369 min-height: 1.2em; 370 } 371 372 .generated-media { 373 width: 300px; 374 border-radius: 0.5em; 375 box-shadow: 0 0 1em rgba(0, 0, 0, 0.15); 376 } 377 378 @media (max-width: 1200px) { 379 .generated-media { 380 width: 280px; 381 } 382 } 383 384 @media (max-width: 900px) { 385 .generated-media { 386 width: 260px; 387 } 388 } 389 390 @media (max-width: 600px) { 391 .generated-media { 392 width: 220px; 393 } 394 } 395 </style> 396</head> 397 398<body> 399 <div class="hero"> 400 <h1>WorldReel: 4D Video Generation with Consistent Geometry and Motion Modeling</h1> 401 <div class="publication-venue">CVPR 2026</div> 402 403 <div class="publication-authors"> 404 <span class="author-block"> 405 <a href="https://bshfang.github.io/" target="_blank">Shaoheng Fang</a><sup>1</sup>, 406 </span> 407 <span class="author-block"> 408 <a href="https://hwjiang1510.github.io/" target="_blank">Hanwen Jiang</a><sup>2</sup>, 409 </span> 410 <span class="author-block"> 411 <a href="https://bbaaii.github.io/" target="_blank">Yunpeng Bai</a><sup>1</sup>, 412 </span> 413 <span class="author-block"> 414 <a href="http://www0.cs.ucl.ac.uk/staff/n.mitra/" target="_blank">Niloy J. Mitra</a><sup>2,3</sup>, 415 </span> 416 <span class="author-block"> 417 <a href="https://www.cs.utexas.edu/~huangqx/" target="_blank">Qixing Huang</a><sup>1</sup> 418 </span> 419 </div> 420 421 <div class="publication-affiliations"> 422 <span class="affiliation-block"><sup>1</sup>The University of Texas at Austin</span> 423 <span class="affiliation-block"><sup>2</sup>Adobe Research</span> 424 <span class="affiliation-block"><sup>3</sup>University College London</span> 425 </div> 426 427 <div class="hero-actions"> 428 <a class="hero-button" href="https://arxiv.org/pdf/2512.07821"> 429 <svg viewBox="0 0 448 512" aria-hidden="true"> 430 <path fill="currentColor" d="m119.65 351.996c-5.85.135-11.19-3.299-13.5-8.676-2.2-5.27-.62-8.967 4.2-15.865 7.05-10.38 78.82-96.563 78.82-96.563l-15.88-14.863c-13.38-13.378-13.96-31.333-1.51-43.775l18.49-17.613-51.59-63.377c-4.01-4.268-6.49-11.756-4.25-17.131 2.28-5.536 7.7-9.129 13.68-9.07 3.84.096 7.44 1.874 9.84 4.861l61.37 57.057 94.58-90.07c3.19-3.084 7.44-4.84 11.88-4.91 1.61.004 3.2.245 4.74.715 5.78 1.806 10.25 6.418 11.87 12.252 1.3 5.474-.28 11.234-4.18 15.284l-83.09 100.012 14.88 13.834c11.1 10.003 11.16 27.39.13 37.469l-16.3 15.63 56.26 66.444.07.086.07.09c5.03 6.53 7.43 11.561 4.84 17.94-3.13 5.968-8.7 10.29-15.26 11.851-.68.091-1.36.136-2.04.137v-.012c-4.43-.271-8.61-2.131-11.78-5.24l-.13-.108-.12-.111-65.21-59.127-89.9 86.24s-5.33 6.478-10.97 6.612zm178.11-33.041c.48-.002.96-.033 1.43-.096 4.84-1.333 8.96-4.54 11.43-8.91 1.45-3.563 1-6.457-4.2-13.215l-56.05-66.218-26.38 25.303 64.95 58.906c2.34 2.415 5.47 3.911 8.82 4.217zm-105.32-91.553L334.45 57.244c2.79-3.489 4.53-6.979 3.34-10.912-1.16-4.303-4.43-7.718-8.68-9.057-1.08-.334-2.21-.504-3.34-.506-3.21.076-6.27 1.356-8.58 3.588L175.14 175.642c-11.17 11.172-9.48 26.02 1.39 36.895z"/> 431 </svg> 432 <span>ArXiv</span> 433 </a> 434 <a class="hero-button" href="WorldReel_arxiv.pdf" target="_blank" rel="noopener"> 435 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"> 436 <path d="M7 3h7l5 5v13a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z"></path> 437 <path d="M14 3v5h5"></path> 438 <path d="M9 13h6M9 17h6"></path> 439 </svg> 440 <span>Paper (PDF)</span> 441 </a> 442 <a class="hero-button" href="https://github.com/bshfang/WorldReel" target="_blank" rel="noopener"> 443 <svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"> 444 <path fill-rule="evenodd" clip-rule="evenodd" d="M12 2C6.48 2 2 6.58 2 12.2c0 4.5 2.87 8.31 6.84 9.66.5.1.68-.22.68-.48l-.01-1.7c-2.78.62-3.37-1.34-3.37-1.34-.45-1.17-1.1-1.48-1.1-1.48-.9-.62.07-.61.07-.61 1 .07 1.53 1.05 1.53 1.05.9 1.58 2.37 1.12 2.95.86.09-.67.35-1.12.63-1.38-2.22-.26-4.55-1.13-4.55-5 0-1.1.38-2 .99-2.7-.1-.26-.43-1.3.09-2.71 0 0 .83-.27 2.73 1.02a9.3 9.3 0 0 1 4.96 0c1.9-1.29 2.73-1.02 2.73-1.02.52 1.41.19 2.45.09 2.71.61.7.99 1.6.99 2.7 0 3.88-2.34 4.74-4.57 5 .36.31.68.92.68 1.86l-.01 2.76c0 .27.18.58.69.48A10.23 10.23 0 0 0 22 12.2C22 6.58 17.52 2 12 2Z"></path> 445 </svg>
446 <span>Code</span> 447 </a> 448 </div> 449 <p class="hero-tldr"><strong>TLDR:</strong> WorldReel jointly generates RGB videos and 4D scene representations, keeping geometry and motion consistent across time, viewpoints, and dynamic scenes.</p> 450 451 </div> 452 453 <div class="teaser" id="abstract"> 454 <div class="teaser-title">Abstract</div> 455 <p class="teaser-description">Recent video generators achieve striking photorealism, yet remain fundamentally inconsistent in 3D. We present WorldReel, a 4D video generator that is natively spatio-temporally consistent. WorldReel jointly produces RGB frames together with 4D scene representations, including pointmaps, camera trajectory, and dense flow mapping, enabling coherent geometry and appearance modeling over time. Our explicit 4D representation enforces a single underlying scene that persists across viewpoints and dynamic content, yielding videos that remain consistent even under large non-rigid motion and significant camera movement. We train WorldReel by carefully combining synthetic and real data: synthetic data providing precise 4D supervision (geometry, motion, and camera), while real videos contribute visual diversity and realism. This blend allows WorldReel to generalize to in-the-wild footage while preserving strong geometric fidelity. Extensive experiments demonstrate that WorldReel sets a new state-of-the-art for consistent video generation with dynamic scenes and moving cameras, improving metrics of geometric consistency, motion coherence, and reducing view-time artifacts over competing methods. We believe that WorldReel brings video generation closer to 4D-consistent world modeling, where agents can render, interact, and reason about scenes through a single and stable spatiotemporal representation.</p> 456 </div> 457 458 <div class="teaser" id="overview"> 459 <div class="teaser-title">Overview</div> 460 <img src="figure_overview.png" alt="WorldReel method overview" class="overview-figure"> 461 <p class="overview-caption">Overview of WorldReel. We augment a video diffusion transformer with a geo-motion latent (from RGB and 2.5D cues such as depth/optical flow) to inject a 4D inductive bias for spatio-temporal consistency. A temporal DPT decoder is trained with direct supervision and regularization to predict unified 4D outputs (depth/point cloud, calibrated camera, 3D scene flow, and masks).</p> 462 </div> 463 464 <div class="section-nav"> 465 <a class="section-button" href="#unified">Unified 4D Videos</a> 466 <a class="section-button" href="#scene-rendering">4D Scene Rendering</a> 467 <a class="section-button" href="#comparison">In-the-wild Video Comparison</a> 468 <a class="section-button" href="#generated">Generated In-the-wild Video</a> 469 <a class="section-button" href="#ablation">Ablation</a> 470 </div> 471 472 <div class="teaser" id="unified"> 473 <div class="teaser-title">Unified 4D Videos</div> 474 <p class="teaser-description">4D outputs jointly generated by WorldReel.</p> 475 476 <div class="ablation-sample sync-row"> 477 <div class="ablation-input-row"> 478 <div class="ablation-item"> 479 <p class="ablation-label">Input Image</p> 480 <img src="unified_4d_outputs/condition_4.png" alt="Input Image 4" class="ablation-media"> 481 </div> 482 </div> 483 <div class="ablation-row"> 484 <div class="ablation-item"> 485 <p class="ablation-label">Generated Video</p> 486 <video src="unified_4d_outputs/video_4.mp4" loop muted playsinline class="ablation-media"></video> 487 </div> 488 <div class="ablation-item"> 489 <p class="ablation-label">Generated Depth</p> 490 <video src="unified_4d_outputs/depth_4.mp4" loop muted playsinline class="ablation-media"></video> 491 </div> 492 <div class="ablation-item"> 493 <p class="ablation-label">Generated Optical Flow</p> 494 <video src="unified_4d_outputs/optical_flow_4.mp4" loop muted playsinline class="ablation-media"></video> 495 </div> 496 <div class="ablation-item"> 497 <p class="ablation-label">Generated Scene Flow</p> 498 <video src="unified_4d_outputs/pred_flow_rgb_4.mp4" loop muted playsinline class="ablation-media"></video> 499 </div> 500 <div class="ablation-item"> 501 <p class="ablation-label">Generated Mask</p> 502 <video src="unified_4d_outputs/pred_masks_4.mp4" loop muted playsinline class="ablation-media"></video> 503 </div> 504 </div> 505 </div> 506 507 <div class="ablation-sample sync-row"> 508 <div class="ablation-input-row"> 509 <div class="ablation-item"> 510 <p class="ablation-label">Input Image</p> 511 <img src="unified_4d_outputs/condition_5.png" alt="Input Image 5" class="ablation-media"> 512 </div> 513 </div> 514 <div class="ablation-row"> 515 <div class="ablation-item"> 516 <p class="ablation-label">Generated Video</p> 517 <video src="unified_4d_outputs/video_5.mp4" loop muted playsinline class="ablation-media"></video> 518 </div> 519 <div class="ablation-item"> 520 <p class="ablation-label">Generated Depth</p> 521 <video src="unified_4d_outputs/depth_5.mp4" loop muted playsinline class="ablation-media"></video> 522 </div> 523 <div class="ablation-item"> 524 <p class="ablation-label">Generated Optical Flow</p> 525 <video src="unified_4d_outputs/optical_flow_5.mp4" loop muted playsinline class="ablation-media"></video> 526 </div> 527 <div class="ablation-item"> 528 <p class="ablation-label">Generated Scene Flow</p> 529 <video src="unified_4d_outputs/pred_flow_rgb_5.mp4" loop muted playsinline class="ablation-media"></video> 530 </div> 531 <div class="ablation-item"> 532 <p class="ablation-label">Generated Mask</p> 533 <video src="unified_4d_outputs/pred_masks_5.mp4" loop muted playsinline class="ablation-media"></video> 534 </div> 535 </div> 536 </div> 537 538 <div class="ablation-sample sync-row"> 539 <div class="ablation-input-row"> 540 <div class="ablation-item"> 541 <p class="ablation-label">Input Image</p> 542 <img src="unified_4d_outputs/condition_2.png" alt="Input Image 2" class="ablation-media"> 543 </div> 544 </div> 545 <div class="ablation-row"> 546 <div class="ablation-item"> 547 <p class="ablation-label">Generated Video</p> 548 <video src="unified_4d_outputs/video_2.mp4" loop muted playsinline class="ablation-media"></video> 549 </div> 550 <div class="ablation-item"> 551 <p class="ablation-label">Generated Depth</p> 552 <video src="unified_4d_outputs/depth_2.mp4" loop muted playsinline class="ablation-media"></video> 553 </div> 554 <div class="ablation-item"> 555 <p class="ablation-label">Generated Optical Flow</p> 556 <video src="unified_4d_outputs/optical_flow_2.mp4" loop muted playsinline class="ablation-media"></video> 557 </div> 558 <div class="ablation-item"> 559 <p class="ablation-label">Generated Scene Flow</p> 560 <video src="unified_4d_outputs/pred_flow_rgb_2.mp4" loop muted playsinline class="ablation-media"></video> 561 </div> 562 <div class="ablation-item"> 563 <p class="ablation-label">Generated Mask</p> 564 <video src="unified_4d_outputs/pred_masks_2.mp4" loop muted playsinline class="ablation-media"></video> 565 </div> 566 </div> 567 </div> 568 569 <div class="ablation-sample sync-row"> 570 <div class="ablation-input-row"> 571 <div class="ablation-item"> 572 <p class="ablation-label">Input Image</p> 573 <img src="unified_4d_outputs/condition_3.png" alt="Input Image 3" class="ablation-media"> 574 </div> 575 </div> 576 <div class="ablation-row"> 577 <div class="ablation-item"> 578 <p class="ablation-label">Generated Video</p> 579 <video src="unified_4d_outputs/video_3.mp4" loop muted playsinline class="ablation-media"></video> 580 </div> 581 <div class="ablation-item"> 582 <p class="ablation-label">Generated Depth</p> 583 <video src="unified_4d_outputs/depth_3.mp4" loop muted playsinline class="ablation-media"></video> 584 </div> 585 <div class="ablation-item"> 586 <p class="ablation-label">Generated Optical Flow</p> 587 <video src="unified_4d_outputs/optical_flow_3.mp4" loop muted playsinline class="ablation-media"></video> 588 </div> 589 <div class="ablation-item"> 590 <p class="ablation-label">Generated Scene Flow</p> 591 <video src="unified_4d_outputs/pred_flow_rgb_3.mp4" loop muted playsinline class="ablation-media"></video> 592 </div> 593 <div class="ablation-item"> 594 <p class="ablation-label">Generated Mask</p> 595 <video src="unified_4d_outputs/pred_masks_3.mp4" loop muted playsinline class="ablation-media"></video> 596 </div> 597 </div> 598 </div> 599 600 <div class="ablation-sample sync-row"> 601 <div class="ablation-input-row"> 602 <div class="ablation-item"> 603 <p class="ablation-label">Input Image</p> 604 <img src="unified_4d_outputs/condition_6.png" alt="Input Image 6" class="ablation-media"> 605 </div> 606 </div> 607 <div class="ablation-row"> 608 <div class="ablation-item"> 609 <p class="ablation-label">Generated Video</p> 610 <video src="unified_4d_outputs/video_6.mp4" loop muted playsinline class="ablation-media"></video> 611 </div> 612 <div class="ablation-item"> 613 <p class="ablation-label">Generated Depth</p> 614 <video src="unified_4d_outputs/depth_6.mp4" loop muted playsinline class="ablation-media"></video> 615 </div> 616 <div class="ablation-item"> 617 <p class="ablation-label">Generated Optical Flow</p> 618 <video src="unified_4d_outputs/optical_flow_6.mp4" loop muted playsinline class="ablation-media"></video> 619 </div> 620 <div class="ablation-item"> 621 <p class="ablation-label">Generated Scene Flow</p> 622 <video src="unified_4d_outputs/pred_flow_rgb_6.mp4" loop muted playsinline class="ablation-media"></video> 623 </div> 624 <div class="ablation-item"> 625 <p class="ablation-label">Generated Mask</p> 626 <video src="unified_4d_outputs/pred_masks_6.mp4" loop muted playsinline class="ablation-media"></video> 627 </div> 628 </div> 629 </div> 630 </div> 631 632 <div class="teaser" id="scene-rendering"> 633 <div class="teaser-title">4D Scene Rendering</div> 634 <p class="teaser-description">Rendering results of the generated 4D scene.</p> 635 636 <div class="ablation-sample sync-row"> 637 <div class="ablation-row"> 638 <div class="ablation-item"> 639 <p class="ablation-label">Input Image</p> 640 <img src="4d_scene_output/condition_1.png" alt="Input Image 1" class="ablation-media"> 641 </div> 642 <div class="ablation-item"> 643 <p class="ablation-label">Generated Video</p> 644 <video src="4d_scene_output/video_1.mp4" loop muted playsinline class="ablation-media"></video> 645 </div> 646 <div class="ablation-item"> 647 <p class="ablation-label">Rendered Scene</p> 648 <video src="4d_scene_output/scene_1.mp4" loop muted playsinline class="ablation-media"></video> 649 </div> 650 </div> 651 </div> 652 653 <div class="ablation-sample sync-row"> 654 <div class="ablation-row"> 655 <div class="ablation-item"> 656 <p class="ablation-label">Input Image</p> 657 <img src="4d_scene_output/condition_2.png" alt="Input Image 2" class="ablation-media"> 658 </div> 659 <div class="ablation-item"> 660 <p class="ablation-label">Generated Video</p> 661 <video src="4d_scene_output/video_2.mp4" loop muted playsinline class="ablation-media"></video> 662 </div> 663 <div class="ablation-item"> 664 <p class="ablation-label">Rendered Scene</p> 665 <video src="4d_scene_output/scene_2.mp4" loop muted playsinline class="ablation-media"></video> 666 </div> 667 </div> 668 </div> 669 670 <div class="ablation-sample sync-row"> 671 <div class="ablation-row"> 672 <div class="ablation-item"> 673 <p class="ablation-label">Input Image</p> 674 <img src="4d_scene_output/condition_3.png" alt="Input Image 3" class="ablation-media"> 675 </div> 676 <div class="ablation-item"> 677 <p class="ablation-label">Generated Video</p> 678 <video src="4d_scene_output/video_3.mp4" loop muted playsinline class="ablation-media"></video> 679 </div> 680 <div class="ablation-item"> 681 <p class="ablation-label">Rendered Scene</p> 682 <video src="4d_scene_output/scene_3.mp4" loop muted playsinline class="ablation-media"></video> 683 </div> 684 </div> 685 </div> 686 687 <div class="ablation-sample sync-row"> 688 <div class="ablation-row"> 689 <div class="ablation-item"> 690 <p class="ablation-label">Input Image</p> 691 <img src="4d_scene_output/condition_4.png" alt="Input Image 4" class="ablation-media"> 692 </div> 693 <div class="ablation-item"> 694 <p class="ablation-label">Generated Video</p> 695 <video src="4d_scene_output/video_4.mp4" loop muted playsinline class="ablation-media"></video> 696 </div> 697 <div class="ablation-item"> 698 <p class="ablation-label">Rendered Scene</p> 699 <video src="4d_scene_output/scene_4.mp4" loop muted playsinline class="ablation-media"></video> 700 </div> 701 </div> 702 </div> 703 </div> 704 705 <div class="teaser" id="comparison"> 706 <div class="teaser-title">In-the-wild Video Comparison</div> 707 <p class="teaser-description">Comparison with other video generation methods.</p> 708 709 <div class="ablation-sample sync-row"> 710 <div class="ablation-input-row"> 711 <div class="ablation-item"> 712 <p class="ablation-label">Input Image</p> 713 <img src="comparison/condition_1.png" alt="Input Image 1" class="ablation-media"> 714 </div> 715 </div> 716 <div class="ablation-row"> 717 <div class="ablation-item"> 718 <p class="ablation-label">CogVideoX</p> 719 <video src="comparison/cogvideox_1.mp4" loop muted playsinline class="ablation-media"></video> 720 </div> 721 <div class="ablation-item"> 722 <p class="ablation-label">4DNeX</p> 723 <video src="comparison/4dnex_1.mp4" loop muted playsinline class="ablation-media"></video> 724 </div> 725 <div class="ablation-item"> 726 <p class="ablation-label">DimensionX</p> 727 <video src="comparison/dimensionx_1.mp4" loop muted playsinline class="ablation-media"></video> 728 </div> 729 <div class="ablation-item"> 730 <p class="ablation-label">GeoVideo</p> 731 <video src="comparison/geovideo_1.mp4" loop muted playsinline class="ablation-media"></video> 732 </div> 733 <div class="ablation-item"> 734 <p class="ablation-label">WorldReel (ours)</p> 735 <video src="comparison/ours_1.mp4" loop muted playsinline class="ablation-media"></video> 736 </div> 737 </div> 738 </div> 739 740 <div class="ablation-sample sync-row"> 741 <div class="ablation-input-row"> 742 <div class="ablation-item"> 743 <p class="ablation-label">Input Image</p> 744 <img src="comparison/condition_2.png" alt="Input Image 2" class="ablation-media"> 745 </div> 746 </div> 747 <div class="ablation-row"> 748 <div class="ablation-item"> 749 <p class="ablation-label">CogVideoX</p> 750 <video src="comparison/cogvideox_2.mp4" loop muted playsinline class="ablation-media"></video> 751 </div> 752 <div class="ablation-item"> 753 <p class="ablation-label">4DNeX</p> 754 <video src="comparison/4dnex_2.mp4" loop muted playsinline class="ablation-media"></video> 755 </div> 756 <div class="ablation-item"> 757 <p class="ablation-label">DimensionX</p> 758 <video src="comparison/dimensionx_2.mp4" loop muted playsinline class="ablation-media"></video> 759 </div> 760 <div class="ablation-item"> 761 <p class="ablation-label">GeoVideo</p> 762 <video src="comparison/geovideo_2.mp4" loop muted playsinline class="ablation-media"></video> 763 </div> 764 <div class="ablation-item"> 765 <p class="ablation-label">WorldReel (ours)</p> 766 <video src="comparison/ours_2.mp4" loop muted playsinline class="ablation-media"></video> 767 </div> 768 </div> 769 </div> 770 771 <div class="abl
771ation-sample sync-row"> 772 <div class="ablation-input-row"> 773 <div class="ablation-item"> 774 <p class="ablation-label">Input Image</p> 775 <img src="comparison/condition_3.png" alt="Input Image 3" class="ablation-media"> 776 </div> 777 </div> 778 <div class="ablation-row"> 779 <div class="ablation-item"> 780 <p class="ablation-label">CogVideoX</p> 781 <video src="comparison/cogvideox_3.mp4" loop muted playsinline class="ablation-media"></video> 782 </div> 783 <div class="ablation-item"> 784 <p class="ablation-label">4DNeX</p> 785 <video src="comparison/4dnex_3.mp4" loop muted playsinline class="ablation-media"></video> 786 </div> 787 <div class="ablation-item"> 788 <p class="ablation-label">DimensionX</p> 789 <video src="comparison/dimensionx_3.mp4" loop muted playsinline class="ablation-media"></video> 790 </div> 791 <div class="ablation-item"> 792 <p class="ablation-label">GeoVideo</p> 793 <video src="comparison/geovideo_3.mp4" loop muted playsinline class="ablation-media"></video> 794 </div> 795 <div class="ablation-item"> 796 <p class="ablation-label">WorldReel (ours)</p> 797 <video src="comparison/ours_3.mp4" loop muted playsinline class="ablation-media"></video> 798 </div> 799 </div> 800 </div> 801 802 <div class="ablation-sample sync-row"> 803 <div class="ablation-input-row"> 804 <div class="ablation-item"> 805 <p class="ablation-label">Input Image</p> 806 <img src="comparison/condition_4.png" alt="Input Image 4" class="ablation-media"> 807 </div> 808 </div> 809 <div class="ablation-row"> 810 <div class="ablation-item"> 811 <p class="ablation-label">CogVideoX</p> 812 <video src="comparison/cogvideox_4.mp4" loop muted playsinline class="ablation-media"></video> 813 </div> 814 <div class="ablation-item"> 815 <p class="ablation-label">4DNeX</p> 816 <video src="comparison/4dnex_4.mp4" loop muted playsinline class="ablation-media"></video> 817 </div> 818 <div class="ablation-item"> 819 <p class="ablation-label">DimensionX</p> 820 <video src="comparison/dimensionx_4.mp4" loop muted playsinline class="ablation-media"></video> 821 </div> 822 <div class="ablation-item"> 823 <p class="ablation-label">GeoVideo</p> 824 <video src="comparison/geovideo_4.mp4" loop muted playsinline class="ablation-media"></video> 825 </div> 826 <div class="ablation-item"> 827 <p class="ablation-label">WorldReel (ours)</p> 828 <video src="comparison/ours_4.mp4" loop muted playsinline class="ablation-media"></video> 829 </div> 830 </div> 831 </div> 832 833 <div class="ablation-sample sync-row"> 834 <div class="ablation-input-row"> 835 <div class="ablation-item"> 836 <p class="ablation-label">Input Image</p> 837 <img src="comparison/condition_5.png" alt="Input Image 5" class="ablation-media"> 838 </div> 839 </div> 840 <div class="ablation-row"> 841 <div class="ablation-item"> 842 <p class="ablation-label">CogVideoX</p> 843 <video src="comparison/cogvideox_5.mp4" loop muted playsinline class="ablation-media"></video> 844 </div> 845 <div class="ablation-item"> 846 <p class="ablation-label">4DNeX</p> 847 <video src="comparison/4dnex_5.mp4" loop muted playsinline class="ablation-media"></video> 848 </div> 849 <div class="ablation-item"> 850 <p class="ablation-label">DimensionX</p> 851 <video src="comparison/dimensionx_5.mp4" loop muted playsinline class="ablation-media"></video> 852 </div> 853 <div class="ablation-item"> 854 <p class="ablation-label">GeoVideo</p> 855 <video src="comparison/geovideo_5.mp4" loop muted playsinline class="ablation-media"></video> 856 </div> 857 <div class="ablation-item"> 858 <p class="ablation-label">WorldReel (ours)</p> 859 <video src="comparison/ours_5.mp4" loop muted playsinline class="ablation-media"></video> 860 </div> 861 </div> 862 </div> 863 864 <div class="ablation-sample sync-row"> 865 <div class="ablation-input-row"> 866 <div class="ablation-item"> 867 <p class="ablation-label">Input Image</p> 868 <img src="comparison/condition_6.png" alt="Input Image 6" class="ablation-media"> 869 </div> 870 </div> 871 <div class="ablation-row"> 872 <div class="ablation-item"> 873 <p class="ablation-label">CogVideoX</p> 874 <video src="comparison/cogvideox_6.mp4" loop muted playsinline class="ablation-media"></video> 875 </div> 876 <div class="ablation-item"> 877 <p class="ablation-label">4DNeX</p> 878 <video src="comparison/4dnex_6.mp4" loop muted playsinline class="ablation-media"></video> 879 </div> 880 <div class="ablation-item"> 881 <p class="ablation-label">DimensionX</p> 882 <video src="comparison/dimensionx_6.mp4" loop muted playsinline class="ablation-media"></video> 883 </div> 884 <div class="ablation-item"> 885 <p class="ablation-label">GeoVideo</p> 886 <video src="comparison/geovideo_6.mp4" loop muted playsinline class="ablation-media"></video> 887 </div> 888 <div class="ablation-item"> 889 <p class="ablation-label">WorldReel (ours)</p> 890 <video src="comparison/ours_6.mp4" loop muted playsinline class="ablation-media"></video> 891 </div> 892 </div> 893 </div> 894 895 <div class="ablation-sample sync-row"> 896 <div class="ablation-input-row"> 897 <div class="ablation-item"> 898 <p class="ablation-label">Input Image</p> 899 <img src="comparison/condition_7.png" alt="Input Image 7" class="ablation-media"> 900 </div> 901 </div> 902 <div class="ablation-row"> 903 <div class="ablation-item"> 904 <p class="ablation-label">CogVideoX</p> 905 <video src="comparison/cogvideox_7.mp4" loop muted playsinline class="ablation-media"></video> 906 </div> 907 <div class="ablation-item"> 908 <p class="ablation-label">4DNeX</p> 909 <video src="comparison/4dnex_7.mp4" loop muted playsinline class="ablation-media"></video> 910 </div> 911 <div class="ablation-item"> 912 <p class="ablation-label">DimensionX</p> 913 <video src="comparison/dimensionx_7.mp4" loop muted playsinline class="ablation-media"></video> 914 </div> 915 <div class="ablation-item"> 916 <p class="ablation-label">GeoVideo</p> 917 <video src="comparison/geovideo_7.mp4" loop muted playsinline class="ablation-media"></video> 918 </div> 919 <div class="ablation-item"> 920 <p class="ablation-label">WorldReel (ours)</p> 921 <video src="comparison/ours_7.mp4" loop muted playsinline class="ablation-media"></video> 922 </div> 923 </div> 924 </div> 925 </div> 926 927 <div class="teaser" id="generated"> 928 <div class="teaser-title">Generated In-the-wild Video</div> 929 <p class="teaser-description">Qualitative samples generated by WorldReel on in-the-wild images.</p> 930 931 <div class="generated-group sync-row"> 932 <div class="generated-row"> 933 <div class="generated-item"> 934 <p class="generated-label"> </p> 935 <img src="generated_videos/1.png" alt="Input 1" class="generated-media"> 936 </div> 937 <div class="generated-item"> 938 <p class="generated-label"> </p> 939 <img src="generated_videos/2.png" alt="Input 2" class="generated-media"> 940 </div> 941 <div class="generated-item"> 942 <p class="generated-label">
942Input Image (static scenes)</p> 943 <img src="generated_videos/3.png" alt="Input 3" class="generated-media"> 944 </div> 945 <div class="generated-item"> 946 <p class="generated-label"> </p> 947 <img src="generated_videos/4.png" alt="Input 4" class="generated-media"> 948 </div> 949 <div class="generated-item"> 950 <p class="generated-label"> </p> 951 <img src="generated_videos/5.png" alt="Input 5" class="generated-media"> 952 </div> 953 </div> 954 <div class="generated-row"> 955 <div class="generated-item"> 956 <p class="generated-label"> </p> 957 <video src="generated_videos/1.mp4" loop muted playsinline class="generated-media"></video> 958 </div> 959 <div class="generated-item"> 960 <p class="generated-label"> </p> 961 <video src="generated_videos/2.mp4" loop muted playsinline class="generated-media"></video> 962 </div> 963 <div class="generated-item"> 964 <p class="generated-label">Generated Videos</p> 965 <video src="generated_videos/3.mp4" loop muted playsinline class="generated-media"></video> 966 </div> 967 <div class="generated-item"> 968 <p class="generated-label"> </p> 969 <video src="generated_videos/4.mp4" loop muted playsinline class="generated-media"></video> 970 </div> 971 <div class="generated-item"> 972 <p class="generated-label"> </p> 973 <video src="generated_videos/5.mp4" loop muted playsinline class="generated-media"></video> 974 </div> 975 </div> 976 </div> 977 978 <div class="generated-group sync-row"> 979 <div class="generated-row"> 980 <div class="generated-item"> 981 <p class="generated-label"> </p> 982 <img src="generated_videos/6.png" alt="Input 6" class="generated-media"> 983 </div> 984 <div class="generated-item"> 985 <p class="generated-label"> </p> 986 <img src="generated_videos/7.png" alt="Input 7" class="generated-media"> 987 </div> 988 <div class="generated-item"> 989 <p class="generated-label">Input Image (dynamic scenes)</p> 990 <img src="generated_videos/8.png" alt="Input 8" class="generated-media"> 991 </div> 992 <div class="generated-item"> 993 <p class="generated-label"> </p> 994 <img src="generated_videos/9.png" alt="Input 9" class="generated-media"> 995 </div> 996 <div class="generated-item"> 997 <p class="generated-label"> </p> 998 <img src="generated_videos/10.png" alt="Input 10" class="generated-media"> 999 </div> 1000 </div> 1001 <div class="generated-row"> 1002 <div class="generated-item"> 1003 <p class="generated-label"> </p> 1004 <video src="generated_videos/6.mp4" loop muted playsinline class="generated-media"></video> 1005 </div> 1006 <div class="generated-item"> 1007 <p class="generated-label"> </p> 1008 <video src="generated_videos/7.mp4" loop muted playsinline class="generated-media"></video> 1009 </div> 1010 <div class="generated-item"> 1011 <p class="generated-label">Generated Videos</p> 1012 <video src="generated_videos/8.mp4" loop muted playsinline class="generated-media"></video> 1013 </div> 1014 <div class="generated-item"> 1015 <p class="generated-label"> </p> 1016 <video src="generated_videos/9.mp4" loop muted playsinline class="generated-media"></video> 1017 </div> 1018 <div class="generated-item"> 1019 <p class="generated-label"> </p> 1020 <video src="generated_videos/10.mp4" loop muted playsinline class="generated-media"></video> 1021 </div> 1022 </div> 1023 </div> 1024 </div> 1025 1026 <div class="teaser" id="ablation"> 1027 <div class="teaser-title">Ablation</div> 1028 <p class="teaser-description">Ablation study results.</p> 1029 1030 <div class="ablation-text"> 1031 We validate the effectiveness of our core designs: the <b>geo-motion augmented latents</b> and the <b>joint optimization strategy</b>. 1032 <br><br> 1033 As demonstrated in the visual comparison: 1034 <ul> 1035 <li> 1036 <strong>Base Finetuned:</strong> a finetuned version of the CogVideoX model. Results show <strong>unnatural motion</strong> and <strong>inconsistent appearance</strong> across frames. 1037 </li> 1038 <li> 1039 <strong>w/o Geo-Motion:</strong> relying solely on the RGB-only model (without geo-motion latents) leads to noticeable 1040 <strong>visual artifacts</strong> and <strong>ghosting</strong>, degrading scene stability. 1041 </li> 1042 <li> 1043 <strong>w/o Joint:</strong> skipping the joint training and regularization stage results in reduced subject consistency, causing 1044 <strong>incoherent motion</strong> particularly for dynamic objects and humans. 1045 </li> 1046 <li> 1047 <strong>WorldReel (Ours):</strong> by effectively aligning appearance and geometry, our full model produces the 1048 <strong>smoothest non-rigid motion</strong> and maintains natural, high-quality complex dynamics. 1049 </li> 1050 </ul> 1051 </div> 1052 1053 <div class="ablation-sample sync-row"> 1054 <div class="ablation-input-row"> 1055 <div class="ablation-item"> 1056 <p class="ablation-label">Input Image</p> 1057 <img src="ablation/condition_1.png" alt="Input Image 1" class="ablation-media"> 1058 </div> 1059 </div> 1060 <div class="ablation-row"> 1061 <div class="ablation-item"> 1062 <p class="ablation-label">Base Finetuned</p> 1063 <video src="ablation/finetuned_1.mp4" loop muted playsinline class="ablation-media"></video> 1064 </div> 1065 <div class="ablation-item"> 1066 <p class="ablation-label">w/o Geo-Motion</p> 1067 <video src="ablation/wo_geomotion_1.mp4" loop muted playsinline class="ablation-media"></video> 1068 </div> 1069 <div class="ablation-item"> 1070 <p class="ablation-label">w/o Joint</p> 1071 <video src="ablation/wo_joint_1.mp4" loop muted playsinline class="ablation-media"></video> 1072 </div> 1073 <div class="ablation-item"> 1074 <p class="ablation-label">WorldReel (ours)</p> 1075 <video src="ablation/ours_1.mp4" loop muted playsinline class="ablation-media"></video> 1076 </div> 1077 </div> 1078 </div> 1079 1080 <div class="ablation-sample sync-row"> 1081 <div class="ablation-input-row"> 1082 <div class="ablation-item"> 1083 <p class="ablation-label">Input Image</p> 1084 <img src="ablation/condition_2.png" alt="Input Image 2" class="ablation-media"> 1085 </div> 1086 </div> 1087 <div class="ablation-row"> 1088 <div class="ablation-item"> 1089 <p class="ablation-label">Base Finetuned</p> 1090 <video src="ablation/finetuned_2.mp4" loop muted playsinline class="ablation-media"></video> 1091 </div> 1092 <div class="ablation-item"> 1093 <p class="ablation-label">w/o Geo-Motion</p> 1094 <video src="ablation/wo_geomotion_2.mp4" loop muted playsinline class="ablation-media"></video> 1095 </div> 1096 <div class="ablation-item"> 1097 <p class="ablation-label">w/o Joint</p> 1098 <video src="ablation/wo_joint_2.mp4" loop muted playsinline class="ablation-media"></video> 1099 </div> 1100 <div class="ablation-item"> 1101 <p class="ablation-label">WorldReel (ours)</p> 1102 <video src="ablation/ours_2.mp4" loop muted playsinline class="ablation-media"></video> 1103 </div> 1104 </div> 1105 </div> 1106 1107 <div class="ablation-sample sync-row"> 1108 <div class="ablation-input-row"> 1109 <div class="ablation-item"> 1110 <p class="ablation-label">Input Image</p> 1111 <img src="ablation/condition_3.png" alt="Input Image 3" class="ablation-media"> 1112 </div> 1113 </div> 1114 <div class="ablation-row"> 1115 <div class="ablation-item"> 1116 <p class="ablation-label">Base Finetuned</p> 1117 <video src="ablation/finetuned_3.mp4" loop muted playsinline class="ablation-media"></video> 1118 </div> 1119 <div class="ablation-item"> 1120 <p class="ablation-label">w/o Geo-Motion</p> 1121 <video src="ablation/wo_geomotion_3.mp4" loop muted playsinline class="ablation-media"></video> 1122 </div> 1123 <div class="ablation-item"> 1124 <p class="ablation-label">w/o Joint</p> 1125 <video src="ablation/wo_joint_3.mp4" loop muted playsinline class="ablation-media"></video> 1126 </div> 1127 <div class="ablation-item"> 1128 <p class="ablation-label">WorldReel (ours)</p> 1129 <video src="ablation/ours_3.mp4" loop muted playsinline class="ablation-media"></video> 1130 </div> 1131 </div> 1132 </div> 1133 </div> 1134 1135 <div class="bibtex-block" id="bibtex"> 1136 <div class="teaser-title" style="margin: 0 0 0.75em 0;">BibTeX</div> 1137 <pre class="bibtex-code" id="bibtex-text">@article{fang2025worldreel, 1138 title={WorldReel: 4D Video Generation with Consistent Geometry and Motion Modeling}, 1139 author={Fang, Shaoheng and Jiang, Hanwen and Bai, Yunpeng and Mitra, Niloy J. and Huang, Qixing}, 1140 journal={arXiv preprint arXiv:2512.07821}, 1141 year={2025} 1142 }</pre> 1143 </div> 1144 1145
1145<script> 1146 document.addEventListener('DOMContentLoaded', () => { 1147 // Select all rows that require sync playback 1148 // We added the class 'sync-row' to ablation-sample and generated-group in the HTML above 1149 const syncRows = document.querySelectorAll('.sync-row'); 1150 1151 syncRows.forEach(row => { 1152 const videos = row.querySelectorAll('video'); 1153 1154 // Function to handle playing 1155 const playAll = () => { 1156 videos.forEach(v => { 1157 // Reset to start to ensure synchronization 1158 v.currentTime = 0; 1159 // Play the video 1160 const playPromise = v.play(); 1161 if (playPromise !== undefined) { 1162 playPromise.catch(error => { 1163 // Auto-play was prevented 1164 console.log('Autoplay prevented:', error); 1165 }); 1166 } 1167 }); 1168 }; 1169 1170 // Function to handle pausing 1171 const pauseAll = () => { 1172 videos.forEach(v => { 1173 v.pause(); 1174 }); 1175 }; 1176 1177 // Event Listeners for Mouse Enter/Leave 1178 row.addEventListener('mouseenter', playAll); 1179 row.addEventListener('mouseleave', pauseAll); 1180 }); 1181 1182 }); 1183 </script>
1183 1184 1185</body> 1186 1187</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.