Replicator Docker Container viewport gizmos render on output

I am seeing the light and grid gizmo in the RGB pass while using the replicator container.

It is my understanding that in orchestrator.py the viewport gets set to a setting that forces the viewport gizmos to not be seen. This code is in the _set_capture_settings function:

# Remove gizmos from RGB
_settings.set("/persistent/app/viewport/displayOptions", 1024)

I don’t know enough about the displayOptions flag to debug. I did try to set the display options to 1024 and 0 (separately) via the command line, but doesn’t makes sense to try because displayOptions gets set to 1024 in the code regardless. I’m guessing it’s a hydra texture thing, but don’t know how to debug and would be wildly speculating anyways.

Here is the commands that I run to duplicate

docker run --gpus all --entrypoint /bin/bash --rm -it -v /home/ubuntu/docker/theory_ws:/root/theory_ws:rw nvcr.io/nvidia/omniverse-replicator:1.4.7-r1
./startup.sh --allow-root --no-window --/omni/replicator/script=/root/theory_ws/test.py

/home/ubuntu/docker/theory_ws/test.py

import omni.replicator.core as rep
import omni.usd

with rep.new_layer():

    stage = omni.usd.get_context().get_stage()

    rep.set_global_seed(25)
    # Load in example asset from S3
    path ="http://omniverse-content-production.s3-us-west-2.amazonaws.com/Assets/Vegetation/Plant_Tropical/Agave.usd"
    agave = rep.create.from_usd(path)

    sphere_light = rep.create.light(
        light_type="Sphere",
        temperature=rep.distribution.normal(6500, 500),
        intensity=rep.distribution.normal(35000, 5000),
        position=rep.distribution.uniform((-300, -300, -300), (300, 300, 300)),
        scale=rep.distribution.uniform(50, 100),
        count=2
    )
    camera = rep.create.camera(focus_distance=500,f_stop=4)
    render_product  = rep.create.render_product(camera, (1024, 1024))

    # Initialize and attach writer
    writer = rep.WriterRegistry.get("BasicWriter")
    writer.initialize(output_dir="/root/theory_ws/_output", rgb=True, bounding_box_2d_tight=True)
    writer.attach([render_product])

    with rep.trigger.on_frame(num_frames=10):
        with camera:
            rep.modify.pose(position=rep.distribution.uniform((-500, 200, -500), (500, 500, 500)), look_at=(0,0,0))
        with agave:
            rep.modify.pose(rotation=rep.distribution.uniform((-90,0, 0), (-90, 0, 0)))

    rep.orchestrator.run()

using EC2 g5.2xlarge with NVIDIA Omniverse GPU-Optimized AMI

Hello @mark148! I’ve asked the team to come take a look at your post!

1 Like

Hello @mark148, you’re absolutely spot on that the following line should be hiding the gizmos and grid lines.

Are you seeing gizmos/gridlines on every frame or does it only occur on the first or first few generated frames?

Hi @jlafleche ,
all ten frames have the grid. All but 4 frames have the light icon. This is because the light is not in the camera view on some.

I found a solution.
startup.sh is using omni.code.kit . the following is a snippet from startup.sh

exec "/opt/nvidia/omniverse/code-launcher/kit/kit" \
    "/opt/nvidia/omniverse/code-launcher/apps/omni.code.kit" \
    "--allow-root" \
    "--no-window" \
    $@

I created a new startup.rep.sh which uses omni.code.replicator.kit:

exec "/opt/nvidia/omniverse/code-launcher/kit/kit" \
    "/opt/nvidia/omniverse/code-launcher/apps/omni.code.replicator.kit" \
    "--allow-root" \
    "--no-window" \
    $@

this worked and the grid and light is not there anymore.
I’m hopeful that this gets fixed in the newer version.

Thank you,

Mark Olson

With this, for my own scripts I have to add --enable omni.replicator.core-1.4.7 otherwise it uses 1.4.4 by default