Getting started with Omniverse Replicator#

Omniverse Replicator is created as an Omniverse Kit extension and conveniently distributed through Omniverse Code.

To use replicator you need to download the Omniverse launcher which is found here. For more details on the Omniverse launcher check this Video out.

Generating synthetic data with Omniverse Replicator is a two step process. The first step brings assets into the scene, defines and registers randomizers, annotators and writers. It also defines the event triggers for randomizers to execute. Under the hood this first step builds OmniGraph nodes to execute these steps efficiently. Once the OmniGraph nodes are built, the second step executes these nodes to generate the data, annotations and writes output to the disk in the desired form. Replicator APIs abstract these complexities from the users.

Setting up the Script Editor#

To get started with the Replicator API, you can use the Script Editor. The video below shows you how to find it in Omniverse Code. Note that the Script Editor extension is available in all Omniverse applications through the Extension manager.

Note

If you are using Isaac Sim, you will find the script editor under the top tab Window -> Script Editor. Make sure to enable it and it will pop up. It will look identical to the one shown in the gif below.

../_images/Replicator_script_editor.gif

Running and Previewing Replicator#

Running a script (see Core Functions - “Hello World” of Replicator for an example) through the Script Editor builds a replicator OmniGraph, but does not run the actual execution or logic. You can see the generated graph in the stage under Replicator/SDGPipeline. Once an Omni.Replicator graph has been created, typically by running a script in the Script Editor, data generation can be controlled through the Replicator menu item. Click on Replicator –> Run as shown in the figure below to run the generation, or Replicator -> Stop to stop it. Clicking on Replicator –> Preview performs a single iteration of randomizations and prevents data from being written to disk.

../_images/Replicator_run_preview.gif

Note

You can do this programatically too, using rep.orchestrator.run(). For more information refer to API docs.

Setting up nucleus server#

Omniverse Nucleus is the database and collaboration engine of Omniverse. With Omniverse Nucleus, teams can have multiple users connected together live with multiple applications all at once. This allows people to use the application they are the most comfortable and quickest with and really opens a lot of doors for rapid iteration.

Additionally, the local Nucleus server comes with multiple assets and scenes from NVIDIA. These assets are used through the tutorials described in the documentation. Please follow Local Nucleus Server installation instructions to get all the assets and follow along.

Scripts for Replicator#

The Replicator Extension comes with a couple of scripts that will be useful for your development experience. For example, in the scripts folder you will find our implementation of BasicWriter or Kitti writer, which you might use as a template for your own development. Below you can see where you will find the scripts.

../_images/Replicator_scripts_discovery.gif

In the gif we use VS Code, but instead you can click the folder icon and it will open the folder where the scripts are.