UniFlow: A Unified Multi-Modal Policy for Robot Manipulation

Treat 3D as an image, and geometry inherits 2D pretraining.

Ge Yan1, Shun Iwase2, Yuzhi Fan1, Dieter Fox1,3, Sergey Zakharov2, Katherine Liu2

1University of Washington2Toyota Research Institute3Allen Institute for AI

Conference on Robot Learning (CoRL) 2026

Overview

TL;DR

UniFlow represents 3D as an image, a pointmap of the 3D point (x, y, z) seen at each pixel of the RGB image, so pretrained 2D encoders can encode both without needing a pretrained 3D encoder. It stays robust under scene shifts and, with no robot data pretraining, learns four real tasks from about an hour of demonstrations, beating the large-scale pretrained π0.5 on average.

PointmapsDomain shiftRoboTwinReal world

Abstract

Visuomotor manipulation policies face a persistent trade-off: image-only policies inherit the semantic priors of large-scale 2D pretraining but are brittle to lighting, texture, and viewpoint shift, whereas 3D-only policies are robust to such factors yet are often trained from scratch. Some recent multi-modal policies combine both streams but typically process 3D through a from-scratch encoder, preserving this asymmetry. We present UniFlow, a unified 2D+3D co-training recipe for manipulation in which 3D observations are represented as image-shaped pointmaps (per-pixel 3D coordinates) so that pretrained 2D backbones can be used to encode both modalities, and RGB and pointmap streams are fused by a unified diffusion transformer with per-modality modulation. On average across thirteen dexterous manipulation tasks from the challenging Large Behavior Model (LBM) simulation benchmark, UniFlow outperforms a strong RGB-only baseline in a distribution-shifted setting. UniFlow also outperforms the generalist vision-language-action (VLA) model π0.5 when averaged over five RoboTwin bimanual tasks as well as four real-world tasks on the bimanual YAM platform.

An image of geometry

A pointmap stores, at every pixel, the 3D point that the pixel sees. It has the same shape as the camera image and lines up with it pixel for pixel, so the same kind of pretrained 2D encoder that encodes RGB can encode geometry, with no point sampling or neighbor search. Below, every frame of a real demonstration is a pointmap: drag the divider to compare it with the RGB image, then lift it into 3D.

RGBPointmap
hover the image for (x, y, z)
Figure 1. Teleoperated demonstrations from the YAM head camera (ZED 2i stereo depth), at 2× speed. A pointmap pixel is X = (u − cx) · Z / fx, Y = (v − cy) · Z / fy, shown as (R, G, B) = (X, Y, Z); blank pixels have no stereo depth. The 3D view starts from the head camera's own pose and lens; the table behind moving objects comes from a static background accumulated over the clip, and pixels without depth are filled in flat from the depth around them.

How it works

RGB and pointmap tokens stay separate streams all the way into a unified diffusion transformer. Each stream keeps its own modulation and feed-forward weights, and all of them meet in one joint self-attention with the noisy action tokens. Hover a block for details.

swipe to explore the diagram →

Figure 2. UniFlow architecture. Pretrained 2D encoders encode each camera's RGB image and its pointmap; MMDiT-Any blocks give each modality its own AdaLN, attention projections and feed-forward layers around one joint attention, and a consistency flow-matching action head decodes the action chunk in a few steps.
01

Pretraining for both streams

Because a pointmap is an image, geometry is encoded by a pretrained 2D encoder just like RGB, not by a point-cloud network trained from scratch. It needs no point sampling or neighbor search, and its tokens sit next to the RGB tokens in the same transformer.

02

Separate streams, joint attention

MMDiT-Any blocks give every stream its own adaptive layer norm, attention projections and feed-forward network, so RGB and geometry share neither statistics nor weights, while one joint self-attention lets every token see every other.

03

Few-step actions

Training with ManiFlow's consistency flow-matching objective lets the policy decode an action chunk from noise in a few Euler steps, executed receding-horizon.

Simulation · LBM benchmark

Robust when the scene shifts

Thirteen dexterous tasks from the Large Behavior Model study (Barreiros et al., Science Robotics 2026), seven bimanual and six single-arm, in the Drake simulator. Every policy runs the same seeded scenes in-domain and under a domain shift that adds a second light, swaps the environment map, perturbs camera poses and intrinsics, re-textures objects and table, and in some scenes adds distractors. The LBM baseline is a four-camera variant of that study's RGB-only diffusion policy, trained on the same demonstrations.

Under shift, the RGB-only policy loses more than half of its success. UniFlow, which also encodes geometry, stays close to its in-domain level.

Average success over 13 LBM tasks

In-domain → domain shift

    Same scene, four policies

    Pick a task and a scene: all four policies start from the same randomized state. Besides LBM and UniFlow, the panel shows UniFlow's two single-modality variants, trained with the pointmap or the RGB stream removed.

    Condition
    Scene
    0.0 / 0.0 s

    All four policies start from the same randomized scene. Videos at 2× speed; outcomes from the benchmark's success checker.

    Task by task

    The gap is not carried by a few tasks: under shift, UniFlow is ahead of the RGB-only policy on every one of the thirteen.

    Per-task success rate

    Matched rollouts per task (100 per cell, a few 95–99 after simulator crashes)

      Figure 3. UniFlow under domain shift on all 13 tasks, one rollout each from the matched scenes used in the paper's qualitative figures, at 2× speed. Click a clip to compare it with the other policies.

      One shift at a time

      The full shift stacks several perturbations, and a camera-frame pointmap could plausibly be fragile to camera motion. Re-running UniFlow with one axis at a time on the same scenes shows otherwise: no single axis, the camera included, costs it more than a few points. Drag the divider to compare a nominal rollout with a shifted one.

      Nominal
      Texture

      Task

      Shift axis

      UniFlow, average over 13 tasks

      Success rate (%) with one shift axis at a time

      Every single axis stays within a few points of the in-domain average, including camera pose and intrinsics, and the full combined shift is no worse than the weakest single axis.

      Simulation · RoboTwin 2.0

      One checkpoint, five bimanual tasks

      RoboTwin 2.0 randomizes scene appearance, object placement and lighting across rollouts. Each method trains one multi-task checkpoint on 100 demonstrations per task: π0.5 is fine-tuned on them from its large-scale robot data pretraining, while UniFlow has no robot data pretraining, only off-the-shelf pretrained encoders. UniFlow still has the best average, ahead of both the generalist VLA π0.5 and the 3D policy ManiFlow, and it is best of the three on Handover block, Lift pot and, narrowly, Move can pot, which suggests its edge is on tasks that need precise 3D placement.

      RoboTwin multi-task success rate (%)

      100 rollouts per task · UniFlow and ManiFlow use the head camera, π0.5 the head and both wrist cameras

        Real world · bimanual YAM

        On a real robot

        One multi-task UniFlow policy, trained on 191 teleoperated demonstrations (about an hour) across four rack tasks, against π0.5 fine-tuned on the same data. Apart from its off-the-shelf pretrained encoders, UniFlow has seen no robot data beyond these demonstrations; π0.5 starts from large-scale robot data pretraining. UniFlow reads a ZED 2i head camera and two ZED M wrist cameras, with pointmaps from on-device stereo depth. It reaches a higher average task score than π0.5, and the difference is clearest where geometry matters most: passing a thin plate from one arm to the other.

        Plate Handoff · same task, same demonstrations

        π0.5 often misses the thin plate edge during the transfer and drops it; UniFlow hands the plate off and racks it.

        Figure 4. UniFlow on all four tasks (Plate Handoff, Plate Placement, Cup Stacking, Spoon Sort), run autonomously by one multi-task checkpoint, at 2× speed and trimmed to the task. Click a clip to enlarge it. Rollouts are scored by a human evaluator with a partial-credit rubric; the per-task results are in the paper.

        What makes it work

        Two ablations test the idea of treating 3D as an image: the pointmap stream beats point-cloud encoders, pretrained or not, and its 2D pretraining matters, since the same encoder started from random weights does much worse.

        Pointmaps beat point-cloud encoders

        Only the geometry stream is swapped; the RGB stream, backbone, objective and action head stay fixed. Single-task RoboTwin Lift Pot, 50 demos, 100 rollouts.

        2D pretraining transfers to geometry

        Same architecture, data and compute; only the initialization of the ConvNeXt V2 pointmap encoder changes. Single-task Put red bell pepper in bin (LBM, in-domain).

        An image-shaped 3D input lets the geometry encoder start from pretrained 2D weights; starting the same encoder from random weights costs a large part of the policy's success.

        Conclusion

        UniFlow represents 3D observations as pointmaps so that pretrained 2D backbones encode both RGB and geometry, and fuses the two streams with per-modality modulation. Across the LBM benchmark it holds its in-domain performance under domain shift, where an RGB-only policy does not, and with no robot data pretraining it outperforms the large-scale pretrained π0.5 on average in RoboTwin and on four real-world bimanual tasks. Treating 3D as an image is a simple way to bring large-scale 2D pretraining to robust multi-modal robot policies.

        BibTeX

        @inproceedings{yan2026uniflow,
          title     = {UniFlow: A Unified Multi-Modal Policy for Robot Manipulation},
          author    = {Yan, Ge and Iwase, Shun and Fan, Yuzhi and Fox, Dieter and Zakharov, Sergey and Liu, Katherine},
          booktitle = {Conference on Robot Learning (CoRL)},
          year      = {2026}
        }