How to persist changes to default camera Perspective settings, visible camera types, HUD, clipping range

I’m using USD Composer 2023.2.5 Beta and I would like to change several the default settings, but I can’t figure out where or how. I guess it’s either user.config.json or in the .kit file. The things I’d like to do are:

  1. Set the default clipping range for perspective camera. I work in meters so using min of 1 doesn’t make sense, and I have to manually change it to 0.001 every time I open a file
  2. Again because I use meters, the “Camera” display type under the Eye > Show by Type > is enormous so I want it off by default.
  3. HUD – just personal preference but I want this to be gone/hidden by default

Where/how do I change these settings? I’ve tried messing with things in .kit files and user.config.json but nothing has worked yet.

You can edit the raw kit file. For 2023.2.5, which is actually the old version, you can go to “\2023.2.5\apps\omni.create.kit”. Open that in notepad and pretty much all of the settings are in there.

One thing you have to do first is turn off the “Force Settings” setting, so it allows your custom settings…
change this
app.create.forceViewportSettings = true
to this
app.create.forceViewportSettings = false

You mention my version is old, but I don’t see a newer one for Linux. The dropdown shows this as the latest version.

Second, I 'm having trouble finding settings you say are “pretty much all the settings are in there”. For example, I don’t see anything in the .kit file for controlling the HUD, camera clipping, etc. If one is looking at something in the UI, how do I figure out what setting would control it? I can’t even figure out which “extension” if at all is responsible for a given function within the app.

Ah yes. That is the latest version on Launcher, but launcher is officially Legacy now. All data in there is old. All new software is being moved to our GitHub page for developers.

Please visit this website to get started

I’ll check that out. FWIW when you google “install omniverse” you get this: Overview — Omniverse Install Guide which still says to use the launcher.

My workflow typically uses Isaac Sim, USD Composer (or Create, or something to edit USD without the bloat of isaac sim) and Nucleus (for premade assets). But kit-app-template seems like something for making new apps rather than the launcher which distributes many existing apps not available via the template repo? Maybe I am misunderstanding.

Yes I understand. Ironically that JUST changed today at 12 noon. Launcher is now officially legacy as of 40 mins ago
Omniverse Launcher Update - Omniverse / Announcements - NVIDIA Developer Forums

You should still be able to use Isaac Sim as is, and for USD Composer, if you want the latest version, please build it directly from our GitHub page at GitHub - NVIDIA-Omniverse/kit-app-template: Omniverse Kit App Template

As for Nucleus workstation, you do not need to use that for premade assets. All premade assets we have are all in our Nvidia Asset Browser available in USD Composer and Isaac Sim. For the new template, you will have to enable it in Extension Manager. It is not on by default.

@Richard3D I’m still looking for helping figuring out how to set the default camera clipping values. I’ve tried adding this to my kit file:

persistent.app.primCreation.typedDefaults.camera.clippingRange = [0.001, 10000000.0]

But when I launch: isaacsim apps/bg.usd_editor.kit --/app/printConfig=true

I still see:

"camera": {
    "clippingRange": [
        1.0,
        10000000.0
    ],
    "focalLength": 18.147562,
    "focusDistance": 400
},
"orthoCamera": {
    "clippingRange": [
        1.0,
        10000000.0
    ]
}

I’ve also tried various other versions. Here’s a full kit file that I tried. Printing the settings still shows it not getting set, and yet somehow it get set correctly in the isaac sim kit file and I can’t figure out how.

[package]
title = "BG USD Editor"
version = "0.1.0"
description = """A foundation for a base editor application."""
keywords = ["app", "bg"]  # That makes it browsable in UI with "app" filter
template_name = "kit_base_editor"


[dependencies]
"omni.kit.mainwindow" = { }  # Main uiapp

[settings]
app.create.forceViewportSettings = false

[settings.persistent]
app.create.forceViewportSettings = false
app.primCreation.typedDefaults.camera.clippingRange = [0.01, 10000000.0]
simulation.defaultMetersPerUnit = 1.0

Yes I am still trying to find out if we can even change this startup behavior. The problem is the camera is a USD Primitive type. It actually not stored in the kit file.

Curious, but what exactly are you trying to do? Is the default camera settings just annoying?

Another thing is, you should really download the latest version of USD Composer on kit 106.5 and get it from our GITHUB page. You should not be using the old version
GitHub - NVIDIA-Omniverse/kit-app-template: Omniverse Kit App Template

Actually I think my above settings are working, but I couldn’t tell because my user.config.json still said 1 and was overriding it? I’m really not sure that’s all that’s going on here, it’s all pretty complex and I’m new to it, but currently it seems to do what I want, which is start-up with a different near-clip.

My naive feedback for the team would be to make it easier to see what the setting string/key is for a given element in the UI (instead of me grepping through the whole omniverse install). Then also maybe pick/choose where settings are defined instead of having two files (.kit and user.config.json) which can create confusion. Maybe those are bad suggestions, but that’s my current thought.

As for why:
It’s just annoying because all my models are in meters, not centimeters, so as soon as I try to get reasonable close to a model it clips and I can’t see it. A near clip of 1 meter does not make much sense for my assets.

About versions:
I’m actually using the version of omniverse distributed via the isaac-sim pip install, since I am mostly using isaac sim and have just created a trimmed down kit file based on USD composer for when all I need is USD editing. I did try out the github template repo and it worked fine, but since I need isaac sim that’s the better workflow for me I think!

Have you not tried changing your default scene scale from 1.0 m to 0.01m to allow for working in cms ?

Using meters is the standard in robotics, and so things like isaac sim, curobo, and the rest of robotics SW tools assume everything is in meters. Even the URDF → USD robot converter makes everything in meters. It’s an unfortunately clash of standard practices I guess.

Marking this as the solution. Put the setting in the kit file, and delete the corresponding keys in user.config.json in ~/.local/share/ov/data/Kit/your.app.name/version.number/ and it should work.
For the clipping range it would look like this:

[settings.persistent]
app.primCreation.typedDefaults.camera.clippingRange = [0.01, 10000000.0]

For controlling camera types, I believe the setting key is app.viewport.Viewport.Viewport0.processMemory.visible etc… you can change the settings in the GUI and monitor the changes to user.config.json to see what actions change what settings.
For controlling whether cameras are visible, it’s app.viewport.Viewport.Viewport0.scene.cameras.visible.

1 Like

Great. I am glad you found the solution !

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.