July 14, 2026
A score on a temporal video question answering benchmark is meant to measure that a model has temporal understanding, but it conflates two questions. 1. The task question: is the question even temporal, does it need several frames and their order? and 2. The channel question, when it does, does the model recover the order from the pixels, or read it off the positional encoding (RoPE)? Most of a temporal score answers neither, a single frame and answer priors often carry it. The field’s validity checks, frame-shuffle sensitivity and the accuracy gained from the full video, speak only to the task question. We contribute a label-free screen for the channel question, the reversal-drop: the accuracy lost when the visual sequence is reversed while RoPE remains forward. It can be applied to compatible temporal benchmarks without new annotations. Paired reverse labels, or tasks whose labels transform deterministically under reversal, distinguish models that follow reversed content from those merely disrupted by the conflict. Molmo2 answers the forward event reading order off positions, while Qwen3-VL answers the reversed event it actually sees, reading visual order (comparatively). We call them position-dominant and visual-sequence-dominant. The split holds across two benchmarks and several temporal tasks at two scales, and activation patching shows it is a real internal property, not an artifact of the conflict. The distinction matters, the two channels fail on opposite inputs so two models with similar score are not interchangable, i.e. an aggregate score does not reflect potential failure modes.
A score on a temporal video benchmark is meant to certify that a model understands time. But “temporal” hides two questions. The task question: does a question even require watching motion across frames, and in order? The channel question: when it does, does the model recover the order from the pixels, or off the positional encoding? Video understanding works typically use frame shuffle sensitivity [1], [2] and the accuracy a model gains from the full video, which answer only the task question.
Video VLMs receive temporal information through several channels at once, the pixels (motion across frames), in-context timestamps, and the rotary positional encoding (RoPE [3]). A benchmark score aggregates all of them, with weights that depend on the input and the model. Shuffle sensitivity tells us the aggregate temporal signal is nonzero, but not the weighting over which channels carry it.
This gap matters, because two models with similar scores can resolve temporal order by opposite channels. We feed a clip’s frames in reverse but keep RoPE pointing forward, so the pixels indicate one direction and the positions the other (Figure 2). Molmo2 answers the forward event it was never shown, reading order off the positions. Qwen3-VL answers the reversed event it actually sees, reading order from the pixels. Both models gain about \(+0.20\) in accuracy from the full video over a single frame (Table 2), so a multi-frame gain audit rates them the same. Only the conflict reveals the split, and the benchmark score is blind to it. We call Molmo position-dominant, its answer following the positional indices, and Qwen visual-sequence-dominant, which biases towards ordered visual content.
We make this concrete with an intervention protocol that perturbs the three channels independently and in conflict, across three video VLM families (Molmo2 [4], Qwen3-VL [5], PerceptionLM [6]) on two benchmarks (TempCompass [7], TVBench [8]). An information ladder bounds how much of a score is temporal, the task question, and supplies a motion-dependent slice. A reversal test answers the channel question: on TVBench it reads relabel-free as the accuracy a model loses when the pixels are reversed but the positions held forward, and on TempCompass a paired-ground-truth design scores the same split directly. The dissociation holds across both benchmarks and at two model scales. Molmo’s accuracy is essentially unchanged by reversal, while Qwen’s collapses on every temporal task.
A natural worry is that the conflict construction itself manufactures the split. Activation patching shows the channels are separable inside the network and localizes where reversed frame damage can and cannot be undone. Corrected content installed at the first LM layer fully recovers Molmo and PerceptionLM, while Qwen leaves a small residual that traces to midlayer injection of visual features (DeepStack). I.e. the split is a real internal property, not an artifact of the protocol.
Our contributions are an audit, evaluation protocol with the evidence that it matters, and a mechanistic validation:
A benchmark audit. A temporal score conflates two questions, and the standard diagnostics see only one. Aggregate score mixes whether a task needs motion (the task question) with which channel resolves order when it does (the channel question). We bound the task question with an information ladder (blank pixels, single frame, progressively increasing frames) and we show that frame shuffle sensitivity and multi-frame gain, the field’s two validity checks, answer only the first (Sec. 4.1, 4.2).
A reversal screen for the channel question. reversal-drop, the accuracy lost when the pixels are reversed but RoPE is held forward, separates a visual-sequence-dominant model from a position-dominant one. It needs no new annotations and drops onto any existing temporal benchmark. Tasks with a deterministic reverse label, such as moving direction, give a paired check for free (Sec. 3.5, 4.3, 5.3).
Evidence that the protocol matters: two models with similar scores resolve order by opposite channels. Molmo2 reads order off RoPE and Qwen3-VL off the pixels, shown by the conflict protocol and the reversal-drop across two benchmarks at two scales, with paired ground truth on TempCompass. Neither the aggregate score nor a multi-frame gain audit distinguishes them (Section 4.3).
Mechanistic validation: the split is a real internal property, not an artifact of the conflict. Activation patching separates the channels inside the network and locates the architecture-specific recovery boundary, the first LM layer versus the DeepStack injection depth, so the behavioral split is mechanistic rather than a construction of the conflict protocol (Section 4.5).
Auditing what benchmarks measure. A recurring finding in vision evaluation is that aggregate accuracy can measure a capability a model does not have, because models exploit shortcuts correlated with the label rather than the intended signal [9], [10]. Visual question answering models answered from language priors until benchmarks were rebalanced to break the correlation [11], [12], image classifiers leaned on texture rather than shape [13], and many action recognition tasks proved solvable from a single frame or were left largely unchanged when frame order was shuffled [1], [2]. Two recurring diagnostics are single-frame sufficiency and shuffle-invariance. We use them as instruments and build on-top by asking: on the items that do depend on frame order, which input channel a model uses to resolve it?
Temporal video-language evaluation. Recent audits show that aggregate video scores overstate temporal understanding, because many questions are answerable from language or static appearance. TempCompass [7] introduces diverse temporal aspects and conflict-style videos, TVBench [8] rebuilds video VQA to resist single frame and frame-shuffle shortcuts, and VBenchComp [14] sorts questions into language-answerable, shuffle-robust, and order-dependent. Their separators, single frame sufficiency and shuffle-invariance, are blackbox tests that apply to any model, and we adopt them to bound how much of a score is order dependent. These audits identify which questions need temporal order. We hold the items fixed and ask which channel a model uses. The difference is mechanical: whole-clip reversal moves pixels and positions together and measures sensitivity, while our conflict reverses the pixels but holds the RoPE positions forward, isolating the channel. This requires access to model internals, so our test is limited to open models, but it reveals what a score cannot, that two models with similar scores resolve order by opposite channels, the positional index versus the visual sequence.
Positional encodings for time. Timestamp prompting [15] and absolute-time MRoPE [5] introduce positional temporal mechanisms into video VLMs. We show that such encodings can override the pixels during conflict, and that how much a model relies on them depends on architecture.
Mechanistic localization. Concurrent circuit level work localizes temporal processing inside the VLM. CircuitProbe [16] tracks the layerwise emergence of language aligned object and action concepts, finds them decodable in mid-to-late layers, and reports models behaving closer to bag-of-frames evidence accumulation [2]. That work localizes where decoded features mature. We localize where reversed-frame damage can be repaired, the first LM layer versus the DeepStack injection depth, and tie that boundary to the behavioral channel split. The two are complementary, pairing object localization with a decomposition of the temporal input pathways.
Closest to our interventions, recent prior work [17] finds that causal VideoLMs are largely insensitive to perturbing video positional encodings, but degrade sharply when frames are reversed while retaining their original position IDs. It attributes this to an order-sensitive causal-attention pathway rather than to positional encodings. We reach a compatible conclusion for causal models, but show the behavior is not universal. Molmo2, with bidirectional attention over visual tokens, is strongly position-dominant and follows the encoding when the visual sequence is reversed. Where [17] gives a mechanistic account of the causal regime and derives efficiency strategies, we contribute an evaluation diagnostic, the label-free reversal-drop, validated with paired reverse ground truth.
We study 3 video VLM families spanning 2 attention architectures and 2 positional encoding schemes.
Qwen3-VL [5] (4B, 8B): Has Causal attention throughout. Vision tokens use 3D MRoPE with temporal, height, and width axes; the temporal
index is replicated as the base for the H/W axes, so temporal ordering is encoded redundantly across all three axes. DeepStack [18] integration injects intermediate ViT features into LLM layers 0–2.
Molmo2 [4] (4B, 8B, O-7B): Has 1D sequential RoPE with bidirectional attention for vision tokens (token_type_ids) and causal
attention for text. Inter-frame information flow during prefill is constrained only by RoPE, not by sequential attention masking.
PerceptionLM [6] (1B, 3B): Uses 1D sequential RoPE, fully causal attention, no text timestamp format.
These three families span the two architectural variables we manipulate: bidirectional versus causal LM attention (Molmo2 versus Qwen3-VL and PerceptionLM) and 1D sequential versus 3D MRoPE (Molmo2/PerceptionLM versus Qwen3-VL). Behavioral interventions
run across all seven models. Linear probes for Qwen3-VL and Molmo2 only.
TempCompass [7]. 410 videos, \(n=1580\) multiple choice questions across five aspects (action,
attribute_change, direction, order, speed). Two aspects (action, speed) are not diagnostic of temporal order and are excluded from per aspect analysis. We treat this as an audit result (Section 4.1) using the
remaining 3 (attribute_change, direction, order).
TVBench [8]: 2205 multiple choice questions across nine categories. We use macro-averaged accuracy. Its temporal tasks
(scene_transition, moving_direction, action_sequence, action_localization, egocentric_sequence) are relevant to our observations. Unlike TempCompass, TVBench has no paired _reverse videos, so
reversal is applied directly to the clips. We exploit the notion that these benchmarks are designed to resist single frame and frame-shuffle shortcuts to understand which pathways video VLMs use.
To quantify how much of a benchmark score requires integrating multiple frames, we evaluate each question at three information levels. 1. blank pixels (blind: answer priors and option leakage only), 2. a single repeated frame with its timestamp (single-frame: adds static appearance), and 3. the full video. The multi-frame gain, accuracy(full) minus accuracy(single-frame), isolates the accuracy that requires integrating across frames. It measures dependence on multiple frames, not on their order. For order we use the order-gain, accuracy(full) minus accuracy(shuffled frames) (Section 3.4), which is the shuffle-invariance criterion of TVBench [8] and VBenchComp [14]. The paired standard error is about \(0.03\); we treat a gain below \(0.05\) as zero. Single frame conditions keep the frame’s timestamp, because a lone frame with its timestamp stripped is out of distribution for some models. An item is motion-dependent for a model when it is answered correctly from the full video but not from a single frame; we use this slice in Section 4.3.
We manipulate 3 input channels independently and in combination (Figure 1). Table 1 lists key conditions used. Ref. Supp. 14 for
complete results across models and conditions.
Visual order. Frames are presented in one of: normal, single-frame (frame 0 repeated), shuffled (fixed per video), reversed, or blank (zero-pixel frames). Post Conv3d embedding shuffle yields
equivalent results, ruling out Conv3d as an independent temporal channel (Supp. 8).
Timestamps. Timestamps precede each frame’s vision tokens. Manipulations: present, absent, mismatched (shuffled independent of the visual shuffle), or reversed.
Positional encoding. RoPE position indices for vision tokens are set to: native (match input order), corrected (follow original frame indices regardless of input order. Under shuffle, slot \(j\) receives the position of frame \(\pi(j)\)), or shuffled/reversed (independently permuted or reversed). We additionally include correct-pixel, wrong-RoPE conditions
(rop-shuf; rop-rev for Qwen only) to isolate RoPE effects with correct visual content. For Qwen3-VL, axis specific multimodal RoPE (MRoPE) corrections (T only, H/W only, all) confirm recovery as corrections applied to each axis
(Supp. 9). DeepStack ablations confirm it contributes no independent temporal signal beyond RoPE (Supp. 10). We additionally warp the inter-frame RoPE spacing by a
factor \(\Delta \in \{0.25,\dots,8\}\) (identity at \(\Delta{=}1\)), holding pixels, order, and timestamps fixed, to test whether the model reads playback rate from positional spacing.
Qwen3-VL’s separate MRoPE temporal axis is the clean lever (Molmo2’s 1D RoPE entangles temporal and spatial spacing).
We construct conditions where channels indicate different orderings: forward visual + reversed timestamps (conf-ts), consistent reversal of visual and timestamps (rev-mvts), visual permutation A +
timestamps permutation B (conf-ts2), and reversed visual + corrected RoPE (rev-corr).
Identifying the channel. To determine which channel a model uses to resolve temporal order, we place the visual and positional channels in conflict. Under rev-corr the frames are reversed while the RoPE positions are held
at the original forward order, so the pixels indicate one temporal direction and the positions the opposite. A model that reads order from positions answers the forward event and its accuracy is preserved; a model that reads order from the pixels answers
the reversed event and its accuracy collapses. We score this two ways. On TempCompass we use the paired ground truth (below). On TVBench, which has no paired reverses, we read it relabel-free as the reversal-drop, accuracy(base) minus
accuracy(rev-corr): near zero for a model that reads positions, large for one that reads pixels. For moving_direction the reversed answer is deterministic, since time-reversal flips both motion axes, giving a paired check without
manual relabeling.
Reversal protocol with paired ground truth. TempCompass contains 95 paired videos ({id} and {id}_reverse) with independently adjusted ground-truth answers for attribute_change (144 pairs) and
direction (157 pairs). On the original videos under rev-corr, we score each prediction against both the original-content GT (E) and the reversed-content GT (F), distinguishing “model interprets video as forward time” from “model
interprets video as reverse time.” The per-aspect reversal accuracies in the supplementary report all paired items (original and _reverse), and Supp. 17 reports the original-video dissociation in which
rev-corr matches E.
Mirror control and coverage. The paired _reverse videos under rev-corr instantiate the complementary conflict: the pixels show the forward event while RoPE encodes the reversed order. When predictions are scored
against the forward content, the family-level pattern reverses: Molmo now fails while Qwen succeeds. This confirms that the original dissociation reflects channel use rather than generic sensitivity to reversal (Supp. 17). We run the reversal conflict on all models on TempCompass and on Molmo-4B/8B and Qwen-4B/8B on TVBench. For Qwen-4B/8B, we also evaluate the motion-dependent slice. Here the channel split must hold if it reflects
genuinely temporal evidence rather than statically answerable items. Timestamp-sensitivity partition. To expose question-level timestamp use hidden by aggregate accuracy, we partition questions separately for each model. \(S_\mathrm{ts}^{(m)}\) contains questions answered correctly under base but incorrectly when timestamps are removed (base-nts); \(S_\mathrm{neither}^{(m)}\) contains
questions answered correctly in both conditions. We then test whether reversing timestamps selectively affects \(S_\mathrm{ts}^{(m)}\). This is a descriptive, model-specific partition of observed timestamp use, not a
calibrated estimate of reliance or an objective annotation of timestamp necessity. Full results are in Supp. 12.
We use residual-stream activation patching [19], [20] to localize where corrected order content is sufficient to recover behavior. For each item we run two forward passes on the same model. First a base pass with original frame order and a
target pass (shuf unless noted). On the base pass, residual-stream activations at vision token positions are captured via a pre-hook at the input of each LM block. On the target pass, the captured activations are
installed at the matching vision token positions at the selected LM layers, leaving text token positions and RoPE indices untouched (positional encoding enters at each attention block’s Q/K projections). Conditions are scored with the same MCQ accuracy
procedure used for base and shuf.
Span alignment. Patching uses the original-frame correspondence: the token at slot \(j\) of a shuf run contains frame \(\pi(j)\), so we install the captured
base activation from slot \(\pi(j)\) at slot \(j\). Each patched vision token at every patched layer therefore carries the activation it would have had in the unshuffled
run.
Patch extents. We test five extents: act_layer0 (layer 0 only), act_early (first half), act_late (second half), act_all (every layer), and act_ds (LM layers \(\{0,1,2\}\), the DeepStack injection depth in Qwen3-VL); per-model layer-half boundaries are in Supp. 7. Pre-hooks fire at the input of each LM block; in Qwen3-VL, DeepStack adds
intermediate ViT features at vision-token positions inside each of layers 0–2’s forward passes (after the input pre-hook), so act_layer0 does not prevent re-injection of shuffled features at layers 1–2 and act_ds is the
depth at which all DeepStack injections have fired. A complementary output-patching variant (post-hook on the layer output) used in Section 5.1 and full perlayer specifications are in Supp. 7. Linear probes on the residual stream corroborate this footprint, a slot-index direction transfers across positional configurations and frame-identity readout tracks behavioral recovery (full method & results in
Supp. 13).
We ask two questions of a temporal score, how much of it requires watching motion across frames in order (the task question), and, on the part that does, which channel a model uses to resolve temporal order (the channel question). Section 4.1 bounds the task question, Section 4.2 shows the standard diagnostics cannot answer the channel question, and Section 4.3 answers it.
Reading effect sizes. We report accuracy differences in percentage points and read them against two references. Chance is \(0.315\) on TVBench (macro-averaged) and varies with the TempCompass aspect (2 –
4 options; e.g.\({\approx}0.32\) for the 3 – 4 option speed aspect). Run to run variance is small, estimates of the same condition differ by at most \(0.007\) points (e.g.Molmo2 8B
base \(0.730\) vs.\(0.737\)). We therefore treat gaps below \(1\) point as noise, \(1\)–\(5\) points as modest, and larger gaps as substantial.
| Code | Pixels | Timestamps | RoPE |
|---|---|---|---|
| base | original | original | native |
| base-nts | original | absent | native |
| shuf | shuffled | at orig.slots | native |
| shuf-mvts | shuffled | moved w/ frames | native |
| shuf-corr | shuffled | at orig.slots | corrected |
| conf-ts | original | reversed | native |
| rop-shuf | original | original | shuffled |
| rev-corr | reversed | at orig.slots | corrected |
How much of an aggregate temporal benchmark score requires more than a single frame? and how much requires frame order? The information ladder (Sec. 3.3) answers the first through the multi-frame gain, accuracy(full video) – accuracy(single frame) (Table 2). For the second we read the order-gain, accuracy(full video) – accuracy(shuffled frames), the shuffle-invariance criterion that TVBench [8] and VBenchComp [14] use to separate order dependent from static questions. Both are established diagnostics that we build on. Multi-frame gain measures dependence on multiple frames, not on their order, so a positive multi-frame gain can co-occur with order invariance.
Both families have comparable multi-frame gain, about \(+0.20\) overall, so both need several frames. Order-gain is what separates the aspects. It concentrates on attribute_change (\(+0.35\) to \(+0.37\)) and order (\(+0.32\) to \(+0.37\)), is modest on direction, and is near zero on action and speed. Action is near ceiling but barely uses the pixels: its blind accuracy (blank frames) is already about \(0.5\) against chance \(0.29\), so the score reflects single-frame recognition and answer-prior leakage. Speed is the clean separator. It has a clear multi-frame gain (\(+0.11\)) but near-zero order-gain, so it needs several frames yet not their order, an aspect-level instance of VBenchComp’s semantic (shuffle-robust) category and consistent with the rate-free reading of Section 4.4.
Order-gain also removes a confound. The order aspect looks weakly motion-dependent at face value because its single frame baseline uses frame 0, which leaks which event comes first. The shuffled baseline does not leak this, so the order-gain measures order dependence directly. A simpler check further confirms this, we grow the number of sampled frames \(k\) we show the model from \(1\) to the full video. Accuracy on motion-dependent items climbs monotonically vs static control which stays flat, it doesnt matter if the initial frame is a middle frame or first frame (Supp. 18). In summary, our experiments show our motion-dependent subset is a valid subset to use throughout the rest of our study.
| Multi-frame gain | Order-gain | |||
|---|---|---|---|---|
| 2-3(lr)4-5 Aspect | Molmo | Qwen | Molmo | Qwen |
| attribute_change | \(+0.46\) | \(+0.52\) | \(+0.37\) | \(+0.35\) |
| order | \(+0.29\) | \(+0.21\) | \(+0.32\) | \(+0.37\) |
| direction | \(+0.17\) | \(+0.19\) | \(+0.14\) | \(+0.12\) |
| speed | \(+0.11\) | \(+0.11\) | \(+0.05\) | \(+0.03\) |
| action | \(+0.09\) | \(+0.05\) | \(+0.01\) | \(+0.00\) |
| Overall | \(+0.22\) | \(+0.21\) | \(+0.17\) | \(+0.17\) |
The standard temporal diagnostics answer the task question and are blind to the channel question. Disrupting RoPE alone while leaving the pixels intact (rop-shuf) costs Molmo about as much as a full pixel shuffle (within \(2\) points) and \(14\)–\(18\) points below baseline, so RoPE is its primary order carrier. The same manipulation costs Qwen only \(3\) to \(7\) points, consistent with its 3D MRoPE encoding order redundantly across axes (Supp. 9). The two models have similar shuffle sensitivity
but rely on different channels. Moreover both models have high multi-frame gain on the same temporal tasks, so both genuinely need the frames, yet they resolve order by opposite channels.
We place the pixels and the positions in direct conflict. Under rev-corr the frames are reversed while RoPE is held at the original forward order, so a model that reads order from positions answers the forward event (its accuracy is
preserved against forward ground truth) and a model that reads order from the visual order answers the reversed event (its accuracy collapses).
TVBench. Dissociation across temporal tasks. On TVBench, where there are no paired reverses, we use the reversal-drop, the accuracy lost from base to rev-corr which doesn’t require paired reverse
labels. The two families separate cleanly (Table 3). Molmo’s accuracy is nearly invariant to reversing the pixels (mean temporal-task drop \(+0.04\), largest \(+0.14\)), ie. biased towards RoPE. Qwen’s accuracy collapses on every temporal task (drops of \(+0.24\) to \(+0.55\) on scene transition, moving direction,
action sequence, action localization, and egocentric sequence), ie. biased towards frame order. Both models reach high baseline accuracy on these tasks, so both use the frames’ content. They differ only in how they bind temporal order.
| Task | Molmo 4B | Molmo 8B | Qwen 4B | Qwen 8B |
|---|---|---|---|---|
| scene_transition | \(+0.01\) | \(+0.00\) | \(+0.55\) | \(+0.55\) |
| moving_direction | \(+0.08\) | \(+0.02\) | \(+0.41\) | \(+0.33\) |
| action_sequence | \(+0.00\) | \(+0.01\) | \(+0.36\) | \(+0.33\) |
| action_localization | \(+0.02\) | \(+0.06\) | \(+0.29\) | \(+0.29\) |
| egocentric_sequence | \(-0.01\) | \(+0.14\) | \(+0.24\) | \(+0.23\) |
| object_count | \(+0.01\) | \(+0.03\) | \(+0.18\) | \(+0.10\) |
| unexpected_action | \(+0.04\) | \(+0.06\) | \(+0.11\) | \(+0.14\) |
| action_count | \(+0.00\) | \(+0.00\) | \(+0.06\) | \(+0.08\) |
| object_shuffle | \(-0.01\) | \(-0.06\) | \(-0.05\) | \(-0.01\) |
TempCompass: paired ground truth. The paired-ground-truth design quantifies the same split (Table 4). The two families start from matched base scores on attribute_change (near
\(0.95\) to \(0.97\) for both), then diverge under rev-corr: Molmo is preserved while Qwen collapses. Scoring rev-corr against the original-content (\(E\)) and reversed-content (\(F\)) answers, \(F-E<0\) means the model read reversed content as forward-time. Molmo shows a near-total override on
attribute_change (\(F-E\) around \(-0.95\) at 4B/8B, \(-0.82\) at O-7B): it answers the forward event whenever RoPE encodes forward order. Qwen
shows the same direction at far smaller magnitude and weakening with scale (\(-0.23\)/\(-0.14\) at 4B/8B). The mechanism is direct: on moving_direction, correcting RoPE is inert for
Qwen (rev-corr matches the uncorrected reverse), but for Molmo it restores the forward answer (rev-corr matches baseline).
The override holds on the genuinely temporal items. A natural worry is that Molmo’s override rides items a single frame already answers. It does not. Restricting to the motion-dependent slice (Section 4.1), Molmo’s override is as strong or stronger (\(F-E\) near \(-1.0\) on attribute_change), while Qwen’s override is confined to the static items and vanishes where motion is required, at both 4B and 8B (Table 4). The mirror conflict (forward pixels with reversed RoPE) flips the pattern, with Molmo now failing and Qwen succeeding, confirming that Molmo reads RoPE and Qwen reads the pixels in both directions.
| Model | base | rev-corr | \(F\!-\!E\) | \(F\!-\!E\) (m-dep) |
|---|---|---|---|---|
| Molmo2 4B | 0.965 | 0.965 | \(-0.957\) | \(-1.000\) |
| Molmo2 8B | 0.972 | 0.965 | \(-0.950\) | \(-0.983\) |
| Molmo2 O-7B | 0.965 | 0.882 | \(-0.816\) | \(-0.766\) |
| Qwen3-VL 4B | 0.944 | 0.576 | \(-0.234\) | \(+0.014\) |
| Qwen3-VL 8B | 0.972 | 0.549 | \(-0.135\) | \(+0.237\) |
Two models with similar benchmark scores (TempCompass) resolve the temporal items by opposite channels, and no aggregate score, or multi-frame gain audit, distinguishes them. Molmo is position-dominant and Qwen is visual-sequence-dominant. Qwen’s override also weakens with scale (\(F-E\) from \(-0.234\) to \(-0.135\), and the motion-dependent slice from \(+0.014\) to \(+0.237\), at 4B to 8B), so the larger Qwen is not as position dominant; Molmo’s override is saturated at both scales.
The channel a model uses also shifts with the question, so no single weighting describes a model. Timestamps are the clearest case. Removing them while the pixels stay intact (base-nts vs.base) costs little on average, but the
aggregate hides per-question reliance: on the subset a model answers only when timestamps are present, reversing the timestamps is decisive, while on the rest it changes almost nothing (Table 12, Supp. 12). Timestamp reliance falls with scale, and Molmo relies on timestamps less than Qwen. The partition is directional by construction rather than a calibrated reliance estimate. RoPE order is carried in its continuous
spacing too, not only the frame permutation, and playback rate is not read from positions at all (Supp. 9).
To test whether the behavioral split reflects distinct internal processing rather than only an artifact of the conflict input, we use activation patching (Section 3.6). We record clean order vision-token
states from a normally ordered base run, insert them at selected layers of a shuffled shuf run, and measure how much accuracy is recovered. Comparing recovery across patch locations reveals where the effects of shuffled order can
be repaired inside each model.
Recovery tracks architecture. Input-space RoPE correction (shuf-corr) recovers Molmo to near baseline but leaves a residual in the causal models, Qwen and PLM (Table 5). This is what
attention masking predicts: under causal attention, K/V vectors commit to the shuffled neighbor context during prefill and later RoPE correction cannot re-organize them, whereas bidirectional attention lets Molmo reintegrate against corrected positions
(shuf-corr alone mostly recovers it). Patching tests this directly, installing corrected content at layer 0 should fully recover a model if causal attention is the only obstacle.
Layer-0 recovery, and the DeepStack exception. Layer-0 patching fully restores accuracy in Molmo (bidirectional) and in PLM (causal but without DeepStack). Qwen alone leaves a small residual (about \(1.5\) points), which closes exactly when we patch LM layers \(0\) to \(2\), the depth at which Qwen’s DeepStack injection adds intermediate ViT features inside the forward pass after the layer-0 hook fires (Table 5). DeepStack is not an independent temporal channel, ablating it leaves the input-space recovery gap unchanged. It is a patching artifact, and the more general lesson is that a pre-hook at the input of layer \(N\) does not isolate layer \(N\) when features are injected inside its forward pass. TVBench replicates the pattern (Supp. 19). Linear probes [21] corroborate correlationally, a slot-index direction transfers across positional configurations and frame-identity readout tracks behavioral recovery (Supp. 13).
| Model | LM attn | DeepStack | shuf-corr gap | act_layer0 gap | act_ds gap | act_early gap |
|---|---|---|---|---|---|---|
| Molmo2 4B | Bidir. | No | \(-0.001\) | \(\phantom{-}0.000\) | — | \(\phantom{-}0.000\) |
| Molmo2 8B | Bidir. | No | \(-0.004\) | \(\phantom{-}0.000\) | — | \(\phantom{-}0.000\) |
| Molmo2 O-7B | Bidir. | No | \(-0.051\) | \(\phantom{-}0.000\) | — | \(\phantom{-}0.000\) |
| Qwen3-VL 4B | Causal | Yes | \(-0.099\) | \(-0.016\) | \(-0.003\) | \(+0.001\) |
| Qwen3-VL 8B | Causal | Yes | \(-0.115\) | \(-0.015\) | \(+0.007\) | \(-0.006\) |
| PLM 1B | Causal | No | \(-0.076\) | \(\phantom{-}0.000\) | — | \(\phantom{-}0.000\) |
| PLM 3B | Causal | No | \(-0.115\) | \(\phantom{-}0.000\) | — | \(\phantom{-}0.000\) |
Read together, the results give a specific account of how temporal order enters these models. Both models are temporal in the usual sense. They need to see several frames, and a multi-frame gain audit confirms it. But they bind the temporal order by opposite channels. Molmo2 is position-dominant. The model reads order off the positional encoding rather than from the order of the visual states, so reversing the pixels while holding RoPE forward leaves its answer essentially unchanged. This is an ordered, position-indexed counterpart to the bag-of-frames behavior reported in prior video-language analyses [2], [16]. The model is not order-invariant, since shuffling still hurts, but the order it uses is symbolic rather than visual. Qwen3-VL is visual-sequence-dominant. The model follows the order of the visual states and reverses its answer when the pixels reverse.
Neither mode is universal. It is a regime a model occupies to a greater or lesser extent. The reversal conflict separates Molmo2 and Qwen3-VL across both benchmarks and at two scales, and PerceptionLM fills the middle. With 1D positional encoding like Molmo2 but causal attention like Qwen3-VL, PLM is an intermediate, partial overrider (\(F-E\) \(\approx-0.5\) on attribute_change, still position-leaning on the motion-dependent slice), between Molmo2’s near-total override and Qwen3-VL’s pixel reading. The ordering Molmo2 \(>\) PLM \(>\) Qwen3-VL is consistent with both 1D positional encoding and bidirectional attention pushing a model toward reading order off positions, so neither factor alone accounts for the split. The point for evaluation is that Molmo2 and Qwen3-VL look identical to a multi-frame gain audit. Only the channel decomposition reveals the split, and a benchmark score, which rewards both modes equally, cannot.
The positional read is distributed across the network rather than set once at the input. Reversing RoPE while keeping the pixels correct reproduces the order cost, and installing correct early layer content at the deeper layers does not undo it (Ref. Supp. 11). This is an architecture specific property. I.e. Temporal channel usage varies by model, and because the two channels fail on different inputs, a temporal score should expose rather than hide this.
The reversal conflict is an OOD diagnostic and does not estimate natural failure rates. Architecture attribution is limited by available open models, PerceptionLM rules out attention type or positional encoding alone, but the bidirectional result rests on Molmo2 and the families differ in training. The timestamp partition is model-specific, and the experiments cover two short-video VQA benchmarks. Future work may extend to longer video datasets.
The central recommendation is to separate \(3\) questions a single temporal score collapses. The first two make up the task question, is the task temporal, and the third is the channel question, which pathway a model uses to resolve order. 1. whether a task requires multiple frames, 2. whether it requires their order, and 3. which input pathway determines that order. Multi-frame gain addresses the first, shuffle sensitivity the second, and the reversal conflict the third.
Report the decomposition, not aggregate accuracy. Give multi-frame gain and shuffle sensitivity, which separate tasks that need several frames from those that need them ordered. A positive multi-frame gain does not imply order matters: speed needs multiple frames yet is order-invariant (Section 4.1).
Use a reversal conflict to screen for pathway differences. The reversal-drop, the accuracy lost when the visual sequence is reversed while positions stay forward, distinguishes visual-sequence-dominant from position-dominant behavior, which the other two diagnostics cannot.
Do not compare mechanism from the score. Aggregate accuracy supports task-level comparison but not whether two models resolve order through the same pathway.
Scope of the reversal-drop. The test requires independent control of frame order and positional indices. Its label-free form is a screen, not a classifier. A drop may reflect following the reversed event or confusion under conflict. Paired reverse labels, or tasks with deterministic reverse labels such as moving_direction, distinguish the two.
Temporal scores conflate multi-frame dependence, order dependence, and the pathway used to determine order. Across two benchmarks, similarly scoring Molmo2 and Qwen3-VL follow different cues under reversal conflict. Reporting multi-frame gain, shuffle sensitivity, and reversal conflict separately exposes failure modes hidden by a single aggregate score.
We evaluate seven models from three families, using their official released checkpoints: Qwen3-VL [5] (4B, 8B), Molmo2 [4] (4B, 8B, O-7B), and PerceptionLM [6] (1B, 3B). Behavioral interventions run on all seven models; linear probes on Qwen3-VL and Molmo2 only.
TempCompass [7] (410 videos; \(n=1580\) questions, \(1564\) on Molmo2 O-7B) and TVBench [8] (\(n=2205\) questions, nine categories), both multiple-choice. Per-aspect TempCompass analysis uses attribute_change, direction, and order. Action and speed are excluded as non-diagnostic (Section 4.1).
All conditions are defined in Table 1 (main text) and Table 17 (supplementary). The paired-ground-truth reversal split comprises 95 paired videos (144 attribute_change and 157 direction pairs) and is reconstructed from TempCompass by the relabeling procedure of Section 3.5.
Single seed runs use seed 42. Conditions base, shuf, rop-shuf, and shuf-corr are reported as multi-seed averages where indicated. all other conditions are single seed (seed 42). Bootstrap confidence
intervals use 1000 resamples. All experiments were run using a single consumer NVIDIA RTX 4090 GPU.
The paired-GT split is reconstructible from TempCompass via the outlined procedure.
| Condition | Molmo2 (Acc) | Qwen3-VL 4B | Qwen3-VL 8B | |||||
|---|---|---|---|---|---|---|---|---|
| 2-4(lr)5-6(lr)7-8 | 4B | 8B | O-7B | Acc | Gap | Acc | Gap | |
| base | 0.728 | 0.730 | 0.718 | 0.703 | — | 0.738 | — | |
| shuf | 0.545 | 0.545 | 0.547 | 0.568 | \(-0.135\) | 0.570 | \(-0.168\) | |
| shuf-corr | 0.727 | 0.723 | 0.668 | 0.612 | \(-0.091\) | 0.619 | \(-0.119\) | |
| act_layer0 | 0.728 | 0.730 | 0.718 | 0.687 | \(-0.016\) | 0.723 | \(-0.015\) | |
| act_ds | — | — | — | 0.706 | \(-0.003\) | 0.736 | \(+0.007\) | |
| act_early | 0.728 | 0.730 | 0.718 | 0.704 | \(+0.001\) | 0.732 | \(-0.006\) | |
| act_late | 0.693 | 0.699 | 0.570 | 0.655 | \(-0.048\) | 0.695 | \(-0.043\) | |
| act_all | 0.728 | 0.730 | 0.718 | 0.703 | \(\phantom{-}0.000\) | 0.732 | \(-0.006\) | |
Qwen3-VL’s vision encoder uses a 3D Conv patch embedding (kernel \([2, 16, 16]\)) that pairs two consecutive raw frames into one temporal unit, potentially encoding local motion prior to any attention. This raises the
question of whether shuffling frame order before the Conv3d embedding (as in our main conditions shuf/shuf-corr) captures the same temporal disruption as shuffling after embedding (emb-shuf,
embed-then-shuffle).
Condition emb-shuf runs a base forward pass, captures the final ViT output embeddings and DeepStack tensors via forward hooks, then shuffles those embeddings by the same permutation used in shuf and injects them
into a second generate pass that bypasses the ViT entirely. This isolates the effect of frame-order disruption at the LLM level without recomputing the ViT; any difference between emb-shuf and shuf (pixel-level shuffle,
pre-embedding) would indicate that Conv3d motion signal contributes independently. Two recovery variants build on emb-shuf: emb-shuf-ts additionally remaps text timestamps to match the shuffle permutation;
emb-shuf-corr additionally corrects temporal RoPE positions.
| Condition | Description | 4B | 8B |
|---|---|---|---|
| base | correct order, baseline | 0.711 | 0.749 |
| shuf | pixel shuffle before ViT | 0.553 | 0.561 |
| emb-shuf | shuffle ViT embeddings after ViT | 0.561 | 0.567 |
| emb-shuf-ts | emb-shuf + timestamp correction | 0.621 | 0.653 |
| emb-shuf-corr | emb-shuf + RoPE correction | 0.587 | 0.579 |
| emb-shuf \(-\) shuf | \(+0.008\) | \(+0.006\) | |
| emb-shuf-ts \(-\) emb-shuf | \(+0.060\) | \(+0.086\) | |
| emb-shuf-corr \(-\) emb-shuf | \(+0.026\) | \(+0.012\) |
The gap between emb-shuf and shuf is \(+0.006\)–\(+0.008\), within the range of run-to-run variability. We treat emb-shuf \(\approx\) shuf as confirmation that our pixel-level shuffle conditions (shuf/shuf-corr) are equivalent to post-embedding shuffle for the purpose of temporal disruption, and that the
temporal motion captured by Conv3d does not constitute an independent recoverable signal after shuffling. Within this experiment, correcting text timestamps on shuffled embeddings (emb-shuf-ts) recovers \(+0.060\)/\(+0.086\) across model sizes, larger than RoPE correction alone (emb-shuf-corr: \(+0.026\)/\(+0.012\)),
consistent with the timestamp-channel dominance reported in Section 4.4.
The residual between act_layer0 patching and full baseline recovery in Qwen3-VL (\(-0.016/-0.015\), \(\approx\)1 pp) is caused by DeepStack: the pre-hook fires at the
input of LM layer 0, but DeepStack adds shuffled intermediate ViT features inside each of layers 0–2’s forward passes, re-contaminating after each hook. A targeted act_ds condition (patch layers {0,1,2} only, exactly the
DeepStack injection depth) recovers the full residual at both Qwen scales (act_ds \(-\) act_layer0 \(= +0.016/+0.014\) at 4B/8B; act_early \(-\) act_ds \(\approx 0.000\) at both; \(n=1580\), seed 42), confirming that layers 0–2 are the complete and sole source and that patching beyond
layer 2 adds nothing. The present experiment confirms that Conv3d is not the source of this residual (emb-shuf \(\approx\) shuf), isolating DeepStack as the explanation.
A full-scale replication (4B, \(n=1580\)) confirms emb-shuf \(\approx\) shuf (\(-0.003\), consistent with the prior \(+0.008\) within run-to-run variation) and extends the experiment with condition act_layer0_e1: layer-0 activation patching applied on top of emb-shuf inputs. The gap act_layer0_e1 \(-\) act_layer0 \(= -0.003\) (\(0.691\) vs.\(0.694\)). patching layer 0 with Q0 hidden states gives the same
recovery regardless of whether the ViT processed shuffled pixels (Q3) or correct pixels (E1). This directly isolates the residual to sequence ordering and DeepStack injection, independent of ViT pixel-encoding quality.
Qwen3-VL uses 3D MRoPE with three axes: temporal (T), height (H), and width (W). All three axes share a per-frame base \(t_i\); spatial offsets \(h\) and \(w\) are added within the frame. Under shuffle, the token at slot \(j\) (containing frame \(\pi(j)\)) receives slot \(j\)’s
temporal base \(t_j\) across all three axes. shuf-corr reassigns the temporal base to \(t_{\pi(j)}\) across all axes. shuf-corr-T and shuf-corr-HW
correct only the T axis or only the H/W axes respectively, allowing the contribution of each axis to be read from the accuracy increment.
| Condition | Axes corrected | 4B | 8B | \(\Delta\) shuf (4B/8B) |
|---|---|---|---|---|
| shuf | 0 | 0.558 | 0.561 | — |
| shuf-corr-T | 1 | 0.570 | 0.575 | \(+0.012\) / \(+0.014\) |
| shuf-corr-HW | 2 | 0.594 | 0.611 | \(+0.036\) / \(+0.050\) |
| shuf-corr | 3 | 0.611 | 0.628 | \(+0.053\) / \(+0.067\) |
| base | — | 0.710 | 0.743 | — |
| base-Trem | — | 0.709 | 0.736 | \(-0.001\) / \(-0.007\) |
Recovery increments are monotone in the number of corrected axes (\(+0.012 < +0.036 < +0.053\) for 4B). The H/W axes contribute more than the T axis alone (\(+0.036\) vs \(+0.012\)), but neither reaches shuf-corr alone; all three together are needed for full (partial) recovery. This is consistent with M-RoPE’s design: \(t_i\) is the base for all three
axes, so correcting any subset partially restores the per-frame temporal identity signal.
Holding pixels and frame order fixed, we scale the inter-frame RoPE gap by a factor \(\Delta\) (identity at \(\Delta{=}1\), reproduced token-for-token; timestamps stripped) to test whether the model reads playback rate from positional spacing. Order and attribute_change degrade under large stretch while speed and direction are unmoved at every \(\Delta\) (Table 9, Qwen3-VL 4B; the pattern replicates on Qwen3-VL 8B and Molmo2 4B/8B). The largest-\(\Delta\) degradation partly reflects positions pushed toward the edge of the trained RoPE range; a spacing-only control isolating gap size from absolute magnitude is left to future work.
| \(\Delta\) | speed | direction | order | attr_change |
|---|---|---|---|---|
| 0.25 | 0.464 | 0.513 | 0.728 | 0.760 |
| 0.5 | 0.486 | 0.519 | 0.738 | 0.778 |
| 1 | 0.492 | 0.493 | 0.742 | 0.771 |
| 2 | 0.508 | 0.510 | 0.732 | 0.767 |
| 4 | 0.495 | 0.490 | 0.715 | 0.722 |
| 8 | 0.479 | 0.496 | 0.675 | 0.677 |
Qwen3-VL injects intermediate ViT features (from layers 8, 16, 24) into LLM layers 0–2 via residual addition at visual token positions (DeepStack). To test whether DeepStack carries an independent temporal signal not present in the main ViT output pathway, we ablate it (D-conditions: DeepStack replaced with identity) and correct it (Qc-conditions: inverse permutation applied to re-align shuffled intermediate features).
| Condition | 4B | 8B | \(\Delta\) vs DS-on (4B) | \(\Delta\) vs DS-on (8B) |
|---|---|---|---|---|
| base | 0.710 | 0.743 | — | — |
| base-nds | 0.699 | 0.734 | \(-0.011\) | \(-0.009\) |
| shuf | 0.558 | 0.561 | — | — |
| shuf-nds | 0.549 | 0.572 | \(-0.009\) | \(+0.011\) |
| shuf-dsc | 0.572 | 0.587 | \(+0.014\) | \(+0.026\) |
| shuf-corr | 0.611 | 0.628 | — | — |
| shuf-corr-nds | 0.602 | 0.649 | \(-0.009\) | \(+0.021\) |
| shuf-corr-ds | 0.610 | 0.635 | \(-0.001\) | \(+0.007\) |
DeepStack contributes a small positive effect at baseline (\(-0.011/-0.009\) when ablated) and a similarly small effect under shuffle. Correcting DeepStack routing (shuf-dsc vs.shuf: \(+0.014/+0.026\)) does not close the shuffle gap. The input-space residual gap remains large without DeepStack: shuf-corr\(-\)base is \(-0.099/-0.115\) with DeepStack, whereas shuf-corr-nds\(-\)base-nds is \(-0.097/-0.085\) without it. Thus, removing DeepStack changes
the residual by only \(+0.002\) at 4B and \(+0.030\) at 8B and does not eliminate it. This indicates that DeepStack is not the independent temporal information channel responsible for the
input-space shuf-corr gap, the result is instead consistent with the gap arising primarily from causal processing in the LLM.
This experiment concerns the input-space shuf-corr residual (\(\approx 10\) pp) and shows DeepStack does not explain it. Separately, in Section 4.5, the
much smaller \(\approx 1.5\) pp act_layer0 patching residual on Qwen3-VL is closed by act_ds: during activation patching, DeepStack reinjects shuffled intermediate ViT features at
vision-token positions after the layer-0 input pre-hook fires, contaminating the patched run at layers 0–2. The two findings are compatible: DeepStack is not an independent temporal signal in normal forward operation, and is also the source of the
small patching residual specifically because of when its injections fire relative to our pre-hook. Full per-condition TVBench numbers for DeepStack-off conditions are included in Appendix 19. In recovery terms,
input-space RoPE correction (shuf-corr) closes only \(29\)–\(33\%\) of the shuffle-to-baseline gap in Qwen, whereas activation patching closes \(96\)–\(100\%\). The remainder is causally-mixed content that positional correction alone cannot reorganize. In Molmo both reach the same ceiling, consistent with bidirectional attention leaving
no content-side contamination.
The activation-patching experiments in Appendix 7 establish that visual content order (via DeepStack) commits at LM layers 0–2. We ask where the RoPE positional effect accumulates by constructing a coherent conflict: correct visual content with fully reversed MRoPE positions, then patching early layers to see whether the RoPE damage is upstream or downstream of the DeepStack window.
rop-rev: correct pixels, all three MRoPE axes deterministically reversed (\([T{-}1,\ldots,0]\) temporal, reversed H/W). Since pixels are correct, ViT outputs and DeepStack intermediate features are
identical to base; the conflict is purely between correct visual content and reversed positional encoding.
act-ds-rop-rev: rop-rev base with pre-hook input patching at LM layers 0–2. Because rop-rev and base share identical pixels their layer-0 inputs are identical; the layer-0 pre-hook is a no-op.
Effective correction is layers 1–2 only.
act-out-ds-rop-rev: rop-rev base with post-hook output patching at LM layers 0–2, replacing each layer’s output with Q0’s output (captured_act_q0[i+1]). Installs the exact Q0 hidden state entering layer 3;
reversed RoPE runs only at layers 3–35.
| Condition | 4B | \(\Delta\) base (4B) | 8B | \(\Delta\) base (8B) |
|---|---|---|---|---|
| base | 0.703 | — | 0.737 | — |
| rop-rev | 0.655 | \(-0.048\) | 0.675 | \(-0.063\) |
| act_ds | 0.704 | \(+0.001\) | 0.737 | \(-0.001\) |
| act-ds-rop-rev | 0.645 | \(-0.058\) | 0.678 | \(-0.059\) |
| act-out-ds-rop-rev | 0.645 | \(-0.058\) | 0.674 | \(-0.063\) |
Both input and output-patching are null results, localizing the RoPE accuracy damage entirely to layers 3–35. This is consistent with DeepStack content injections dominating the residual stream at layers 0–2 and absorbing any positional distortion
there; beyond layer 2 no further content injections occur and reversed-RoPE attention accumulates unchecked. The contrast with act_ds (same patch depth, shuf base, full recovery) confirms the asymmetry: content-ordering errors are
remediable at layers 0–2, positional-encoding errors are not.
Section 4.4 summarizes the timestamp-sensitivity partition. Table 12 gives the pooled results, and Table 13 the per-aspect breakdowns for aspects where \(|S_\mathrm{ts}| \geq 20\). Aspects below this threshold are suppressed; bootstrap CIs use 1000 resamples.
| Model | \(S_\mathrm{ts}\) | \(S_\mathrm{neither}\) | \(\Delta\) | ||
|---|---|---|---|---|---|
| 2-3(lr)4-5 | \(n\) | Acc | \(n\) | Acc | |
| Molmo2 4B | 93 | 0.677 | 1058 | 0.987 | \(+0.309\) |
| Molmo2 8B | 168 | 0.815 | 985 | 0.986 | \(+0.170\) |
| Qwen3-VL 4B | 78 | 0.487 | 1044 | 0.936 | \(+0.449\) |
| Qwen3-VL 8B | 98 | 0.704 | 1063 | 0.977 | \(+0.273\) |
| Model | Aspect | Acc\(|S_\mathrm{ts}\) | \(n\) | Acc\(|S_\mathrm{nei}\) | \(n\) |
|---|---|---|---|---|---|
| Molmo2 4B | attribute_change | 0.591 [0.409, 0.818] | 22 | 0.995 [0.986, 1.000] | 214 |
| direction | 0.650 [0.450, 0.850] | 20 | 0.970 [0.939, 0.994] | 165 | |
| speed | 0.771 [0.629, 0.886] | 35 | 0.985 [0.963, 1.000] | 134 | |
| Pooled | 0.677 [0.581, 0.774] | 93 | 0.987 [0.979, 0.993] | 1058 | |
| Molmo2 8B | attribute_change | 0.875 [0.771, 0.958] | 48 | 0.995 [0.984, 1.000] | 193 |
| direction | 0.923 [0.821, 1.000] | 39 | 0.993 [0.978, 1.000] | 138 | |
| order | 0.531 [0.344, 0.719] | 32 | 0.965 [0.941, 0.990] | 202 | |
| speed | 0.864 [0.750, 0.955] | 44 | 0.968 [0.937, 1.000] | 126 | |
| Pooled | 0.815 [0.750, 0.869] | 168 | 0.986 [0.979, 0.992] | 985 | |
| Qwen3-VL 4B | direction | 0.478 [0.304, 0.696] | 23 | 0.952 [0.911, 0.979] | 146 |
| speed | 0.600 [0.433, 0.767] | 30 | 0.935 [0.891, 0.971] | 138 | |
| Pooled | 0.487 [0.372, 0.603] | 78 | 0.936 [0.921, 0.950] | 1044 | |
| Qwen3-VL 8B | direction | 0.560 [0.360, 0.720] | 25 | 0.938 [0.897, 0.972] | 145 |
| speed | 0.805 [0.683, 0.927] | 41 | 0.958 [0.924, 0.986] | 144 | |
| Pooled | 0.704 [0.612, 0.796] | 98 | 0.977 [0.968, 0.986] | 1063 |
Several patterns are worth noting beyond the pooled results. First, the action aspect contributes negligibly to \(S_\mathrm{ts}\) across all four models (0–5 questions), because action accuracy is near ceiling regardless of timestamp presence; the aspect is not informative for this partition. Second, the order aspect enters \(S_\mathrm{ts}\) only for Molmo2 8B (\(n=32\), Acc\(|S_\mathrm{ts}=0.531\)), with a \(\Delta\) of \(+0.434\) — among the largest single-aspect gaps in the table. Molmo2 8B specifically appears to use timestamps to judge event order, and reversed timestamps are strongly misleading on those questions. Third, the \(S_\mathrm{ts}\) partitions are model-specific by construction: Qwen’s timestamp-reliant questions are concentrated in direction and speed, while Molmo 4B’s include attribute_change. The four models do not agree on which questions require timestamps, consistent with timestamp-dependence being a property of how each model uses the channel.
We train multi-class logistic regression probes on residual-stream activations mean-pooled over each frame’s vision span, at LM layers \(L_0, L_4, L_8, \ldots\), targeting two quantities that coincide under unshuffled
inputs and dissociate under shuffle: the original-frame index (frame target) and the slot index (slot target). Cross-condition transfer trains on shuf or shuf-corr and evaluates on base to test
whether a readout direction is condition-specific or general. Splits and bootstrap CIs follow the conventions in Section 4.5. Probes are applied to Qwen3-VL and Molmo2 only. A complementary probe trained on only
the frame-delimiter (first) token is reported in App. ¿sec:app:first-token?.
The base frame-identity probe peaks at strong accuracy in both architectures: 0.83/0.81 in Qwen 4B/8B at L20/L35; 0.42/0.46/0.80 in Molmo 4B/8B/O-7B at L20/L20/L12 (Table 14). Frame identity is linearly
recoverable from baseline mean-pooled activations through most of the network, peaking in middle-to-late layers.
Under shuf, frame identity collapses to chance in both architectures: \(\le 0.02\) across all sizes. Under shuf-corr, frame identity is partially recovered, substantially more in Molmo than
Qwen: gap closed is 74%/64%/30% (Molmo 4B/8B/O-7B) vs.%/20% (Qwen 4B/8B). Bidirectional LM attention permits more representational recovery than causal LM attention does, paralleling the behavioral recovery pattern of Section 4.5.
Under shuf, the slot-identity probe trained on base activations remains at near-baseline accuracy in both architectures (Qwen \(0.800/0.785\); Molmo \(0.402/0.451/0.783\)). Under shuf-corr, the slot readout collapses to chance in Molmo (\(0.040/0.042/0.045\)) and near-chance in Qwen (\(0.216/0.204\)). Correcting RoPE to follow original frame indices destroys the slot-organized readout direction; Molmo’s tighter RoPE anchoring makes this collapse more complete than in Qwen, where causal sequential ordering
provides residual slot signal.
The rop-shuf and rop-rev rows of Table 14 isolate the contribution of RoPE to the readout: visual content is intact but positional encoding is shuffled or reversed. Frame-probe accuracy drops
substantially in Qwen (base\(-\)rop-shuf \(= 0.629/0.610\) at 4B/8B; base\(-\)rop-rev \(= 0.651/0.617\)) and to chance in Molmo (rop-shuf frame-probe \(0.044/0.047/0.048\) across 4B/8B/O-7B). The base-trained probe reads off a representation that depends
on RoPE matching the position the model expects; when RoPE is wrong, the readout direction does not recover frame identity even with correct visual content. This is the representational counterpart to the behavioral rop-shuf effect in
Section 4.3.
| Model | Frame target | Slot target | ||
| / Condition | Acc | CI | Acc | CI |
| Qwen3-VL 4B (L20) | ||||
| base | 0.830 | [0.806, 0.856] | 0.830 | (same) |
| shuf | 0.013 | [0.007, 0.021] | 0.800 | [0.775, 0.824] |
| shuf-corr | 0.139 | [0.118, 0.163] | 0.216 | [0.187, 0.242] |
| rop-shuf | 0.201 | [0.175, 0.226] | 0.201 | (slot=frame) |
| rop-rev | 0.179 | [0.155, 0.204] | 0.179 | (slot=frame) |
| Qwen3-VL 8B (L35) | ||||
| base | 0.810 | [0.786, 0.835] | 0.810 | (same) |
| shuf | 0.010 | [0.004, 0.018] | 0.785 | [0.759, 0.812] |
| shuf-corr | 0.166 | [0.140, 0.190] | 0.204 | [0.181, 0.233] |
| rop-shuf | 0.200 | [0.174, 0.226] | 0.200 | (slot=frame) |
| rop-rev | 0.193 | [0.168, 0.220] | 0.193 | (slot=frame) |
| Molmo2 4B (L20) | ||||
| base | 0.416 | [0.393, 0.436] | 0.416 | (same) |
| shuf | 0.023 | [0.016, 0.030] | 0.402 | [0.380, 0.423] |
| rop-shuf | 0.044 | [0.036, 0.053] | 0.044 | (\(\approx\) chance) |
| shuf-corr | 0.308 | [0.288, 0.328] | 0.040 | [0.032, 0.049] |
| Molmo2 8B (L20) | ||||
| base | 0.458 | [0.434, 0.481] | 0.458 | (same) |
| shuf | 0.024 | [0.018, 0.031] | 0.451 | [0.428, 0.475] |
| rop-shuf | 0.047 | [0.037, 0.057] | 0.047 | (\(\approx\) chance) |
| shuf-corr | 0.292 | [0.272, 0.311] | 0.042 | [0.034, 0.052] |
| Molmo2 O-7B (L12) | ||||
| base | 0.799 | [0.782, 0.816] | 0.799 | (same) |
| shuf | 0.008 | [0.004, 0.012] | 0.783 | [0.766, 0.801] |
| rop-shuf | 0.048 | [0.039, 0.057] | 0.048 | (\(\approx\) chance) |
| shuf-corr | 0.238 | [0.220, 0.259] | 0.045 | [0.036, 0.054] |
| Probe | Source | Self acc | Eval on base | Retention |
|---|---|---|---|---|
| Slot, Qwen 4B | shuf (L36) | 0.812 | 0.809 | 100% |
| Slot, Qwen 8B | shuf (L35) | 0.788 | 0.796 | 100% |
| Slot, Molmo 4B | shuf (L24) | 0.455 | 0.388 | 85% |
| Slot, Molmo 8B | shuf (L20) | 0.537 | 0.463 | 86% |
| Slot, Molmo O-7B | shuf (L12) | 0.805 | 0.752 | 93% |
| Frame, Qwen 4B | shuf-corr (L8) | 0.511 | 0.466 | 91% |
| Frame, Qwen 8B | shuf-corr (L35) | 0.548 | 0.532 | 97% |
| Frame, Molmo 4B | shuf-corr (L28) | 0.307 | 0.307 | 100% |
| Frame, Molmo 8B | shuf-corr (L28) | 0.310 | 0.372 | 120% |
| Frame, Molmo O-7B | shuf-corr (L12) | 0.578 | 0.407 | 70% |
| Model | Behavioral gap closed | Frame-probe gap closed |
|---|---|---|
| Qwen3-VL 4B | 35% | 15% |
| Qwen3-VL 8B | 37% | 20% |
| Molmo2 4B | 99% | 73% |
| Molmo2 8B | 98% | 62% |
| Molmo2 O-7B | 68% | 29% |
The main probe analysis (Section 4.5) uses mean-pooled activations across all tokens in each frame’s vision span (frame delimiter plus visual patches). Here we report a complementary probe trained on the activation at only the first token of each frame’s span — the frame delimiter token.
Delimiter tokens sit at the boundary between frames in the input sequence and receive the frame’s sequential position index via RoPE. Their activations therefore primarily reflect positional-embedding lookup rather than visual content aggregated across patches. Probing them serves as a sanity check: if our RoPE injection is working correctly, the delimiter probe should show near-perfect slot accuracy under native RoPE (the delimiter token’s position encodes its slot) and near-perfect frame accuracy under corrected RoPE (the delimiter token’s position encodes the original frame index). Failure of these checks would indicate the RoPE manipulation is not reaching the model’s activations.
At layer 0, the delimiter probe under base achieves near-perfect slot (and frame) accuracy (\(\approx 0.988\)), as expected: the first layer’s delimiter activation is dominated by the positional embedding at
that slot. Under rop-shuf (correct pixels, shuffled RoPE), delimiter accuracy at L0 drops to \(\approx 0.011\) for the slot direction, confirming RoPE injection changes what the delimiter encodes. Under
shuf-corr (shuffled pixels, corrected RoPE), delimiter accuracy at L0 is \(0.749\) for the frame direction and \(\approx 0.000\) for the slot direction, consistent with the
corrected position encoding the original frame index rather than the input slot.
These checks confirm the RoPE injections are operating as intended at the input to the first LM layer. The delimiter probe is not used for the main probe analysis because delimiter activations are dominated by positional embedding lookup and do not reflect the distributed visual representation of the frame; mean pooled activations across the full vision span are a more informative measurement of how frame identity is encoded after visual processing.
Table 17 extends Table 1 with all supplementary conditions used in appendix analyses and referenced in the main text but not listed in the main table.
| Code | Pixels | Timestamps | RoPE | Notes |
|---|---|---|---|---|
| Qwen3-VL (supplementary) | ||||
| shuf-corr-T | shuffled | at original slots | T axis corrected | MRoPE T axis only |
| shuf-corr-HW | shuffled | at original slots | H/W axes corrected | MRoPE H/W only |
| shuf-corr-ds | shuffled | at original slots | corrected (all) | + DeepStack corrected |
| shuf-full | shuffled | moved with frames | corrected (all) | full correction |
| base-Trem | original | original | T removed from H/W | detangle T from spatial axes |
| base-nds | original | original | native | DeepStack off |
| shuf-nds | shuffled | at original slots | native | DeepStack off |
| shuf-corr-nds | shuffled | at original slots | corrected | DeepStack off |
| shuf-dsc | shuffled | at original slots | native | DeepStack routing corrected |
| emb-shuf | embed-then-shuffle | at original slots | native | post-ViT temporal shuffle |
| emb-shuf-ts | embed-then-shuffle | corrected to perm | native | emb-shuf + timestamp correction |
| emb-shuf-corr | embed-then-shuffle | at original slots | corrected | emb-shuf + RoPE correction |
| rop-shuf | original | original | shuffled by perm | RoPE corrupt, pixels correct |
| rop-rev | original | original | reversed | RoPE reversed, pixels correct |
| rev | reversed | at original slots | native | reversal baseline |
| rev-corr | reversed | at original slots | corrected (reversed) | reversal + RoPE correct |
| conf-ts | original | reversed | native | conflict: forward pix, rev ts |
| rev-mvts | reversed | moved with frames | native | consistent reversal |
| conf-ts2 | shuffled (perm A) | shuffled (perm B) | native | conflict: independent perms |
| Molmo2 (supplementary) | ||||
| shuf-nts | shuffled | removed | native | shuffle, no timestamps |
| rev | reversed | at original slots | native | reversal baseline |
| rev-corr | reversed | at original slots | corrected (reversed) | reversal + RoPE correct |
| blank-nts | blank | none | native | text floor (no visual, no ts) |
| base-nts | original | absent | native | baseline without timestamps |
| shuf-full | shuffled | moved with frames | corrected | full correction |
| conf-ts | original | reversed | native | conflict: forward pix, rev ts |
| rev-mvts | reversed | moved with frames | native | consistent reversal |
| conf-ts2 | shuffled (perm A) | shuffled (perm B) | native | conflict: independent perms |
| PerceptionLM (supplementary) | ||||
| rev | reversed | — | native | reversal baseline |
PerceptionLM (PLM) uses a LLaMA3 backbone with a per-frame independent ViT (no cross-frame attention, no DeepStack injections) and 1D RoPE. This makes it structurally distinct from both Molmo2 (bidirectional LM attention) and Qwen3-VL (causal LM + DeepStack), providing a third data point that separates the DeepStack and LM attention type mechanisms.
| Condition | 1B | 3B |
|---|---|---|
| base | 0.632 | 0.674 |
| single-frame | 0.459 | 0.466 |
| shuf | 0.528 | 0.527 |
| rev | 0.442 | 0.421 |
| shuf-corr | 0.556 | 0.559 |
| act_layer0 | 0.632 | 0.674 |
| act_early | 0.632 | 0.674 |
| act_late | 0.577 | 0.531 |
| act_all | 0.632 | 0.674 |
| shuf-corr \(-\) base | \(-0.076\) | \(-0.115\) |
| act_layer0 \(-\) base | \(\phantom{-}0.000\) | \(\phantom{-}0.000\) |
| act_late \(-\) base | \(-0.055\) | \(-0.143\) |
shuf-corr leaves a recovery gap of \(-0.076/-0.115\) (1B/3B), comparable to Qwen’s \(-0.099/-0.115\), confirming that RoPE correction cannot undo the damage from causal LM
processing of shuffled frame embeddings. This matches the pattern for all causal-LM models. The reversal damage (\(-0.190/-0.253\)) shows PLM does track temporal order (from positions in part, see below), despite having no
timestamp channel in its prompts.
The reverse-plus-corrected-RoPE condition (rev-corr, reversed pixels with positions held forward) places PLM on the dominance axis of Section 4.3, reported per scale in Table 19 on attribute_change (the diagnostic paired aspect), original videos only. On the original videos, accuracy falls from base by \(+0.167/+0.236\) (1B/3B). Scored against
the forward (\(E\)) and reversed (\(F\)) ground truth on the \(n=141\) informative pairs (original GT \(\neq\) reversed GT),
\(F-E = -0.525/-0.489\) (motion-dependent slice \(-0.545/-0.487\)): under conflict PLM predominantly answers the forward event (at 1B a fraction \(E=0.72\)
answer forward and \(F=0.19\) reversed, the rest a distractor; 3B is \(0.71/0.22\)), so it is a partial, position-leaning overrider. This is weaker than Molmo2 (\(F-E\) near \(-0.95\)) and more position-leaning than Qwen3-VL (\(-0.23\), and \(+0.01/+0.24\) on the motion slice), placing PLM
between the two and consistent with both positional encoding and attention type contributing (Section 5.1). The plain rev row in Table 18 (reversed pixels, native
RoPE) is a different condition and does not isolate the channel.
| Scale | base | rev-corr | drop | \(E\) | \(F\) | \(F\!-\!E\) | fwd/rev/conf (\(n\)) |
|---|---|---|---|---|---|---|---|
| 1B | 0.875 | 0.708 | \(+0.167\) | 0.716 | 0.191 | \(-0.525\) | 101/27/13 (141) |
| 3B | 0.938 | 0.701 | \(+0.236\) | 0.709 | 0.220 | \(-0.489\) | 100/31/10 (141) |
act_layer0 \(=\) base exactly at both scales, in contrast to Qwen’s \(-0.015/-0.016\) residual. PLM has no DeepStack injections, so the layer-0 pre-hook captures
exactly the point at which all visual features enter the LM; no subsequent injection can re-introduce shuffled order information. act_early \(=\) act_all \(=\)
base, confirming no further gain from patching deeper layers once the correct per-frame features are in place.
act_late is notably below baseline, especially at 3B (\(-0.143\), nearly at the shuffled-input floor). With 14 early layers processing shuffled frame embeddings causally before the late-patch window begins,
early-layer contamination is largely committed and cannot be undone by late patching. The depth-dependence of this penalty (1B: \(-0.055\); 3B: \(-0.143\)) confirms that deeper causal LMs
accumulate order information more pervasively.
Tables 20–23 report TempCompass accuracy for Molmo2 and Qwen3-VL across all behavioral conditions referenced in the main text. PerceptionLM behavioral results are in
Table 18 (Appendix 15). MRoPE axis-specific corrections (shuf-corr-T, shuf-corr-HW, shuf-corr-ds) and DeepStack-off conditions (base-nds,
shuf-nds, shuf-corr-nds) for Qwen3-VL are tabulated separately in Appendices 9 and 10 respectively. base, shuf,
rop-shuf, and shuf-corr are multi-seed averaged where indicated; other conditions are single-seed (seed 42). \(n=1580\) on 4B/8B; \(n=1564\) on O-7B. Conditions
follow the naming in Tables 1 and 17.
| Condition | 4B | 8B | O-7B |
|---|---|---|---|
| base | 0.728 | 0.737 | 0.718 |
| base-nts | 0.700 | 0.665 | 0.621 |
| single | 0.514 | 0.534 | 0.484 |
| ts-only | 0.412 | 0.393 | 0.406 |
| blank-nts | 0.425 | 0.441 | — |
| shuf | 0.545 | 0.561 | 0.556 |
| shuf-mvts | 0.590 | 0.592 | 0.570 |
| shuf-nts | 0.544 | 0.550 | 0.547 |
| rop-shuf | 0.553 | 0.580 | 0.579 |
| shuf-corr | 0.715 | 0.716 | 0.654 |
| rev | 0.442 | 0.448 | 0.447 |
| rev-corr | 0.722 | 0.720 | 0.643 |
| rev-mvts | 0.444 | 0.458 | — |
| conf-ts | 0.717 | 0.730 | — |
| conf-shuf-ts | 0.553 | 0.561 | — |
| Condition | Overall | action | attribute | direction | order | speed |
|---|---|---|---|---|---|---|
| base | 0.728 | 0.967 | 0.819 | 0.552 | 0.775 | 0.533 |
| base-nts | 0.700 | 0.964 | 0.760 | 0.537 | 0.742 | 0.495 |
| single | 0.514 | 0.908 | 0.368 | 0.349 | 0.480 | 0.432 |
| ts-only | 0.412 | 0.497 | 0.389 | 0.376 | 0.387 | 0.404 |
| blank-nts | 0.425 | 0.512 | 0.420 | 0.367 | 0.401 | 0.420 |
| shuf | 0.545 | 0.960 | 0.426 | 0.391 | 0.443 | 0.469 |
| shuf-mvts | 0.590 | 0.962 | 0.563 | 0.417 | 0.516 | 0.469 |
| shuf-nts | 0.544 | 0.956 | 0.450 | 0.396 | 0.432 | 0.452 |
| rop-shuf | 0.553 | 0.960 | 0.431 | 0.402 | 0.463 | 0.473 |
| shuf-corr | 0.715 | 0.965 | 0.812 | 0.541 | 0.756 | 0.503 |
| rev | 0.442 | 0.964 | 0.153 | 0.337 | 0.149 | 0.539 |
| rev-corr | 0.722 | 0.967 | 0.809 | 0.540 | 0.755 | 0.543 |
| rev-mvts | 0.444 | 0.959 | 0.174 | 0.331 | 0.169 | 0.521 |
| conf-ts | 0.717 | 0.967 | 0.788 | 0.546 | 0.745 | 0.539 |
| conf-shuf-ts | 0.553 | 0.964 | 0.469 | 0.394 | 0.444 | 0.463 |
| Condition | Overall | action | attribute | direction | order | speed |
|---|---|---|---|---|---|---|
| base | 0.710 | 0.970 | 0.781 | 0.504 | 0.768 | 0.530 |
| base-nts | 0.696 | 0.976 | 0.778 | 0.487 | 0.738 | 0.505 |
| single | 0.522 | 0.932 | 0.288 | 0.349 | 0.583 | 0.423 |
| ts-only | 0.384 | 0.476 | 0.340 | 0.313 | 0.434 | 0.353 |
| blank-nts | 0.392 | 0.538 | 0.330 | 0.334 | 0.411 | 0.338 |
| shuf | 0.558 | 0.970 | 0.465 | 0.397 | 0.430 | 0.492 |
| shuf-nts | 0.561 | 0.967 | 0.451 | 0.415 | 0.447 | 0.492 |
| shuf-mvts | 0.618 | 0.976 | 0.618 | 0.439 | 0.530 | 0.508 |
| shuf-corr | 0.611 | 0.973 | 0.611 | 0.445 | 0.510 | 0.498 |
| shuf-full | 0.605 | 0.976 | 0.583 | 0.427 | 0.507 | 0.511 |
| rop-shuf | 0.671 | 0.973 | 0.691 | 0.466 | 0.712 | 0.508 |
| rop-rev | 0.648 | 0.973 | 0.611 | 0.442 | 0.699 | 0.505 |
| conf-ts | 0.659 | 0.972 | 0.635 | 0.482 | 0.698 | 0.499 |
| rev | 0.455 | 0.970 | 0.194 | 0.334 | 0.209 | 0.505 |
| rev-corr | 0.493 | 0.964 | 0.337 | 0.379 | 0.219 | 0.514 |
| rev-mvts | 0.492 | 0.971 | 0.342 | 0.350 | 0.256 | 0.490 |
| conf-ts2 | 0.565 | 0.969 | 0.439 | 0.388 | 0.489 | 0.506 |
| Condition | Overall | action | attribute | direction | order | speed |
|---|---|---|---|---|---|---|
| base | 0.743 | 0.976 | 0.830 | 0.528 | 0.808 | 0.580 |
| base-nts | 0.704 | 0.973 | 0.788 | 0.499 | 0.745 | 0.521 |
| single | 0.518 | 0.920 | 0.285 | 0.313 | 0.556 | 0.479 |
| ts-only | 0.406 | 0.574 | 0.330 | 0.319 | 0.407 | 0.388 |
| blank-nts | 0.376 | 0.524 | 0.309 | 0.290 | 0.404 | 0.344 |
| shuf | 0.561 | 0.967 | 0.451 | 0.388 | 0.404 | 0.558 |
| shuf-nts | 0.558 | 0.959 | 0.431 | 0.418 | 0.424 | 0.521 |
| shuf-mvts | 0.651 | 0.967 | 0.674 | 0.445 | 0.599 | 0.562 |
| shuf-corr | 0.628 | 0.967 | 0.656 | 0.445 | 0.513 | 0.543 |
| shuf-full | 0.627 | 0.967 | 0.632 | 0.439 | 0.530 | 0.549 |
| rop-shuf | 0.708 | 0.973 | 0.757 | 0.484 | 0.748 | 0.580 |
| rop-rev | 0.687 | 0.979 | 0.667 | 0.469 | 0.719 | 0.596 |
| conf-ts | 0.723 | 0.970 | 0.789 | 0.517 | 0.784 | 0.558 |
| rev | 0.452 | 0.959 | 0.163 | 0.319 | 0.169 | 0.584 |
| rev-corr | 0.498 | 0.967 | 0.330 | 0.346 | 0.228 | 0.568 |
| rev-mvts | 0.462 | 0.964 | 0.199 | 0.320 | 0.184 | 0.581 |
| conf-ts2 | 0.586 | 0.963 | 0.450 | 0.409 | 0.511 | 0.566 |
Under rev-corr (reversed pixels, RoPE corrected to forward order) on the original videos, the two families resolve the pixel-vs-RoPE conflict through opposite channels. Table 24 scores against the forward
ground truth: Molmo’s accuracy is preserved (rev-corr \(\approx\) base), so it reads order from RoPE, while Qwen’s collapses, so it reads order from the pixels. The mirror column applies
the opposite conflict (forward pixels, reversed RoPE; the paired _reverse videos under rev-corr) graded against the forward content shown: the pattern flips, Molmo now fails and Qwen succeeds, confirming that Molmo follows RoPE
and Qwen follows the pixels in both conflict directions. (rev-corr here is original-video accuracy and equals the main-text E, Table 25, up to the few non-informative pairs.) TempCompass permutes the
answer options between {id} and {id}_reverse, so the reversed GT is matched by option text rather than letter, and we restrict to the informative pairs whose original and reversed GT differ (a few pairs per aspect whose
answer is unchanged by reversal are excluded).
| attribute_change | direction | |||||
| Model | base | rev-corr | mirror | base | rev-corr | mirror |
| Molmo2 4B | 0.965 | 0.965 | 0.312 | 0.640 | 0.635 | 0.401 |
| Molmo2 8B | 0.972 | 0.965 | 0.368 | 0.617 | 0.611 | 0.396 |
| Molmo2 O-7B | 0.965 | 0.882 | 0.458 | 0.607 | 0.573 | 0.471 |
| Qwen3-VL 4B | 0.944 | 0.576 | 0.868 | 0.657 | 0.511 | 0.569 |
| Qwen3-VL 8B | 0.972 | 0.549 | 0.896 | 0.596 | 0.449 | 0.608 |
On TVBench (no paired _reverse videos, so rev-corr is applied directly to the clips), the same dissociation appears across temporal tasks (main-text Table 3): Molmo’s accuracy is essentially
unchanged by reversal at both scales (mean temporal-task drop \(+0.04\)), while Qwen’s collapses on every temporal task at both scales (Qwen-8B overall \(0.558 \rightarrow 0.333\)).
Restricting the TempCompass reversal to the motion-dependent slice (correct from the full video, wrong from a single frame) confirms the override is not an artifact of statically answerable items (Table 26). Molmo’s override is as strong or stronger on the slice, while Qwen’s (4B and 8B, attribute_change) is confined to the static rest and vanishes where motion is required. At both scales the motion-dependent slice sits at or above zero while the static rest stays strongly negative, with the two CIs non-overlapping at 8B. Qwen direction is noisier and does not dissociate at either scale, so we do not claim it. The paired bootstrap CIs are Qwen attribute_change motion-dependent slice 4B \(+0.01\) \([-0.21,+0.23]\) and 8B \(+0.24\) \([+0.01,+0.45]\), against a strongly negative static rest (4B \(-0.49\), 8B \(-0.57\)).
Tables 25 and 26 give the full per-aspect breakdown that main-text Table 4 consolidates. Table 25 reports the original-content (\(E\)) and reversed-content (\(F\)) accuracies for both diagnostic aspects, and Table 26 splits \(F-E\) into the motion-dependent slice and the static rest.
| Model | attribute_change | direction | ||||
| E | F | \(F-E\) | E | F | \(F-E\) | |
| Molmo2 4B | 0.972 | 0.014 | \(-0.957\) | 0.632 | 0.217 | \(-0.414\) |
| Molmo2 8B | 0.965 | 0.014 | \(-0.950\) | 0.617 | 0.228 | \(-0.389\) |
| Molmo2 O-7B | 0.894 | 0.078 | \(-0.816\) | 0.566 | 0.283 | \(-0.283\) |
| Qwen3-VL 4B | 0.582 | 0.348 | \(-0.234\) | 0.517 | 0.268 | \(-0.248\) |
| Qwen3-VL 8B | 0.546 | 0.411 | \(-0.135\) | 0.443 | 0.349 | \(-0.094\) |
| Model | Aspect | full \(F\!-\!E\) | m-dep \(F\!-\!E\) (\(n\)) | rest \(F\!-\!E\) (\(n\)) |
|---|---|---|---|---|
| Molmo2 4B | attr.change | \(-0.957\) | \(-1.000\) (67) | \(-0.919\) (74) |
| Molmo2 8B | attr.change | \(-0.950\) | \(-0.983\) (59) | \(-0.927\) (82) |
| Molmo2 O-7B | attr.change | \(-0.816\) | \(-0.766\) (77) | \(-0.875\) (64) |
| Molmo2 4B | direction | \(-0.414\) | \(-0.947\) (38) | \(-0.237\) (114) |
| Molmo2 8B | direction | \(-0.389\) | \(-0.943\) (35) | \(-0.219\) (114) |
| Molmo2 O-7B | direction | \(-0.283\) | \(-0.711\) (45) | \(-0.103\) (107) |
| Qwen3-VL 4B | attr.change | \(-0.234\) | \(+0.014\) (71) | \(-0.486\) (70) |
| Qwen3-VL 8B | attr.change | \(-0.135\) | \(+0.237\) (76) | \(-0.569\) (65) |
Multi-frame gain compares the full video to a single repeated frame, and that frame was frame 0. On sequence tasks frame 0 can leak which event comes first, which would inflate single-frame accuracy and understate the gain, or make the gain depend on which frame we picked. To rule this out we measure accuracy as a function of the number of frames the model sees, \(K\in\{1,2,4,8,\text{full}\}\), sampling \(K\) evenly-spaced frames with timestamps kept. Crucially, the \(K{=}1\) point uses a middle frame, not frame 0, so it is a single-frame baseline independent of the frame-0 one. We run Molmo2-4B and Qwen3-VL-4B (greedy) on all nine TVBench tasks and pool the five temporal tasks into a model-specific motion-dependent slice (correct from the full video, wrong from frame 0) and the static remainder (Table 27).
| Group | Model | \(n\) | frame0 | \(K{=}1\)mid | \(K{=}2\) | \(K{=}4\) | \(K{=}8\) | full |
|---|---|---|---|---|---|---|---|---|
| multi-frame-dep | Molmo2-4B | 396 | 0.00 | 0.18 | 0.41 | 0.60 | 0.80 | 1.00 |
| multi-frame-dep | Qwen3-VL-4B | 355 | 0.00 | 0.41 | 0.61 | 0.74 | 0.87 | 1.00 |
| static | Molmo2-4B | 717 | 0.71 | 0.52 | 0.62 | 0.60 | 0.62 | 0.63 |
| static | Qwen3-VL-4B | 758 | 0.61 | 0.50 | 0.59 | 0.56 | 0.56 | 0.54 |
The motion-dependent items climb steeply and monotonically with \(K\) (Molmo \(0.18\!\to\!1.0\), Qwen \(0.41\!\to\!1.0\)) while the static items stay flat at \(0.5\) to \(0.6\). Three points follow. First, the climb is not a frame-0 leak: at \(K{=}1\) the frame is a middle frame, independent of the frame-0 baseline, and accuracy is still near the floor there, so the gain is caused by adding frames, the definition of cross-frame dependence. Second, a smooth monotonic curve with a flat static control is far harder to attribute to a baseline artifact than a two-point gap. Third, the signature replicates across a bidirectional (Molmo) and a causal (Qwen) model, so it is a property of the tasks, not one model’s quirk. Both families are genuinely motion-dependent (the task question), which is the premise the channel dissociation (the channel question) builds on.
Tables 28–31 report TVBench accuracy for all models and conditions. Macro-average is computed with equal weight per category. Chance baselines vary by task (0.500 for 2-choice tasks, 0.333 for 3-choice, 0.250 for 4-choice); the reported macro-average chance level is 0.315.
| Condition | 4B | 8B | O-7B |
|---|---|---|---|
| chance | 0.315 | 0.315 | 0.315 |
| base | 0.662 | 0.647 | 0.552 |
| single | 0.355 | 0.356 | 0.332 |
| shuf | 0.370 | 0.380 | 0.358 |
| shuf-mvts | 0.447 | 0.434 | 0.384 |
| shuf-nts | 0.396 | 0.397 | 0.377 |
| rop-shuf | 0.403 | 0.406 | 0.393 |
| shuf-corr | 0.657 | 0.631 | 0.522 |
| shuf-corr \(-\) base | \(-0.005\) | \(-0.016\) | \(-0.030\) |
| shuf-mvts \(-\) shuf | \(+0.077\) | \(+0.054\) | \(+0.026\) |
| Cond | Macro | ac | al | as | es | md | oc | os | st | ua |
|---|---|---|---|---|---|---|---|---|---|---|
| chance | 0.315 | 0.250 | 0.250 | 0.500 | 0.250 | 0.250 | 0.250 | 0.333 | 0.500 | 0.250 |
| base | 0.662 | 0.556 | 0.600 | 0.826 | 0.720 | 0.703 | 0.757 | 0.373 | 0.886 | 0.537 |
| base-nts | 0.610 | 0.507 | 0.506 | 0.808 | 0.685 | 0.724 | 0.486 | 0.396 | 0.886 | 0.488 |
| shuf-corr | 0.657 | 0.558 | 0.606 | 0.817 | 0.730 | 0.681 | 0.730 | 0.382 | 0.881 | 0.532 |
| shuf | 0.370 | 0.399 | 0.381 | 0.499 | 0.265 | 0.254 | 0.358 | 0.302 | 0.595 | 0.278 |
| shuf-mvts | 0.447 | 0.420 | 0.419 | 0.609 | 0.365 | 0.431 | 0.331 | 0.338 | 0.719 | 0.392 |
| shuf-nts | 0.396 | 0.379 | 0.419 | 0.535 | 0.365 | 0.250 | 0.304 | 0.382 | 0.584 | 0.342 |
| rop-shuf | 0.403 | 0.397 | 0.400 | 0.531 | 0.305 | 0.332 | 0.378 | 0.338 | 0.627 | 0.316 |
| shuf-full | 0.638 | 0.554 | 0.600 | 0.815 | 0.720 | 0.664 | 0.669 | 0.342 | 0.865 | 0.512 |
| rev-corr | 0.646 | 0.554 | 0.581 | 0.824 | 0.725 | 0.621 | 0.750 | 0.387 | 0.876 | 0.500 |
| conf-ts | 0.639 | 0.582 | 0.562 | 0.808 | 0.690 | 0.681 | 0.655 | 0.369 | 0.876 | 0.524 |
| Cond | Macro | ac | al | as | es | md | oc | os | st | ua |
|---|---|---|---|---|---|---|---|---|---|---|
| chance | 0.315 | 0.250 | 0.250 | 0.500 | 0.250 | 0.250 | 0.250 | 0.333 | 0.500 | 0.250 |
| base | 0.565 | 0.368 | 0.562 | 0.810 | 0.645 | 0.470 | 0.480 | 0.360 | 0.865 | 0.524 |
| base-nts | 0.577 | 0.371 | 0.569 | 0.808 | 0.665 | 0.547 | 0.480 | 0.373 | 0.870 | 0.512 |
| base-nds | 0.540 | 0.381 | 0.537 | 0.808 | 0.710 | 0.332 | 0.358 | 0.364 | 0.849 | 0.524 |
| shuf | 0.404 | 0.330 | 0.319 | 0.616 | 0.440 | 0.177 | 0.351 | 0.400 | 0.551 | 0.451 |
| shuf-mvts | 0.463 | 0.317 | 0.375 | 0.650 | 0.445 | 0.427 | 0.412 | 0.360 | 0.622 | 0.561 |
| shuf-corr | 0.468 | 0.334 | 0.406 | 0.698 | 0.485 | 0.220 | 0.527 | 0.373 | 0.665 | 0.500 |
| shuf-corr-T | 0.409 | 0.321 | 0.356 | 0.638 | 0.410 | 0.181 | 0.358 | 0.387 | 0.578 | 0.451 |
| shuf-corr-HW | 0.440 | 0.326 | 0.419 | 0.659 | 0.470 | 0.190 | 0.426 | 0.400 | 0.611 | 0.463 |
| shuf-corr-ds | 0.484 | 0.315 | 0.456 | 0.684 | 0.460 | 0.349 | 0.439 | 0.440 | 0.714 | 0.500 |
| shuf-full | 0.468 | 0.302 | 0.431 | 0.693 | 0.400 | 0.349 | 0.439 | 0.427 | 0.659 | 0.512 |
| shuf-nds | 0.409 | 0.336 | 0.344 | 0.604 | 0.470 | 0.228 | 0.338 | 0.400 | 0.562 | 0.402 |
| shuf-corr-nds | 0.475 | 0.310 | 0.450 | 0.712 | 0.535 | 0.284 | 0.419 | 0.391 | 0.686 | 0.488 |
| rop-shuf | 0.532 | 0.315 | 0.487 | 0.787 | 0.520 | 0.552 | 0.412 | 0.422 | 0.822 | 0.524 |
| rop-rev | 0.508 | 0.269 | 0.469 | 0.771 | 0.485 | 0.616 | 0.324 | 0.387 | 0.773 | 0.476 |
| rev | 0.302 | 0.371 | 0.200 | 0.426 | 0.340 | 0.065 | 0.270 | 0.413 | 0.227 | 0.402 |
| rev-corr | 0.325 | 0.304 | 0.269 | 0.453 | 0.400 | 0.056 | 0.297 | 0.413 | 0.314 | 0.415 |
| Cond | Macro | ac | al | as | es | md | oc | os | st | ua |
|---|---|---|---|---|---|---|---|---|---|---|
| chance | 0.315 | 0.250 | 0.250 | 0.500 | 0.250 | 0.250 | 0.250 | 0.333 | 0.500 | 0.250 |
| base | 0.558 | 0.381 | 0.544 | 0.814 | 0.685 | 0.379 | 0.392 | 0.324 | 0.870 | 0.630 |
| base-nts | 0.533 | 0.375 | 0.494 | 0.823 | 0.670 | 0.297 | 0.365 | 0.360 | 0.903 | 0.506 |
| base-nds | 0.547 | 0.379 | 0.519 | 0.826 | 0.775 | 0.323 | 0.338 | 0.347 | 0.865 | 0.556 |
| shuf | 0.370 | 0.256 | 0.375 | 0.601 | 0.440 | 0.091 | 0.338 | 0.369 | 0.514 | 0.346 |
| shuf-mvts | 0.444 | 0.315 | 0.431 | 0.647 | 0.455 | 0.341 | 0.338 | 0.324 | 0.649 | 0.494 |
| shuf-corr | 0.428 | 0.308 | 0.394 | 0.693 | 0.525 | 0.086 | 0.318 | 0.369 | 0.638 | 0.519 |
| shuf-corr-T | 0.381 | 0.267 | 0.388 | 0.606 | 0.475 | 0.069 | 0.345 | 0.316 | 0.557 | 0.407 |
| shuf-corr-HW | 0.415 | 0.295 | 0.362 | 0.642 | 0.495 | 0.103 | 0.318 | 0.396 | 0.595 | 0.531 |
| shuf-corr-ds | 0.457 | 0.299 | 0.450 | 0.700 | 0.515 | 0.159 | 0.351 | 0.382 | 0.714 | 0.543 |
| shuf-full | 0.429 | 0.317 | 0.419 | 0.656 | 0.505 | 0.129 | 0.297 | 0.338 | 0.659 | 0.543 |
| shuf-nds | 0.369 | 0.263 | 0.381 | 0.606 | 0.455 | 0.159 | 0.297 | 0.333 | 0.519 | 0.309 |
| shuf-corr-nds | 0.443 | 0.287 | 0.400 | 0.711 | 0.585 | 0.112 | 0.331 | 0.284 | 0.735 | 0.543 |
The main patterns from TempCompass replicate: shuf-corr \(\approx\) base (Molmo), shuf-corr \(\not\approx\) base (Qwen),
shuf-mvts \(>\) shuf (timestamps help when moved with frames). On moving_direction, the main-run shuf-corr collapse below shuf (0.177 vs 0.220 at 4B; 0.086 vs 0.091 at
8B) is a sampling artifact: the main TVBench run draws independent permutations per condition, so shuf and shuf-corr compare different shuffles at \(n=232\) (SE \(\approx
0.033\)); the observed differences are within 1 SE. Shared-permutation targeted runs confirm shuf-corr \(>\) shuf at both scales (\(+0.051\) at 4B; \(-0.026\) at 8B, within 1 SE). Activation patching (act_ds) fully recovers moving_direction at both scales (4B: act_ds \(= 0.487 \approx\) q0 \(=
0.461\), \(\Delta = +0.026\); 8B: act_ds \(= 0.388 \approx\) q0 \(= 0.397\), \(\Delta = -0.009\); both within noise).
act_early \(=\) act_ds at both scales, confirming saturation at the DeepStack injection depth (layers 0–2). Act_layer0 residuals (\(-0.121\)/\(-0.099\) at
4B/8B) are substantially larger than on TempCompass overall (\(-0.019\)/\(-0.007\)), consistent with motion-direction answers being more directly dependent on visual content order. Conv3d
baking does not contribute at either scale (e1 \(\approx\) shuf: \(+0.013\) at 4B, \(-0.009\) at 8B). One unexplained observation remains:
base-nts \(>\) base by \(+0.077\) on moving_direction at 4B.