π

Reactive Real-time Flow Policies

Sungjae Park, Shubham Tulsiani

Carnegie Mellon University

πR² makes large-scale, action-chunking flow policies (e.g., VLAs) reactive and real-time with a fast proprioception channel, asynchronous vision and language, and a latency-adaptive flow schedule.

~4×
faster than the base policy
plug & play
fine-tune any flow policy
up to +30%
higher success in the real world

The problem

Large-scale flow policies are slow, lacking reactivity

A modern large-scale flow policy (e.g., VLAs) rests on three ingredients: (1) it predicts actions in chunks, (2) generates each chunk by iterative denoising, and (3) leverages a large backbone (e.g., VLM). These make replanning at every step too expensive, so the policy commits to a chunk and runs it open-loop, blind to the sensory input arriving mid-chunk. Two coupled limitations follow: reduced reactivity, because a chunk plays open-loop while the next is computed, and increased latency, because every action is based on stale observations.

Toggle the demo below to compare one inference loop across Synchronous Inference, Train-Time RTC, and πR². The two modifications behind πR² are detailed in the Method.

d = latency of one denoising step · d_vlm = latency of the VLM forward (both in control steps)

Method

π: two changes to existing flow policies

πR² makes two changes to a large-scale flow policy: proprioception-reactive diffusion forcing for reactivity, and a latency-adaptive flow schedule for real-time control. Both leave the backbone untouched, so πR² drops into existing flow policies (e.g., GR00T-N1.7) by fine-tuning, without training from scratch.

Modification 1 · proprioception-reactive diffusion forcing

React to proprioception, let vision and language lag

Standard diffusion denoises the whole chunk at one noise level, tying every action to one stale observation. Diffusion forcing instead gives each position its own noise level, so each denoising step reads a fresher observation. πR² splits this conditioning into two channels:

Fast channel

Proprioception, fresh every tick

Fresh proprioception (joint state, torque, fingertip force) at every denoising step.

Slow channel

Vision & language, asynchronously stale

A slower background loop; a learned delay embedding lets the policy tolerate the lag.

Proprioception-reactive diffusion forcing

Fresh proprioception conditions every denoising step, while the vision-language feature updates asynchronously and the buffer streams out one action at a time.

Modification 2 · latency-adaptive schedule

The staircase: one model, any latency

Proprioception-reactive diffusion forcing itself is not enough: it assumes the denoising step is instant (delay d = 0), re-planning every control step. Real inference takes d > 0 steps, and d varies with model, GPU, and network, so applying it naively would stall the robot at every step while it waits for the forward pass. πR²'s latency-adaptive schedule absorbs that delay as a staircase with three regions:

Clean front · d

In-flight actions

The d actions already executing, clamped clean as inpaint conditioning.

Ramp

Clean to noise

The interior ramps clean-to-noise, so one step emits d finished actions.

Noise tail · d

Fresh slots

d fresh-noise slots appended at the back as the buffer slides.

Latency-adaptive noise schedule

Drag the slider to set the measured delay d. The schedule reshapes so that a single denoising step always emits d clean actions, keeping control real-time at any latency.

delay d = 2

This is a diffusion-forcing generalization of Train-Time RTC: both clamp the same clean front of d in-flight actions, but RTC applies a single shared noise level to the rest, while the staircase's ramp and tail let one denoising step emit d clean actions.

Real world · xArm6 + XHand · GR00T-N1.7

Real World Results

πR² tracks smoothly through contact, replanning closed-loop every 1-2 control ticks instead of committing to a long open-loop chunk. All methods fine-tune GR00T-N1.7 (xArm6 + XHand, 25 Hz).

1× real-time
πR² (ours)
Flow, Synchronous
Naive Async (TE)
Train-Time RTC
πR² (ours)
Flow, Synchronous
Naive Async (TE)
Train-Time RTC
πR² (ours)
Flow, Synchronous
Naive Async (TE)
Train-Time RTC
πR² (ours)
Flow, Synchronous
Naive Async (TE)
Train-Time RTC

πR² reacts to proprioception instantly, while baselines run a stale plan.

1× real-time

πR² closes on the force spike as the book lands; RTC reacts too late and it slips.

index fingertip force (N)thumb-bend action (rad)
πR² (ours)
Train-Time RTC

RTC reacts late to the force feedback and its index force overshoots out-of-distribution; πR² stays controlled.

index fingertip force (N)index_j1 action (rad)
πR² (ours)
Train-Time RTC

RTC squeezes too hard, its middle-finger force spikes, and the book drops; πR² grips just enough to lift it.

middle fingertip force (N)index_j1 action (rad)
πR² (ours)
Train-Time RTC

RTC's thumb never contacts the ball (thumb force ~0) but keeps going; πR² grasps it with both fingers.

index force (N)thumb force (N)index_j1 action (rad)thumb_bend action (rad)
πR² (ours)
Train-Time RTC

Quantitative results

πR² leads on every task, in both success rate and progress.

Flow, Synchronous Naive Async (TE) Train-Time RTC πR² (ours)

πR² matches the demonstration's smoothness and speed.

Next to the human teleoperator who collected the demos, πR² runs continuously and keeps pace, without the chunk-boundary stalls of open-loop baselines.

1× real-time
Human teleoperation
πR² (ours)
Human teleoperation
πR² (ours)
Human teleoperation
πR² (ours)
Human teleoperation
πR² (ours)

Simulation

Success rate vs. inference delay

For a fixed unit-delay budget d₀, each method incurs a different effective delay, which is why πR² holds up as the budget grows. Drag d₀.

unit delay d₀ = 2
Flow, naive async Flow, Train-Time RTC πR² (w/o async) πR² (full)

Limitations

What π does not solve yet

πR² is a first step toward reactive, real-time flow policies, and a few limitations stand out.

Limitation 1

Reactive data is hard to collect

Teleoperated demonstrations that are themselves highly reactive are hard to collect, so the data tends to hold only limited reactive recovery behavior.

Limitation 2

Proprioception conditioning

We condition on proprioception more often than on vision and language. Better conditioning, and richer tactile signals such as tactile images, remain open.

Limitation 3

Only local replanning

If the early denoising steps plan toward the next subtask, the last denoising step with fresh proprioception may not be able to revert it, so the robot might recover late (see clip).

Insert Box: the box is left misplaced, and πR² corrects only late.

BibTeX

@misc{park2026pir2, title = {{\pi}R^2: Reactive Real-time Flow Policies}, author = {Park, Sungjae and Tulsiani, Shubham}, year = {2026} }

Acknowledgements

We appreciate the helpful discussions with CISCO, Tony Tao, Andrew Wang, Jason Liu, and Yuxuan Kuang. We also thank Yishu Li, Kallol Saha, and Soumojit Bhattacharya for helping real-world experiments. Lastly, we thank Hyeonwoo Kim for the feedback on website design. This work was supported by gift awards from CISCO, Google, and NSF Award IIS-2442282.