Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World

Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World

Josh Tobin, Rachel Fong, Alex Ray, Jonas Schneider, Wojciech Zaremba, Pieter Abbeel · OpenAI · 2017

Framework

MuJoCo / TensorFlow

License

MIT (OpenAI baseline)

Stars

0

Summary

Introduced domain randomization for vision-based manipulation: randomize simulation textures, lighting, and camera parameters so that the real world looks like just another variation.

Abstract Summary

Domain Randomization is arguably one of the most influential techniques at the intersection of simulation and real-world robotics. Developed by OpenAI and presented at IROS 2017, the method addresses the reality gap by deliberately randomizing non-essential properties of the simulator during training. Rather than making the simulation look photorealistic, the idea is to make the neural network invariant to visual nuisance factors—such as textures, lighting, camera pose, and object colors—by exposing it to a sufficiently diverse distribution of appearances. The canonical experiment in the paper involves a robotic arm learning to localize and pick a small colored cube from a table. Instead of rendering the scene with realistic textures, the training environment randomizes every visual attribute: background images, cube texture, light positions, camera angle, and even occlusion patterns. At test time, the same neural-network policy, with no domain-specific fine-tuning, is deployed on a physical robot and successfully grasps the real cube. This demonstrated that extreme visual randomization could serve as a form of implicit domain adaptation. Mathematically, the insight is that if the support of the randomized training distribution covers the real-world appearance, then a sufficiently capacity-constrained network will learn features robust to all nuisance variations. Since 2017, domain randomization has become a standard preprocessing step in vision-based sim-to-real pipelines. Extensive follow-up work has expanded it to dynamics randomization (varying mass, friction, and actuator gains), shape randomization (domain randomization on geometry), and even adversarial variants such as learning-to-simulate. For modern robotics researchers, domain randomization remains an essential baseline approach when transferring perception and policy networks from synthetic data to hardware. The original paper is short, clearly written, and highly reproducible in MuJoCo or PyBullet. Its conceptual clarity makes it an ideal reference in sim-to-real courses and tutorials, and its influence can be traced directly to the wide adoption of synthetic training in manipulation and navigation research that followed.

Key Points

  • First systematic introduction of visual domain randomization for sim-to-real transfer.
  • Randomizes textures, lighting, camera pose, and colors instead of photorealism.
  • Achieved zero-shot transfer to a real robotic arm for cube grasping.
  • Inspired a decade of follow-up: dynamics randomization, shape DR, learning-to-simulate.
  • Conceptually simple, reproducible, and applicable to any vision-based robotic policy.

Method

Given some objects of interest $\{s_{i}\}_{i}$, our goal is to train an object detector $d(I_{0})$ that maps a single monocular camera frame $I_{0}$ to the Cartesian coordinates $\{(x_{i},y_{i},z_{i})\}_{i}$ of each object. In addition to the objects of interest, our scenes sometimes contain distractor objects that must be ignored by the network.

Our approach is to train a deep neural network in simulation using domain randomization.

Method — Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World
Fig. 2: The model architecture used in our experiments. Each vertical bar corresponds to a layer of the model. ReLU nonlinearities are used throughout, and max pooling occurs between each of the groupings of convolutional layers. The input is an image from an external webcam downsized to $(224\times 224)$ and the output of the network predicts the $(x,y,z)$ coordinates of object(s) of interest.

Experiments

We evaluated our approach by training object detectors for each of eight geometric objects. We constructed mesh representations for each object to render in the simulator.

Each training sample consists of (a) a rendered image of the object and one or more distractors (also from among the geometric object set) on a simulated tabletop and (b) a label corresponding to the Cartesian coordinates of the center of mass of the object in the world frame.

Experiments — Domain Randomization for Transferring Deep Neural Networks from Simulation to the Real World
Fig. 3: The geometric objects used in our experiments.

Sources and Demonstrations

Figures are reproduced from Tobin et al. See the full paper for experimental details and the project page, when the paper links one, for demonstrations and videos.

Share

Related Papers

EgoForce: Forearm-Guided Camera-Space 3D Hand Pose from a Monocular Egocentric Camera
SIGGRAPH 2026

EgoForce: Forearm-Guided Camera-Space 3D Hand Pose from a Monocular Egocentric Camera

Christen Millerdurai, Shaoxiang Wang, Yaxu Xie et al.

Reconstructing the absolute 3D pose and shape of the hands from the user's viewpoint using a single head-mounted camera is crucial for practical egocentric interaction in AR/VR, telepresence, and hand-centric manipulation tasks, where sensing must remain compact and unobtrusive.

manipulation manipulation simulation
Code PDF Intermediate
Code ★ 0