ActionRoPE: Action as Coordinates for Spatially Consistent Control in Planar-Camera Game World Models

Parameter-free action control for top-down and isometric game world models
Zhiyang Deng1,2,†Yuzhe Wu1,2,†Zijun Lin1,3,†Yeying Jin1,2,‡,*
1Tencent2National University of Singapore3Nanyang Technological University
†Work done during research internships at Tencent.‡Project lead.*Corresponding author.
teaser

Figure 1. ActionRoPE writes the action-driven camera displacement into world-coordinate rotary positions, so tokens at the same world location share the same positional address across time. CNS then lowers the noise level of tokens whose world position was already observed in the first frame.

0
parameters added on the control path
−66%
revisit drift vs. the strongest learned baseline
4
video backbones, 1.3B – 33B, one recipe
982
validation first frames × 3 control exams
Abstract

Game world models have made rapid progress toward real-time interactive generation. Yet action control is still predominantly implemented as feature conditioning, leaving the model to learn from training data how each action should move the visual world. This formulation is poorly matched to a broad class of planar-camera worlds, such as top-down and isometric games. In these worlds, player motion induces a geometrically well-defined planar camera displacement. We observe that the key to spatially consistent control in such worlds is to represent the effect of each action directly in world coordinates. To this end, we introduce ActionRoPE, a parameter-free action interface that converts action-driven camera displacement into world-coordinate rotary positions. As a result, tokens corresponding to the same world location retain the same positional address across time. These world coordinates further expose a spatial asymmetry in generation: regions covered by the initial observation are geometrically known, while newly revealed regions remain to be synthesized. We therefore propose Coordinate-Conditioned Noise Scheduling (CNS), which assigns token-wise denoising schedules according to this known–new structure. It allows observed regions to stabilize earlier, while new content is generated against an increasingly coherent world. Compared with four representative action-conditioning mechanisms on the same backbone, our approach follows the commanded motion more faithfully and reduces the revisit drift by 66% over the strongest baseline, without adding parameters to the control path. The same interface transfers across video backbones from 1.3B to 33B parameters and to out-of-distribution scenes.

Method

Action as coordinates

ActionRoPE. In a planar-camera world every action moves the camera by a known displacement Δk. Instead of feeding the action as a feature, we shift the rotary position of every token of latent frame k by Δk/32 on the screen grid. A token that looks at the same place in the world therefore keeps the same positional address in every frame, and the first frame becomes the origin the whole clip is anchored to. Nothing is learned for the interface itself.

Known versus new. Once positions live in world coordinates, each token is either inside the footprint of the first frame (its content is known) or outside it (it has to be synthesised). This map κ is computed geometrically and is free.

CNS. Coordinate-conditioned noise scheduling gives known tokens a schedule that settles earlier while new tokens keep the standard one, so new content is generated against an increasingly coherent world. The same map is also passed to the network as a zero-initialised input channel (15K parameters, 3 ppm of the backbone) so the denoiser knows which tokens are anchors as well as when they settle.

method

Figure 2. Left: the action interface places each frame's tokens on the screen grid shifted by the accumulated displacement. Right: token-wise schedules for known and new regions.

Quantitative results

Three control exams on 982 first frames

Every model receives one validation first frame and an action sequence. Gain: walk right at 0.5×–1.5× speed, regress measured against commanded displacement. Direction: walk straight, measure the angle of the background flow. Revisit: walk out and return along the same path, compare the last frame with the first.

MethodParamsslopeR²angle ↓fail ↓PSNR ↑SSIM ↑NCC ↑DINO ↑drift ↓
Prompt00.911−8.462.192720.980.6130.6840.85226.6
Linear+0.18M0.8570.573.123920.400.5850.6250.83435.3
AdaLN+66.5M0.784−0.521.92721.110.6040.6850.86222.6
Cross-Attn+98.6M0.798−7.183.055719.480.5290.5150.81740.2
ActionRoPE + CNS (ours)0†0.9810.9520.68523.940.6910.8310.8927.8

Table 1. Action injection mechanisms on a shared Wan2.2-TI2V-5B backbone (same data, recipe and seed; 982 validation first frames). slope / R²: measured against commanded displacement over five speed multipliers; angle: median direction error in degrees; fail: videos off by more than 15° or short of half the distance; PSNR / SSIM / NCC / DINO / drift: returned frame against the first frame after a walk-out-and-return loop. †No parameters on the control path; the optional known/new mask channel adds 0.015M.

BackboneTrainingslopeR²angle ↓PSNR ↑SSIM ↑NCC ↑DINO ↑drift ↓
SkyReels-V2-DF · 1.3Bfull1.0470.9191.4622.400.6480.7570.85815.3
Wan2.2-TI2V · 5Bfull0.9810.9520.6823.940.6910.8310.8927.8
LTX-2.5 · 22BLoRA1.0140.8450.5923.550.7170.8100.80012.8
MiniMax-H3 · 33B‡LoRA1.0820.8611.9021.970.6470.7260.83122.0

Table 2. The full model (ActionRoPE + CNS) trained with one recipe on four video DiTs spanning 1.3B–33B parameters, evaluated on the same 982 first frames. ‡MiniMax-H3 only generates 17n+5 frames: the 81-frame action plan is time-compressed to 73 frames and the output resampled to 81 frames for measurement.

Qualitative I

Against learned action-injection baselines

Same Wan2.2-5B backbone, same data, same recipe. Prompt, additive linear, AdaLN and cross-attention injection learn a mapping from action to motion; ActionRoPE writes it into the coordinates. In every row the first frame and the command are identical; the highlighted column is ours.

Videos play when scrolled into view · 81 frames at 16 fps · 832×480
revisit error maps

Figure 3. Closed-loop revisit. Top of each row: the returned frame; bottom: absolute error to the first frame (blue low, red high). Ours returns to a frame that differs from the origin only along thin structure edges; every learned mechanism leaves the world displaced or partially re-drawn.

Scene 1
→walk right · 40 f←walk left · 40 f⌂back at start

Under each clip: cumulative background displacement measured from the video (solid) against the commanded trajectory (dashed), frame 0 to 80. A curve that stays on the dashed line follows the commanded speed and, on the return loops, comes back to the origin; the baselines drift off it. End error = distance between the measured and commanded position at the last frame.

Ours: ActionRoPE + CNSend error 8 px
Promptend error 44 px
Linearend error 31 px
AdaLNend error 32 px
Cross-Attnend error 33 px
Scene 2
→walk right · 40 f←walk left · 40 f⌂back at start

Under each clip: cumulative background displacement measured from the video (solid) against the commanded trajectory (dashed), frame 0 to 80. A curve that stays on the dashed line follows the commanded speed and, on the return loops, comes back to the origin; the baselines drift off it. End error = distance between the measured and commanded position at the last frame.

Ours: ActionRoPE + CNSend error 13 px
Promptend error 67 px
Linearend error 28 px
AdaLNend error 45 px
Cross-Attnend error 70 px
Scene 3
→walk right · 40 f←walk left · 40 f⌂back at start

Under each clip: cumulative background displacement measured from the video (solid) against the commanded trajectory (dashed), frame 0 to 80. A curve that stays on the dashed line follows the commanded speed and, on the return loops, comes back to the origin; the baselines drift off it. End error = distance between the measured and commanded position at the last frame.

Ours: ActionRoPE + CNSend error 20 px
Promptend error 79 px
Linearend error 34 px
AdaLNend error 48 px
Cross-Attnend error 16 px
Scene 4
→walk right · 80 f

Under each clip: cumulative background displacement measured from the video (solid) against the commanded trajectory (dashed), frame 0 to 80. A curve that stays on the dashed line follows the commanded speed and, on the return loops, comes back to the origin; the baselines drift off it. End error = distance between the measured and commanded position at the last frame.

Ours: ActionRoPE + CNSend error 13 px
Promptend error 14 px
Linearend error 11 px
AdaLNend error 14 px
Cross-Attnend error 56 px
Scene 5
→walk right · 1.50× speed · 80 f

Under each clip: cumulative background displacement measured from the video (solid) against the commanded trajectory (dashed), frame 0 to 80. A curve that stays on the dashed line follows the commanded speed and, on the return loops, comes back to the origin; the baselines drift off it. End error = distance between the measured and commanded position at the last frame.

Ours: ActionRoPE + CNSend error 41 px
Promptend error 131 px
Linearend error 135 px
AdaLNend error 174 px
Cross-Attnend error 174 px
Qualitative II

Unseen scenes

First frames that never appear in training: paintings, ukiyo-e, a cyberpunk street, a market. The coordinate interface does not depend on scene content, so control and the return to the origin carry over.

ood timeline

Figure 4. Frames f = 0 … 80 of two unseen scenes under the same return loop; the arrows give the commanded direction at each frame.

Ten unseen first frames · return loop
→walk right · 40 f←walk left · 40 f⌂back at start
Watercolor
Bamboo Forest
Cyberpunk City
Moroccan Market
Ukiyo E
Enchanted Forest
Snowy Pine Forest
Arctic Tundra
Autumn Forest
Swamp Marsh
Two-segment command · L-shaped path
↑walk up · 40 f→walk right · 44 f
Watercolor
Bamboo
Qualitative III

One interface, four video backbones

ActionRoPE + CNS trained with the same recipe on SkyReels-V2 (1.3B, diffusion forcing), LTX-2.5 (22B, LoRA), MiniMax-H3 (33B, LoRA) and Wan2.2 (5B, full fine-tuning). Same first frame and command in every row.

backbones timeline

Figure 5. Frames f = 0 … 80 of one return loop on three backbones.

Scene 1
→walk right · 40 f←walk left · 40 f⌂back at start
SkyReels-V2 · 1.3B
LTX-2.5 · 22B
MiniMax-H3 · 33B
Wan2.2 · 5B
Scene 2
→walk right · 40 f←walk left · 40 f⌂back at start
SkyReels-V2 · 1.3B
LTX-2.5 · 22B
MiniMax-H3 · 33B
Wan2.2 · 5B
Scene 3
→walk right · 80 f
SkyReels-V2 · 1.3B
LTX-2.5 · 22B
MiniMax-H3 · 33B
Wan2.2 · 5B
Scene 4
→walk right · 1.00× speed · 80 f
SkyReels-V2 · 1.3B
LTX-2.5 · 22B
MiniMax-H3 · 33B
Wan2.2 · 5B