Clarity on the difference between Kit and Create

Hello,

Can there be an explanation in the docs, or on this forum for now, on the difference between kit and create? In the dev docs and most places its advertised, Kit is pitched as the developer SDK and as some base-platform for developing all this other stuff.

However, there is kit.exe on my harddrive inside of the create application, which gets called Kit Dev App (on the banner). There is also the installable kit application, which is launched and called “Kit Mini”. The Kit docs will sometimes say do something “next to the kit.exe”, other times the path shows its in the create folder, instead of the kit launched app.

I was having some trouble with custom extensions working correctly, which led to exploring more of the samples/demos. To give some context for what seems confusing (at least to me) about the ‘pitch’ that kit builds modular components and dependencies are just brought it:

In Create, I can enable the physics demo extension. When doing so, I can also see lots of physics scene parameters.

I can also launch kit.exe from inside the Create folder. After doing that and enabling the same extension, the physics scene data does not show up.

Finally, if I open the deformable body demo:
(1) It works in the Create application
(2) The model loads in the Kit.exe application in the create folder: but the sphere does not fall and there is no physics
(3) The model doesn’t even load in the Kit Mini application.

p.s. since I’m not allowed to upload more than one image, I can’t show all the examples.

Hello @user56551!

Omniverse Kit is the SDK for building Omniverse applications like Create and View . It can also be used to develop your own Omniverse applications.

I have informed the dev team so that they can help answer your questions. Can you post your extension file so that the devs can help troubleshoot?

Hi Wendy, Thanks for the quick response.

What I am saying is, there seems to be something more nuanced than simply “omniverse kit is the SDK for building Create”. Look at the omniverse kit SDK Getting started: Getting Started: Extensions — Omniverse Kit 102.1.2+release.46667.2027b54e.teamcity documentation It states “While this guide can be followed from any Kit based app with UI. It was written and tested in Create.”. Maybe this is just a nuanced/confusing phrase, but it seems to keep showing up that the SDK examples rely on Create, and then the demos don’t actually work outside of it. Its pretty confusing to say that Kit is the SDK to build Create, when the documentation of Kit uses Create.

The extension I am talking about having problems (the 3 bullet points) is not mine, its the one that comes with omniverse. “omni.physx.demos-1.3.14-5.1” that was installed at “\AppData\Local\ov\pkg\create-2021.3.7\kit\extsPhysics”.

I took a look at the console in Kit Mini (item 3), and saw it was erroring on the Deformable body, hence no sphere showing up.

I am not sure item 2 is related. I was able to figure out that the physics settings show up when including in the toml;
“omni.kit.property.physx” = {}
“omni.kit.window.stage” = {}

So it seems like the dependencies for the physx demos are not really setup, and are relying on Create to have already loaded some of the dependencies. But this is just my guess, since its pretty opaque to me.

So I found for the physx demo error above, it seemed to be resolved by add “omni.kit.primitive.mesh” = {} to the dependencies in the toml file.

Hi - yes, what Kit “is” can be confusing - due to a combination of past history (what kit “is” has changed over time) and some legacy naming.

Mostly, as others have said, you can/should think of Kit as an SDK / application framework. However, as you’ve noticed, there are also some applications called “kit.exe”.

At it’s most basic, Kit is basically just a GUI application toolkit and plugin system - and it’s the plugins which do all the “work”. The kit.exe that you found that launches “Kit Mini” is kit at it’s most basic - it launches a kit with essentially no plugins loaded, so it creates an app that has nothing but a menu item for loading other plugins. Once you start loading plugins, you get more useful GUIs built, which can do more useful things.

“create” is essentially just launching kit with a pre-set bunch of plugins loaded. When things say that they were tested with “create”, that basically means that they’re known to work with that preset group of plugins.

The last executable that launches the “Kit Dev App”, is similar to create, in that it’s kit with a preset group of plugins. However, that group of plugins is more limited than “Create”, and is aimed mostly at inspecting scenes for troubleshooting or education. This particular executable is planned to be renamed / branded to something else at some point (possible “Dev.exe”?), but that obviously hasn’t happened yet.

As for the particular issue you found - yes, I suspect it is the case that the dependencies for that demo haven’t been properly set up, and instead it just relies on being run “inside Create” - which just means that they’re only known to work if Create’s preset bunch of plugins is loaded. In theory, it could probably be made to run with a more targeted set of dependencies, but development and QA resources are limited, and for things like demos, I’m guessing the thinking was they would speed things up by just saying they rely on “create”.

Hope that clarifies things a bit, and sorry for the confusion! (Also note - I’m not a member of the Kit team, so the above is just my understanding as a fellow user!)

Hi @pman79 , thanks for the explanation, combined with hacking away the last few days, I can now understand what you are saying. Hopefully your explanation will help others, and I think this should really be in the Kit documentations first pages (e.g. where the UML type diagram is).

So regarding the physicsdemo, if y’all can add these dependencies, it solves the problem and lets people run in Kit mini:

  • “omni.kit.property.physx” = {}
  • “omni.kit.window.stage” = {}
  • “omni.kit.primitive.mesh” = {}

I can appreciate the work that went into development, and also see the hard balance between early release without documentation, which makes everyone frustrated, and delaying release, which makes people equally frustrated. It would be nice though to put at least the API and Docs on github so people can do PRs to help fix documentation or missing documentation. Also adding examples tags in the API would be helpful (e.g. in the .pyi).

From a new user perspective, I think Kit Mini should be called “Dev.exe” and rebranded as “OmniverseSDK” (aka OVSDK) as the main sdk/documentation, as it is the barebones environment. “Kit Dev App” should be called “Kit.exe”, or “DebugKit.exe”, and should be under the umbrella of OVSDK, acting as the successor to the barebones environment with a few debug enhancements.

1 Like