1<!DOCTYPE html> 2<html> 3 4<head> 5 <meta charset="utf-8"> 6 <meta name="description" content="MemoryWAM"> 7 <meta name="keywords" content="Robot Learning, Manipulation"> 8 <meta name="viewport" content="width=device-width, initial-scale=1"> 9 <title>MemoryWAM</title> 10 11 <!-- Google tag (gtag.js) -->
vendor: 66 bytes, lines 11-12
11 12 <script async src="https://www.googletagmanager.com/gtag/js?id=
12G-QZ38WT2YPD
vendor: 14 bytes, lines 12-13
12"></script> 13
13<script> 14
vendor: 142 bytes, lines 14-17
14window.dataLayer = window.dataLayer || []; 15 function gtag() { dataLayer.push(arguments); } 16 gtag('js', new Date()); 17 gtag('config', '
17G-QZ38WT2YPD
vendor: 6 bytes, lines 17-18
17'); 18
18</script>
18 19 20 <link href="https://fonts.googleapis.com/css?family=Google+Sans|Noto+Sans|Castoro" rel="stylesheet"> 21 <link rel="stylesheet" href="./static/css/bulma.min.css"> 22 <link rel="stylesheet" href="./static/css/bulma-carousel.min.css"> 23 <link rel="stylesheet" href="./static/css/bulma-slider.min.css"> 24 <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jpswalsh/academicons@1/css/academicons.min.css"> 25 <link rel="stylesheet" href="./static/css/index.css"> 26 27 <style> 28 body { 29 background-color: #F8F8F6; 30 } 31 .subtitle.is-1.publication-title { 32 line-height: 1.2 !important; 33 max-height: none !important; 34 } 35 h1.subtitle.is-1.publication-title { 36 line-height: 1.2 !important; 37 max-height: none !important; 38 } 39 p, .subtitle, .content { 40 line-height: 1.4 !important; 41 } 42 .subtitle strong { 43 line-height: 1.7 !important; 44 } 45 @media screen and (min-width: 769px) { 46 .subtitle.is-1.publication-title { 47 line-height: 1.2 !important; 48 } 49 } 50 51 /* ===== PLY Viewers ===== */
52 #ply-viewers-container { 53 display: flex; 54 flex-direction: column; 55 gap: 2rem; 56 margin-top: 1rem; 57 } 58 .ply-viewer-row { 59 width: 100%; 60 } 61 .ply-label { 62 display: block; 63 text-align: center; 64 font-size: 1.05rem; 65 font-weight: 600; 66 color: #ccc; 67 margin-bottom: 0.5rem; 68 } 69 .ply-canvas-wrap { 70 width: 100%; 71 /* fallback for browsers that don't support aspect-ratio */ 72 height: 0; 73 padding-bottom: 56.25%; /* 16:9 */ 74 background: #1a1a2e; 75 border-radius: 12px; 76 overflow: hidden; 77 position: relative; 78 cursor: grab; 79 /* border: 1px solid rgba(96, 208, 171, 0.25); */ 80 } 81 .ply-canvas-wrap:active { 82 cursor: grabbing; 83 } 84 .ply-canvas-wrap canvas { 85 position: absolute; 86 top: 0; 87 left: 0; 88 width: 100% !important; 89 height: 100% !important; 90 } 91 .ply-loading { 92 position: absolute; 93 inset: 0; 94 display: flex; 95 align-items: center; 96 justify-content: center; 97 color: rgb(93, 144, 191); 98 font-size: 1rem; 99 font-family: sans-serif; 100 pointer-events: none; 101 z-index: 2; 102 } 103 .ply-loading.hidden { display: none; } 104 105 .bibtex-header { 106 display: flex; 107 justify-content: space-between; 108 align-items: center; 109 margin-bottom: 1rem; 110 } 111 /* æ ¸å¿ï¼Copy æé®çæ ·å¼ */ 112 .copy-bibtex-btn { 113 background-color: #2563eb; /* æ¼äº®çèè² */ 114 color: white; 115 border: none; 116 border-radius: 6px; /* åè§ */ 117 padding: 8px 16px; 118 font-size: 0.9rem; 119 font-weight: 600; 120 cursor: pointer; 121 display: inline-flex; 122 align-items: center; 123 gap: 6px; /* 徿 åæåçé´è· */ 124 transition: background-color 0.2s; 125 } 126 127 /* é¼ æ æ¬åæ¶çææ */ 128 .copy-bibtex-btn:hover { 129 background-color: #1d4ed8; /* æ·±ä¸ç¹çèè² */ 130 } 131 132 /* ===== Video Progress Bar ===== */ 133 .video-wrap { 134 position: relative; 135 line-height: 0; 136 } 137 .video-progress { 138 position: absolute; 139 bottom: 0; 140 left: 0; 141 right: 0; 142 height: 4px; 143 background: rgba(200, 200, 200, 0.45); 144 cursor: pointer; 145 opacity: 0; 146 transition: opacity 0.2s, height 0.15s; 147 z-index: 10; 148 } 149 .video-wrap:hover .video-progress { 150 opacity: 1; 151 height: 6px; 152 } 153 .video-progress-fill { 154 height: 100%; 155 background: rgb(93, 144, 191); 156 width: 0%; 157 pointer-events: none; 158 position: relative; 159 } 160 .video-progress-fill::after { 161 content: ''; 162 position: absolute; 163 right: -6px; 164 top: 50%; 165 transform: translateY(-50%); 166 width: 12px; 167 height: 12px; 168 border-radius: 50%; 169 background: #F8F8F6; 170 border: 2px solid rgb(93, 144, 191); 171 opacity: 0; 172 transition: opacity 0.2s; 173 } 174 .video-wrap:hover .video-progress-fill::after { 175 opacity: 1; 176 } 177 178 /* 代ç åæ ·å¼ */ 179 pre { 180 background-color: #f5f5f5; 181 padding: 1.5rem; 182 border-radius: 8px; 183 overflow-x: auto; 184 font-family: monospace; 185 font-size: 0.9em; 186 color: #333; 187 border: 1px solid #eee; 188 } 189 </style> 190 191
191<script src="https://kit.fontawesome.com/19914a84eb.js" crossorigin="anonymous"></script>
191 192
192<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
192 193
193<script src="./static/js/bulma-carousel.min.js"></script>
193 194
194<script src="./static/js/bulma-slider.min.js"></script>
194 195
195<script src="./static/js/index.js"></script>
195 196</head> 197 198<body> 199 200<section class="hero is-link is-fullheight video" style="overflow: hidden; position:relative;"> 201 <div class="hero-video" style="width: 100%; height: 100%; min-width: 100%; min-height: 100%;"> 202 <video playsinline autoplay muted loop> 203 <source src="./static/videos/highlight.mp4" type="video/mp4"> 204 </video> 205 </div> 206 207 <div class="overlay"></div> 208 <div class="hero-head is-hidden-mobile"> 209 <header class="navbar"> 210 <div class="container is-size-5"> 211 <div class="navbar-menu"> 212 <div class="navbar-end"> 213 <a class="button is-large" style="background: rgba(255,255,255,0.15); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.3); color: white;" href="http://arxiv.org/abs/2606.20562"> 214 <span class="icon" style="margin-right:5px;"> 215 <img src="./static/images/arxiv.svg" alt="ArXiv" /> 216 </span> 217 <span>arXiv</span> 218 </a> 219 <a class="button is-large" style="background: rgba(255,255,255,0.15); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,0.3); color: white;" href="https://github.com/yangsizhe/MemoryWAM"> 220 <span class="icon" style="margin-right:5px;"> 221 <img src="./static/images/github.svg" alt="Code" /> 222 </span> 223 <span>Code</span> 224 </a> 225 </div> 226 </div> 227 </div> 228 </header> 229 </div> 230 231 <div class="hero-body"> 232 <div class="container has-text-centered"> 233 <br><br><br><br><br><br><br> 234 <h1 class="title is-1 publication-title is-size-1-mobile" style="font-size: 4rem; line-height: 1.1;"> 235 <em><strong style="color: rgb(93, 144, 191);">MemoryWAM</strong>:</em> 236 </h1> 237 <h1 class="subtitle is-1 publication-title is-size-4-mobile" style="font-size: 3rem; line-height: 1.2 !important; max-height: none !important;"> 238 Efficient World Action Modeling with <br> 239 Persistent Memory 240 </h1> 241 <!-- <h1 class="is-2 is-italic is-size-4-mobile" style="font-size: 3rem; opacity: 80%; line-height: 1.2 !important;"> 242 RSS 2026 243 </h1> --> 244 </div> 245 </div> 246 247 <div class="hero-foot is-hidden-mobile"> 248 <nav class="tabs is-boxed is-fullwidth is-size-5" style="background: rgba(255,255,255,0.15); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);"> 249 <ul> 250 <li><a href="#overview"><strong>Overview</strong></a></li> 251 <li><a href="#method"><strong>Method</strong></a></li> 252 <li><a href="#qualitative_comparison"><strong>Results</strong></a></li> 253 <li><a href="#application"><strong>Demo</strong></a></li> 254 </ul> 255 </nav> 256 </div> 257</section> 258 259 260<section class="section is-medium" id="overview"> 261 <div class="container is-max-widescreen"> 262 <div class="columns is-centered"> 263 <div class="column is-four-fifths"> 264 <figure class="image"> 265 <img src="static/images/teaser.jpg" alt="Overview"> 266 </figure> 267 </div> 268 </div> 269 <div class="columns is-centered"> 270 <div class="column is-four-fifths has-text-justified is-hidden-mobile"> 271 <h2 class="subtitle" style="line-height: 1.5;"> 272 <strong style="color: rgb(93, 144, 191); font-size: 1.5em;">MemoryWAM</strong> is a world action model with <strong style="color: rgb(93, 144, 191); font-size: 1.05em;">efficient persistent memory</strong> for robotic manipulation. 273 <br><br> 274 Its hybrid memory design combines recent frames, event-boundary anchors, and compact gist tokens, <strong style="color: rgb(93, 144, 191); font-size: 1.05em;">reducing inference complexity from O(N) to O(N/d) while preserving long-range context</strong>. 275 <br><br> 276 MemoryWAM <strong style="color: rgb(93, 144, 191); font-size: 1.05em;">outperforms strong VLA and WAM baselines</strong> on long-horizon, memory-dependent tasks in both simulation and the real world. 277 </h2> 278 </div> 279 </div> 280 </div> 281</section> 282 283 284<section class="section is-small" id="method">
285 <div class="container is-max-widescreen"> 286 <div class="columns is-centered"> 287 <div class="column is-four-fifths is-centered"> 288 <h2 class="title is-3 has-text-centered is-size-5-mobile title-with-lines" style="color: rgb(93, 144, 191);">Method</h2> 289 <br> 290 <figure class="image"> 291 <img src="static/images/pipeline.jpg" alt="Pipeline"> 292 </figure> 293 <br> 294 <div class="content has-text-justified"> 295 <p style="font-size: 1.1rem; line-height: 1.5;"> 296 <strong style="color: rgb(93, 144, 191); font-size: 1.05em;">Model Architecture.</strong> Observations are first encoded into compact video latents by a causal video VAE. A video DiT processes visual dynamics and maintains a temporal KV cache, while an action DiT generates action chunks conditioned on the cached video representations. The two branches are organized in a mixture-of-transformers (MoT) architecture. During inference, the clean latent of the current observation is forwarded through the video DiT only once to update the KV cache; the action DiT then predicts the action chunk by denoising action tokens while attending to the cached video representations. Video generation is bypassed at inference time. 297 </p> 298 <p style="font-size: 1.1rem; line-height: 1.5;"> 299 <strong style="color: rgb(93, 144, 191); font-size: 1.05em;">Hybrid Memory.</strong> Inspired by complementary forms of human memory, MemoryWAM maintains a compact temporal cache comprising three components: (1) <em>short-term memory</em>âa sliding-window cache over the most recent frames, preserving high-fidelity local context for immediate closed-loop control; (2) <em>event-boundary memory</em>âa small set of anchor frames at task onset with full visual tokens, grounding key information in the instruction; and (3) <em>gist memory</em>â<em>M</em> learnable gist tokens per frame (<em>M</em> ⪠<em>L</em>, the number of visual tokens) that compress long-range history, reducing the KV cache by <em>L/M</em>à compared with full-history attention. 300 </p> 301 </div> 302 <figure class="image" style="display: flex; justify-content: center;"> 303 <img src="static/images/attn_mask.jpg" alt="Attention Mask" style="width: 50%; height: auto;"> 304 </figure> 305 <br> 306 <div class="content has-text-justified"> 307 <p style="font-size: 1.1rem; line-height: 1.5;"> 308 <strong style="color: rgb(93, 144, 191); font-size: 1.05em;">Attention mask of MemoryWAM.</strong> Each frame's gist tokens attend to both the frame's visual tokens and its historical context, thereby distilling long-range information into a compact representation. For a video frame that is neither an anchor frame nor a recent frame, subsequent video and action tokens do not attend to it directly; instead, they attend to the corresponding gist tokens. During inference, MemoryWAM evicts the KV cache of such frames while preserving the KV cache of their gist tokens, so that long-range history is retained as a compact persistent memory rather than as a costly full-token KV cache. 309 </p> 310 </div> 311 </div> 312 </div> 313 </div> 314</section> 315 316 317<section class="section is-small" id="qualitative_comparison"> 318 <div class="container is-max-widescreen"> 319 <div class="columns is-centered"> 320 <div class="column is-four-fifths is-centered"> 321 <h2 class="title is-3 has-text-centered is-size-5-mobile title-with-lines" style="color: rgb(93, 144, 191);">Results</h2> 322 <br> 323 <div class="table-container"> 324 <table class="table is-bordered is-striped is-hoverable is-fullwidth" style="font-size: 1rem; text-align: center;"> 325 <caption style="caption-side: top; font-weight: bold; margin-bottom: 0.5em;">Results on RMBench. We report the success rates over 100 rollouts.</caption> 326 <thead> 327 <tr style="background-color: #f0f0f0;"> 328 <th style="text-align: left;">Task</th> 329 <th>Ï<sub>0.5</sub></th> 330 <th>FastWAM</th> 331 <th>Lingbot-VA</th> 332 <th>MemoryWAM (Ours)</th> 333 </tr> 334 </thead> 335 <tbody> 336 <tr> 337 <td style="text-align: left;">Observe and Pick Up</td> 338 <td>9%</td> 339 <td>0%</td> 340 <td>13%</td> 341 <td><strong>27%</strong></td> 342 </tr> 343 <tr> 344 <td style="text-align: left;">Rearrange Blocks</td> 345 <td>13%</td> 346 <td>0%</td> 347 <td><strong>100%</strong></td> 348 <td><strong>100%</strong></td> 349 </tr> 350 <tr> 351 <td style="text-align: left;">Put Back Block</td> 352 <td>11%</td> 353 <td>0%</td> 354 <td><strong>100%</strong></td> 355 <td><strong>100%</strong></td> 356 </tr> 357 <tr> 358 <td style="text-align: left;">Swap Blocks</td> 359 <td>24%</td> 360 <td>0%</td> 361 <td>99%</td> 362 <td><strong>100%</strong></td> 363 </tr> 364 <tr> 365 <td style="text-align: left;">Swap T</td> 366 <td>15%</td> 367 <td>7%</td> 368 <td>88%</td> 369 <td><strong>94%</strong></td> 370 </tr> 371 <tr> 372 <td style="text-align: left;">Battery Try</td> 373 <td>16%</td> 374 <td>20%</td> 375 <td><strong>41%</strong></td> 376 <td><strong>41%</strong></td> 377 </tr> 378 <tr> 379 <td style="text-align: left;">Blocks Ranking Try</td> 380 <td>6%</td> 381 <td>26%</td> 382 <td><strong>100%</strong></td> 383 <td><strong>100%</strong></td> 384 </tr> 385 <tr> 386 <td style="text-align: left;">Cover Blocks</td> 387 <td>0%</td> 388 <td>0%</td> 389 <td>79%</td> 390 <td><strong>98%</strong></td> 391 </tr> 392 <tr> 393 <td style="text-align: left;">Press Button</td> 394 <td>0%</td> 395 <td>0%</td> 396 <td>84%</td> 397 <td><strong>87%</strong></td> 398 </tr> 399 <tr style="font-style: italic; font-weight: bold;"> 400 <td style="text-align: left;"><em><strong>Average</strong></em></td> 401 <td>10.4%</td> 402 <td>5.9%</td> 403 <td>78.2%</td> 404 <td><strong>83.0%</strong></td> 405 </tr> 406 </tbody> 407 </table> 408 </div> 409 <div class="content has-text-justified"> 410 <p style="font-size: 1.1rem; line-height: 1.5;"> 411 We evaluate MemoryWAM on <strong>RMBench</strong>, a simulation benchmark for long-horizon, memory-dependent robotic manipulation across nine dual-arm tasks. Baselines with bounded observation windows (<strong>Ï<sub>0.5</sub></strong>, <strong>FastWAM</strong>) fail on most tasks, achieving only 10.4% and 5.9% average success. <strong>LingBot-VA</strong>, which retains the full historical KV cache, achieves strong performance at 78.2%. <strong style="color: rgb(93, 144, 191);">MemoryWAM further improves by 4.8 percentage points to 83.0%</strong>, achieving leading results on every task â demonstrating that the proposed hybrid memory mechanism is both efficie
411nt and effective for robotic manipulation. 412 </p> 413 </div> 414 415 <br> 416 417 <figure class="image" style="display: flex; justify-content: center;"> 418 <img src="static/images/efficiency.jpg" alt="Efficiency"> 419 </figure> 420 <br> 421 <div class="content has-text-justified"> 422 <p style="font-size: 1.1rem; line-height: 1.5;"> 423 We compare MemoryWAM's hybrid memory against full attention, TTT, and RNN-based mechanisms in terms of inference latency, GPU memory usage, and task performance. TTT and RNN maintain constant complexity but introduce overhead even for short trajectories. Full attention scales poorly with trajectory length. <strong style="color: rgb(93, 144, 191);">Hybrid memory achieves the same 87% success rate as full attention on the challenging Press Button task, while being substantially more efficient</strong> â even outperforming RNN- and TTT-based alternatives at 1,600 frames. 424 </p> 425 </div> 426 427 428 429 </div> 430 </div> 431 </div> 432</section> 433 434 435<section class="section is-small" id="application"> 436 <div class="container is-max-widescreen"> 437 <div class="columns is-centered"> 438 <div class="column is-four-fifths is-centered"> 439 <h2 class="title is-3 has-text-centered is-size-5-mobile title-with-lines" style="color: rgb(93, 144, 191);">Demo</h2> 440 <br> 441 442 <div style="display: flex; align-items: center; gap: 2rem; margin-bottom: 1.5rem;"> 443 <div style="flex: 0 0 40%;"> 444 <video autoplay muted loop playsinline style="width: 100%; height: auto; display: block;"> 445 <source src="./static/videos/real/shell_game_fast_crop_compressed.mp4" type="video/mp4"> 446 </video> 447 </div> 448 <div style="flex: 1; font-size: 1rem; line-height: 1.6; color: #333;"> 449 <p>"Play the shell game."</p> 450 </div> 451 </div> 452 453 <div style="display: flex; align-items: center; gap: 2rem; margin-bottom: 1.5rem;"> 454 <div style="flex: 0 0 40%;"> 455 <video autoplay muted loop playsinline style="width: 100%; height: auto; display: block;"> 456 <source src="./static/videos/real/look_and_press_two_fast_crop_compressed.mp4" type="video/mp4"> 457 </video> 458 </div> 459 <div style="flex: 1; font-size: 1rem; line-height: 1.6; color: #333;"> 460 <p>"Look at the two numbers on the table. Press the left button as many times as the number on the left, and press the right button as many times as the number on the right. Then press the rear button once to confirm."</p> 461 </div> 462 </div> 463 464 <br> 465 466 <div style="display: flex; align-items: center; gap: 2rem; margin-bottom: 1.5rem;"> 467 <div style="flex: 0 0 40%;"> 468 <video autoplay muted loop playsinline style="width: 100%; height: auto; display: block;"> 469 <source src="./static/videos/sim/observe_and_pick_up.mp4" type="video/mp4"> 470 </video> 471 </div> 472 <div style="flex: 1; font-size: 1rem; line-height: 1.6; color: #333;"> 473 <p>"Initially, there is one target object on the shelf and five random objects on the table. Then, a screen obscures the target object. Pick up the corresponding target object from the table and lift it up."</p> 474 </div> 475 </div> 476 477 <div style="display: flex; align-items: center; gap: 2rem; margin-bottom: 1.5rem;"> 478 <div style="flex: 0 0 40%;"> 479 <video autoplay muted loop playsinline style="width: 100%; height: auto; display: block;"> 480 <source src="./static/videos/sim/rearrange_blocks.mp4" type="video/mp4"> 481 </video> 482 </div> 483 <div style="flex: 1; font-size: 1rem; line-height: 1.6; color: #333;"> 484 <p>"Move the block between the two mats onto the empty mat, press the button, then move the other block (the one that started on a mat) to the space between the two mats."</p> 485 </div> 486 </div> 487 488 <div style="display: flex; align-items: center; gap: 2rem; margin-bottom: 1.5rem;"> 489 <div style="flex: 0 0 40%;">
490 <video autoplay muted loop playsinline style="width: 100%; height: auto; display: block;"> 491 <source src="./static/videos/sim/put_back_block.mp4" type="video/mp4"> 492 </video> 493 </div> 494 <div style="flex: 1; font-size: 1rem; line-height: 1.6; color: #333;"> 495 <p>"There are four mats, one block, and a button on the table. One block is on one of the mats. First, put the block to the center, then press the button. Then, put the block back in its original position."</p> 496 </div> 497 </div> 498 499 <div style="display: flex; align-items: center; gap: 2rem; margin-bottom: 1.5rem;"> 500 <div style="flex: 0 0 40%;"> 501 <video autoplay muted loop playsinline style="width: 100%; height: auto; display: block;"> 502 <source src="./static/videos/sim/swap_blocks.mp4" type="video/mp4"> 503 </video> 504 </div> 505 <div style="flex: 1; font-size: 1rem; line-height: 1.6; color: #333;"> 506 <p>"There are three traies on the table, and two blocks are placed in two different traies. You may move only one block at a time, and each tray can hold at most one block. Swap the positions of the two blocks. Finally press the button."</p> 507 </div> 508 </div> 509 510 <div style="display: flex; align-items: center; gap: 2rem; margin-bottom: 1.5rem;"> 511 <div style="flex: 0 0 40%;"> 512 <video autoplay muted loop playsinline style="width: 100%; height: auto; display: block;"> 513 <source src="./static/videos/sim/swap_T.mp4" type="video/mp4"> 514 </video> 515 </div> 516 <div style="flex: 1; font-size: 1rem; line-height: 1.6; color: #333;"> 517 <p>"Swap the poses of the two T-blocks, including both position and orientation."</p> 518 </div> 519 </div> 520 521 <div style="display: flex; align-items: center; gap: 2rem; margin-bottom: 1.5rem;"> 522 <div style="flex: 0 0 40%;"> 523 <video autoplay muted loop playsinline style="width: 100%; height: auto; display: block;"> 524 <source src="./static/videos/sim/battery_try.mp4" type="video/mp4"> 525 </video> 526 </div> 527 <div style="flex: 1; font-size: 1rem; line-height: 1.6; color: #333;"> 528 <p>"There are two batteries and a battery slot on the table. Combining the two batteries in different orientations causes the dashboard needle to rotate."</p> 529 </div> 530 </div> 531 532 <div style="display: flex; align-items: center; gap: 2rem; margin-bottom: 1.5rem;"> 533 <div style="flex: 0 0 40%;"> 534 <video autoplay muted loop playsinline style="width: 100%; height: auto; display: block;"> 535 <source src="./static/videos/sim/blocks_ranking_try.mp4" type="video/mp4"> 536 </video> 537 </div> 538 <div style="flex: 1; font-size: 1rem; line-height: 1.6; color: #333;"> 539 <p>"There is a button and three colored cubes arranged in a random row on the table. Each time the cubes are rearranged, the arm presses the button until the arrangement is successful."</p> 540 </div> 541 </div> 542 543 <div style="display: flex; align-items: center; gap: 2rem; margin-bottom: 1.5rem;"> 544 <div style="flex: 0 0 40%;"> 545 <video autoplay muted loop playsinline style="width: 100%; height: auto; display: block;"> 546 <source src="./static/videos/sim/cover_blocks.mp4" type="video/mp4"> 547 </video> 548 </div> 549 <div style="flex: 1; font-size: 1rem; line-height: 1.6; color: #333;"> 550 <p>"On the table, red, green, and blue blocks are arranged randomly along with three lids. From the current viewpoint, cover the blocks from left to right using the lids, and then uncover them again in the sequence red, green, and blue."</p> 551 </div> 552 </div> 553 554 <div style="display: flex; align-items: center; gap: 2rem; margin-bottom: 1.5rem;"> 555 <div style="flex: 0 0 40%;"> 556 <video autoplay muted loop playsinline style="width: 100%; height: auto; display: block;"> 557 <source src="./static/videos/sim/press_button.mp4" type="video/mp4"> 558 </video> 559 </div> 560 <div style="flex: 1; font-size: 1rem; line-height: 1.6; color: #333;"> 561 <p>"Observe the two numbers on the table. Press the left button the number of times corresponding to the number on the left, and press the middle button the number of times corresponding to the number on the right. Then press the right button once to confirm."</p> 562 </div> 563 </div> 564 565 </div> 566 </div> 567 </div> 568</section> 569 570 571<section class="section is-small"> 572 <div class="container is-max-widescreen"> 573 <h2 class="title is-3 is-size-4-mobile">Our Team</h2> 574 <div class="container has-text-centered"> 575 <div class="publication-authors is-flex justify-content is-justify-content-space-around is-hidden-mobile"> 576 <div class="author-block has-text-centered has-addons-centered">Sizhe Yang<sup>1,*</sup></div> 577 <div class="author-block has-text-centered has-addons-centered">Juncheng Mu<sup>2,*</sup></div> 578 <div class="author-block has-text-centered has-addons-centered">Tianming Wei<sup>2</sup></div> 579 <div class="author-block has-text-centered has-addons-centered">Chenhao Lu<sup>
5792</sup></div> 580 <div class="author-block has-text-centered has-addons-centered">Xiaofan Li<sup>3</sup></div> 581 <div class="author-block has-text-centered has-addons-centered">Linning Xu<sup>1</sup></div> 582 </div> 583 <div class="publication-authors is-flex justify-content is-justify-content-space-around is-hidden-mobile"> 584 <div class="author-block has-text-centered has-addons-centered">Zhengrong Xue<sup>2</sup></div> 585 <div class="author-block has-text-centered has-addons-centered">Zhecheng Yuan<sup>2</sup></div> 586 <div class="author-block has-text-centered has-addons-centered">Dahua Lin<sup>1</sup></div> 587 <div class="author-block has-text-centered has-addons-centered">Jiangmiao Pang<sup>1</sup></div> 588 <div class="author-block has-text-centered has-addons-centered">Huazhe Xu<sup>2</sup></div> 589 </div> 590 <div class="publication-authors" style="margin-top: 0.5rem;"> 591 <span class="author-block"><sup>1</sup>The Chinese University of Hong Kong, </span> 592 <span class="author-block"><sup>2</sup>Tsinghua University, </span> 593 <span class="author-block"><sup>3</sup>Zhejiang University</span> 594 <br> 595 <span class="author-block" style="color: gray; display: inline-block; margin-top: 0.3rem;"><sup>*</sup> equal contribution</span> 596 <br> 597 </div> 598 </div> 599 <br> 600 <p>If you have any questions, please contact <a href="https://yangsizhe.github.io/">Sizhe Yang</a>.</p> 601 </div> 602</section> 603 604<section class="section is-small" id="BibTeX"> 605 <div class="container is-max-widescreen"> 606 <div class="bibtex-header"> 607 <h2 class="title">BibTeX</h2> 608 <button class="copy-bibtex-btn" onclick="copyBibTeX()" title="Copy BibTeX to clipboard"> 609 <i class="fas fa-copy"></i> 610 <span class="copy-text">Copy</span> 611 </button> 612 </div> 613 <pre id="bibtex-code"><code> 614@article{yang2026memorywam, 615 title={MemoryWAM: Efficient World Action Modeling with Persistent Memory}, 616 author={Yang, Sizhe and Mu, Juncheng and Wei, Tianming and Lu, Chenhao and Li, Xiaofan and Xu, Linning and Xue, Zhengrong and Yuan, Zhecheng and Lin, Dahua and Pang, Jiangmiao and Xu, Huazhe}, 617 journal={arXiv preprint arXiv:2606.20562}, 618 year={2026} 619} 620 </code></pre> 621 </div> 622</section> 623 624<footer class="footer"> 625 <div class="container is-max-widescreen"> 626 <div class="columns is-centered"> 627 <div class="column is-8"> 628 <div class="content"> 629 <p>Website template modified from <a href="https://nerfies.github.io/">NeRFies</a> and <a href="https://github.com/umi-on-legs/umi-on-legs.github.io/">UMI on Legs</a>.</p> 630 <p>This website is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p> 631 </div> 632 </div> 633 </div> 634 </div> 635</footer> 636
637<script> 638(function () { 639 function initVideoProgress(video) { 640 var wrap = document.createElement('div'); 641 wrap.className = 'video-wrap'; 642 video.parentNode.insertBefore(wrap, video); 643 wrap.appendChild(video); 644 645 var bar = document.createElement('div'); 646 bar.className = 'video-progress'; 647 var fill = document.createElement('div'); 648 fill.className = 'video-progress-fill'; 649 bar.appendChild(fill); 650 wrap.appendChild(bar); 651 652 // rAF loop: smooth 60fps fill update during playback 653 var dragging = false; 654 var dragRatio = 0; 655 var latestRatio = null; // newest ratio waiting to be seeked 656 657 (function loop() { 658 if (!dragging && video.duration) { 659 fill.style.width = (video.currentTime / video.duration * 100) + '%'; 660 } 661 requestAnimationFrame(loop); 662 })(); 663 664 // When a seek finishes, immediately apply the latest ratio (if any) 665 video.addEventListener('seeked', function () { 666 if (dragging && latestRatio !== null && video.duration) { 667 video.currentTime = latestRatio * video.duration; 668 latestRatio = null; 669 } 670 }); 671 672 function getRatio(clientX) { 673 var rect = bar.getBoundingClientRect(); 674 return Math.max(0, Math.min((clientX - rect.left) / rect.width, 1)); 675 } 676 677 function onDragMove(clientX) { 678 dragRatio = getRatio(clientX); 679 // Update fill immediately â no waiting for video 680 fill.style.width = (dragRatio * 100) + '%'; 681 if (video.duration) { 682 if (!video.seeking) { 683 // No seek in flight: issue immediately 684 video.currentTime = dragRatio * video.duration; 685 latestRatio = null; 686 } else { 687 // Seek in flight: remember latest position, apply in 'seeked' handler 688 latestRatio = dragRatio; 689 } 690 } 691 } 692 693 bar.addEventListener('mousedown', function (e) { 694 dragging = true; 695 video.pause(); 696 onDragMove(e.clientX); 697 e.preventDefault(); 698 }); 699 document.addEventListener('mousemove', function (e) { 700 if (dragging) onDragMove(e.clientX); 701 }); 702 document.addEventListener('mouseup', function () { dragging = false; }); 703 704 bar.addEventListener('touchstart', function (e) { 705 dragging = true; 706 video.pause(); 707 onDragMove(e.touches[0].clientX); 708 e.preventDefault(); 709 }, { passive: false }); 710 bar.addEventListener('touchmove', function (e) { 711 onDragMove(e.touches[0].clientX); 712 e.preventDefault(); 713 }, { passive: false }); 714 bar.addEventListener('touchend', function () { dragging = false; }); 715 } 716 717 function init() { 718 document.querySelectorAll('#application video').forEach(initVideoProgress); 719 } 720 721 if (document.readyState === 'loading') { 722 document.addEventListener('DOMContentLoaded', init); 723 } else { 724 init(); 725 } 726})(); 727</script>
727 728
729<script type="importmap"> 730 { 731 "imports": { 732 "three": "https://unpkg.com/[email protected]/build/three.module.js", 733 "three/addons/": "https://unpkg.com/[email protected]/examples/jsm/" 734 } 735 } 736</script>
736 737
738<script> 739 function copyBibTeX() { 740 const codeBlock = document.getElementById('bibtex-code'); 741 const text = codeBlock.innerText; 742 743 navigator.clipboard.writeText(text).then(() => { 744 // å¤å¶æååçç®ååé¦ï¼å¯éï¼ 745 const btn = document.querySelector('.copy-bibtex-btn span'); 746 const originalText = btn.innerText; 747 btn.innerText = 'Copied!'; 748 setTimeout(() => { 749 btn.innerText = originalText; 750 }, 2000); 751 }).catch(err => { 752 console.error('Failed to copy: ', err); 753 }); 754 } 755</script>
755 756 757</body> 758</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.