PageSourceSearch

https://yangsizhe.github.io/MemoryWAM/

html yangsizhe.github.io collected 2026-10-03 10:12:18 UTC 33,046 bytes, 758 lines download raw bytes

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.