9. World Building in GUI¶
Omniverse Isaac Sim is built on NVIDIA Omniverse using tools provided in Omniverse Kit. Omniverse Kit comes with a default UI that allows the user to edit an USD stage with ease. In this tutorial, we will go over a few basic steps of adding and editing simple objects and their properties on a USD stage. This can be useful for quickly modeling an environment with obstacles to test your robot’s controls.
9.1. Learning Objectives¶
This tutorial details how to build a physics-enabled virtual world using the tools provided in the Omniverse Isaac Sim GUI. After this tutorial, you will be more experienced navigating and using the user interface to model the physical properties of viritual environments.
15 Minute Tutorial
9.2. Getting Started¶
Please review the Isaac Sim Interface tutorial prior to beginning this tutorial.
Let’s begin by adding a ground plane to the virtual environment. The ground plane will prevent any physics-enabled from falling below it. Go to the top Menu Bar and Click Create > Physics > Ground Plane. Turn on the grid to make the ground plane easier to see.
9.3. Creating the Physics Scene¶
The world has a set of general physics properties applied to the whole scene, for example, gravity. To set these general properties of the physics scene, go to the top Menu Bar and Click Create > Physics > PhysicsScene.
For the purpose of doing robotic simulations, which often involves solving for articulated objects, we will disable GPU dynamics and use MBP Broadphase inside the PhysicsScene’s Property tab.
9.4. Adding Objects to the Scene¶
Next, add a Sphere to the scene by clicking Create > Shapes > (Sphere).
All primitives in the Create menu can be transformed manually in the Viewport, or through precise input in the Property tab. Below shows how to add a sphere using the precise inputs, a cube object using purely manual adjustments, and a cone using both.
Adding a Sphere using precise inputs:
Adding a Cube using manuals adjustments:
Adding a Cone using both precise and manuals adjustments:
Now that we have some objects in the scene to cast shadows and reflect lights, let’s learn how to set up lighting.
Every new Stage is pre-populated with a
defaultLight — otherwise you wouldn’t see anything.
- Adjust the
defaultLight’s position property to see how the shadows change.
We can also add different types of lights. Let’s create a spotlight.
Go to Create > Light > Sphere Light.
Move it above all the objects we’ve added so far and turn it face down by moving it 700 units up and void the rotation in X axis.
Inside the Property Tab, change its color in Main > Color; Change its intensity Main > Intensity to 1e6; Limit the scope of the spot in Shaping -> cone:angle to 45 degrees, and soften the edge of the spotlight in Shaping -> cone:softness to 0.05.
9.6. Adding Physics Properties¶
When the objects are first added, they are only visual objects, with no physics or collision properties to them.
If you start the simulation by pressing
Play and gravity is applied, these objects do not move because they are unaffected by physics.
Let’s make a scenario to see the effect of having rigid body physics properties and collision properties.
Select the sphere, and press the
+ Addbutton in the Property tab and select Physics -> Rigid Body with Collider Preset. This adds both physics and collision to the object. You can scroll down the Property tab and find new menu items Rigid Body and Collider are added.
Select the cone and in the same manner add Physics -> Collider. This will make the cone unaffected by gravity, but has collision meshes.
Duplicate the sphere and cone after those properties are in place by selecting both of them and right-click on your mouse to dupblicate.
At this point, both spheres have the same setup for physics properties. Let’s select the second sphere and delete the collision property by finding Collider in the Property tab and remove it from the menu. Make sure to keep the Rigid Body menu untouched.
The result is that neither cone will fall because neither of them have physics properties, and both sphere will fall because both of them have physics properties. However, the second sphere will not collide with the cone because it has no collision properties. The rectangular block will stay in place and all objects will fall through it because it has neither collision or physics properties attached.
9.6.1. Adding Contact and Friction Parameters¶
For modifying frictional properties, we need to first create a different physics material and then assign it to the desired object. Go to Create > Physics > Physics Material, a popup box will ask whether it is a rigid body object or a deformable material. We’ll start with a rigid body object. A new material will appear on the stage tree, and the parameters can be tuned in its property tab.
To apply the assigned physics material to an object, select the object in the stage tree, find the menu item Physics Materials on Selected Model in the Property tab, and select the descired material in the drop down menu. Note that this is only available for objects with collision properties.
9.7. Material Properties¶
To change the color of the object, we need to first create a different material and then assign it to the objects, just like with the physics materials.
Create -> Materials -> OmniPBR
Assign the sphere to this newly created material by going to its Materials on selected models item in its Property tab, and select /World/Looks/OmniPBR from the dropdown box.
Now let’s change the property of this new material. Select OmniPBR on the stage tree, change its base color in Material and Shader/Albedo and play with its reflectivity roughness, and whatever else you find interesting.
This tutorial highlighted the user interface tools in Omniverse Isaac Sim for creating a virtual world suitable for physics simulation and testing. The following topics were covered:
Adding a ground plane, lighting, and physics.
Adding primitive shapes onto the Stage.
Editing material properties, physics properties, and collision properties.
9.8.1. Next Steps¶
Continue on to Workflows to learn different programmatic workflows for developing in Omniverse Isaac Sim.