ActionSplice: Mid-Chunk Action Edits for WMs

Introduction
Chunk-autoregressive world models feel interactive until you change your mind mid-chunk. Press a new action while the sampler is still denoising and you get three bad options: wait for the next chunk, condition on a stale previous-action state, or roll back and re-run completed solver steps. That lag kills play feel.
ActionSplice (arXiv 2609.08230, on Hugging Face Daily Papers September 14, 2026) treats mid-generation action edits as Counterfactual State Transport (CST). A lightweight corrector nudges the interrupted backbone representation toward the matched state for the new action at the same solver step. The world model and sampler stay frozen. Sampling resumes. No full replay.
If you are shipping playable video worlds — not offline clips — this is the control-surface fix that matters.
The Magic: Transport, Don't Restart
Chunk-AR video world models usually lock one action per chunk. An action that arrives during sampling either waits, pollutes future evaluations with the old action's state, or triggers rollback that burns compute you already spent.
ActionSplice reframes that as CST:
- Interrupt at the current solver step when a new action arrives.
- Run a lightweight corrector that transports the backbone-native representation toward the counterfactual state induced by the revised action.
- Leave the world model and sampler frozen — no weight update, no restart from scratch.
- Resume sampling from the transported state without replaying completed evaluations.
Two variants cover different edit intents:
- CST_R (retargeting): rewrite the entire active chunk toward the new action.
- CST_T (temporal splice): keep a temporal prefix, update only the suffix — so early frames stay locked and the cut lands cleanly later in the chunk.
Benchmarks on minWM–Wan Action2V and HY-WM1.5 show the payoff: CST_R cuts rollback-relative LPIPS by 61.5% and 75.9% versus naive condition swapping. CST_T drops suffix LPIPS by 56.1% and 77.5%, with 2.73× and 1.69× pixel-ready speedups over waiting for the next chunk. Under the HY-WorldPlay protocol, CST_R lands 25.66 dB PSNR, 0.6902 SSIM, and 0.1337 LPIPS against the original rollout.
Pro Tip
Instrument action-arrival latency separately from render FPS. A world model that paints at 24 fps still feels dead if new inputs queue until chunk boundaries. CST exists to shrink that queue — measure time-to-first-pixel-after-input-change, not just steady-state throughput.
Wire Mid-Chunk Steering Into Your Loop
Use this as a production checklist when you bolt ActionSplice-style control onto a chunk-AR world model:
- Detect action changes during an active chunk (keyboard, agent policy, or networked input).
- Snapshot the current solver step and backbone-native latent/activation state.
- Choose CST_R when the whole chunk should retarget; choose CST_T when early frames must stay fixed.
- Run the corrector once; resume the frozen sampler from the transported state.
- Never write the new action into already-finished evaluations — transport replaces replay.
- Log LPIPS/PSNR against a rollback oracle so you know when the corrector is lying.
# Mid-chunk control sketch
on_action_change(new_action, step_t):
state = snapshot_backbone(step_t)
if need_full_retarget:
state = CST_R(state, new_action, step_t)
else:
state = CST_T(state, new_action, step_t, keep_prefix=True)
resume_sampler(state) # frozen WM + sampler, no replay# Eval sanity checks (same protocol family as the paper)
# 1) Compare CST vs wait-for-next-chunk latency to pixel-ready frames
# 2) Diff CST vs direct condition swap LPIPS under rollback oracle
# 3) Stress repeated interruptions inside one chunk
# 4) Score HY-WorldPlay-style global quality after editsPaper: arXiv 2609.08230 · HF Daily: huggingface.co/papers/2609.08230
Conclusion
ActionSplice makes interactive world models actually interactive when the player (or agent) changes intent mid-chunk. Counterfactual State Transport keeps the backbone frozen, skips wasteful rollback, and lands edits with strong fidelity on minWM and HY-WM1.5. If your playable world still waits for the next chunk to listen, you are shipping latency as a feature. Splice the action. Keep the flow.
—Titus
