IsaacSim
NVIDIA Isaac Sim™ is an open-source application on NVIDIA Omniverse for developing, simulating, and testing AI-driven robots in realistic virtual environments.
Top Related Projects
Quick Overview
IsaacSim is NVIDIA's physics-based simulation toolkit for robotics and AI research. It provides a highly realistic virtual environment for developing, testing, and training robots and AI algorithms. IsaacSim leverages NVIDIA's GPU technology to deliver high-performance simulations and photorealistic rendering.
Pros
- Highly realistic physics simulation and rendering
- Seamless integration with popular robotics frameworks like ROS and ROS2
- Supports a wide range of sensors and actuators commonly used in robotics
- Offers powerful tools for synthetic data generation and domain randomization
Cons
- Requires a powerful GPU for optimal performance
- Steep learning curve for beginners in robotics simulation
- Limited documentation and community support compared to some open-source alternatives
- Licensing may be restrictive for some users, especially in commercial applications
Code Examples
- Creating a simple robot in IsaacSim:
import omni.isaac.core.utils.stage as stage_utils
from omni.isaac.core.robots import Robot
# Load the stage
stage = stage_utils.create_new_stage()
# Create a robot
robot = Robot(
prim_path="/World/Robot",
name="my_robot",
usd_path="path/to/robot/usd/file.usd"
)
# Add the robot to the scene
stage.add_default_ground_plane()
stage.add(robot)
- Setting up a camera sensor:
from omni.isaac.sensor import Camera
# Create a camera
camera = Camera(
prim_path="/World/Camera",
name="my_camera",
position=[0, 0, 1],
rotation=[0, 0, 0]
)
# Configure camera properties
camera.set_resolution((640, 480))
camera.set_focal_length(35)
- Running a simple simulation loop:
import omni.kit.commands
from omni.isaac.core.simulation_context import SimulationContext
# Create simulation context
sim = SimulationContext()
# Run simulation for 1000 steps
for i in range(1000):
sim.step()
if i % 100 == 0:
print(f"Simulation step: {i}")
# Stop the simulation
omni.kit.commands.execute('RobloxApp.Quit')
Getting Started
- Download and install NVIDIA Omniverse and IsaacSim from the official website.
- Launch IsaacSim and create a new project.
- Import the necessary Python modules:
import omni.isaac.core.utils.stage as stage_utils
from omni.isaac.core.robots import Robot
from omni.isaac.core.simulation_context import SimulationContext
# Create a new stage and simulation context
stage = stage_utils.create_new_stage()
sim = SimulationContext()
# Add your robots, sensors, and environment objects here
# Run the simulation
sim.play()
- Customize the simulation by adding robots, sensors, and environmental objects as needed.
- Use the IsaacSim UI or Python API to control and interact with your simulation.
Competitor Comparisons
Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
Pros of Bullet3
- Open-source and lightweight physics engine
- Widely used in game development and robotics simulations
- Extensive documentation and community support
Cons of Bullet3
- Less advanced graphics rendering capabilities
- Limited built-in tools for complex robotics simulations
- Requires more manual setup for advanced features
Code Comparison
Bullet3:
btDefaultCollisionConfiguration* collisionConfiguration = new btDefaultCollisionConfiguration();
btCollisionDispatcher* dispatcher = new btCollisionDispatcher(collisionConfiguration);
btBroadphaseInterface* overlappingPairCache = new btDbvtBroadphase();
btSequentialImpulseConstraintSolver* solver = new btSequentialImpulseConstraintSolver;
btDiscreteDynamicsWorld* dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher, overlappingPairCache, solver, collisionConfiguration);
IsaacSim:
from omni.isaac.core import SimulationContext
from omni.isaac.core.utils import stage, extensions
simulation_context = SimulationContext(physics_dt=1.0 / 60.0, rendering_dt=1.0 / 60.0)
simulation_context.initialize_physics()
simulation_context.play()
IsaacSim provides a higher-level API for simulation setup, while Bullet3 requires more low-level configuration. IsaacSim offers a more integrated environment for robotics simulations, including advanced rendering and built-in tools. However, Bullet3's lightweight nature and wide adoption make it a versatile choice for various applications beyond robotics.
Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
Pros of Filament
- Lightweight and efficient real-time physically based rendering engine
- Cross-platform support for Android, iOS, Linux, macOS, Windows, and WebGL
- Extensive documentation and active community support
Cons of Filament
- Primarily focused on rendering, lacking simulation capabilities
- Steeper learning curve for non-graphics programmers
- Limited built-in physics and AI integration
Code Comparison
IsaacSim (Python):
import omni.isaac.core.utils.stage as stage_utils
import omni.isaac.core.utils.prims as prim_utils
stage = stage_utils.create_new_stage()
cube_prim = prim_utils.create_prim(
prim_path="/World/Cube",
prim_type="Cube",
attributes={"size": 100}
)
Filament (C++):
#include <filament/Engine.h>
#include <filament/Renderer.h>
auto engine = Engine::create();
auto renderer = engine->createRenderer();
auto scene = engine->createScene();
auto view = engine->createView();
view->setScene(scene);
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME

Isaac Sim
â ï¸ PRE-RELEASE SOFTWARE NOTICE This is pre-release, currently in development. You may encounter bugs, incomplete features, and other issues that will be addressed in future releases. Please report any issues you encounter. This will be finalized into a stable release in the future.
NVIDIA Isaac Sim⢠is a simulation platform built on NVIDIA Omniverse, designed to develop, test, train, and deploy AI-powered robots in realistic virtual environments. It supports importing robotic systems from common formats such as URDF, MJCF, and CAD. The simulator leverages high-fidelity, GPU-accelerated physics engines to simulate accurate dynamics and support multi-sensor RTX rendering at scale. It comes equipped with end-to-end workflows including synthetic data generation, reinforcement learning, ROS integration, and digital twin simulation. Isaac Sim provides the infrastructure needed to support robotics development at any stage.
Key Features
- Asset Import & Export: Importing and exporting robots and environments from and to non-USD format.
- Robot Tuning: Optimize robot for physics accuracy, computation efficiency, or photorealism
- Robot Simulation: Tools for moving robots, such as controllers, motion generation and kinematics solvers, and policy integration.
- Sensors: RTX and physics-based sensors
Key Applications
- Isaac Lab: GPU-accelerated framework built for reinforcement learning, imitation learning, and motion planning.
- ROS Bridge: Integration with Robot Operating System (ROS).
- Synthetic Data Generation: Collection of SDG tools
Documentation
For the latest Isaac Sim documentation, see Isaac Sim Documentation. Follow these links to get started:
Prerequisites and Environment Setup
Ensure your system is set up with the following before building Isaac Sim:
-
Operating System: Windows 10/11 or Linux (Ubuntu 22.04)
(Linux) Ubuntu 24.04 Ubuntu 24.04 is not fully supported at this time. Building with Ubuntu 24.04 requires GCC/G++ 11 to be installed, GCC/G++ 12+ is not supported.
-
GPU: For additional information on GPU features and requirements, see NVIDIA GPU Requirements
Local Workstation
Min Recommended Best RTX 4080 RTX 5080 RTX PRO 6000 Blackwell Workstation RTX 5880 Ada RTX PRO 5000 Blackwell Workstation Datacenter
Min Recommended Best A40 L40S RTX PRO 6000 Blackwell Server L20 -
Driver: See NVIDIA Driver Requirements
-
Internet Access: Required for downloading the Omniverse Kit SDK, extensions, and tools.
Required Software Dependencies
-
Git: For version control and repository management
-
Git LFS: For managing large files within the repository
-
(Windows - C++ Only) Microsoft Visual Studio (2019 or 2022): You can install the latest version from Visual Studio Downloads. Ensure that the Desktop development with C++ workload is selected. Additional information on Windows development configuration
-
(Windows - C++ Only) Windows SDK: Install this alongside MSVC. You can find it as part of the Visual Studio Installer. Additional information on Windows development configuration
-
(Linux) build-essentials: A package that includes
makeand other essential tools for building applications. For Ubuntu, install with:sudo apt-get install build-essential(Linux) â ï¸ Please use GCC/G++ 11, higher versions are not supported yet. To install GCC/G++ 11, run the following commands:
sudo apt-get install gcc-11 g++-11 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 200 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 200Compiler Version Check â ï¸ We have added a version checker to our build process. If you do not have the default versions you are still able to execute a build, add
--skip-compiler-version-checktobuild.[sh/bat]when building. Proceed at your own risk, unsupported build environments may encounter build and runtime issues.
Recommended Software
-
(Linux) Docker: For containerized development and deployment. Ensure non-root users have Docker permissions.
-
(Linux) NVIDIA Container Toolkit: For GPU-accelerated containerized development and deployment. Installation and Configuring Docker steps are required.
-
VSCode (or your preferred IDE): For code editing and development
Quick Start
This section guides you through building Isaac Sim from source code.
1. Clone the Repository
git clone https://github.com/isaac-sim/IsaacSim.git isaacsim
cd isaacsim
git lfs install
git lfs pull
2. Build
Run the following command to initiate the configuration wizard:
Linux:
Confirm that GCC/G++ 11 is being used before building using the following commands:
gcc --version
g++ --version
./build.sh
Windows:
â ï¸ Windows Path Length Limitation Windows has a path length limitation of 260 characters. If you encounter errors related missing files or other build errors, try moving the repository to a shorter path.
build.bat
3. Run
â ï¸ Startup Time The first time loading Isaac Sim may take up to several minutes as Extensions and Shader are loaded and cached. The subsequent startup time should be in the ranges of 10-30 seconds depending on hardware configuration.
Navigate to the corresponding binary directory for your platform and run the executable.
Linux:
cd _build/linux-x86_64/release
./isaac-sim.sh
Windows:
cd _build/windows-x86_64/release
isaac-sim.bat
NOTE: If this is your first time building Isaac Sim, you will be prompted to accept the Omniverse Licensing Terms.
Advanced Build Options
Isaac Sim uses a custom build system with the following key options:
Core Build Options
-c, --clean: Clean the repository and exit-x, --rebuild: Clean the repository before building (full rebuild)-h, --help: Show all available build options
Configuration Options
--config [debug|release]: Specify build configuration (default: both)-d, --debug: Build only debug configuration-r, --release: Build only release configuration
Advanced Options
-j NUM_CORES, --jobs NUM_CORES: Limit the number of parallel compilation jobs-v, --verbose: Enable verbose build output-q, --quiet: Suppress build output
Build Steps Control
--fetch-only: Only fetch dependencies and stop-g, --generate: Generate projects, stage files and stop-s, --stage: Stage files, skip generation step-b, --build-only: Only perform building step, skip others--post-build-only: Only perform post-build step
Usage
Congratulations on installing Isaac Sim! To get started with using Isaac Sim, follow these Quick Tutorials. For more information, visit our full documentation.
Troubleshooting
-
Please see the FAQ, Troubleshooting, and Known Issues for common questions, fixes, and workarounds.
-
On linux, if you encounter network connectivity issues when building (such as corporate firewalls), run the following commands:
export http_proxy="http://{Your IP address}:7890" export https_proxy="http://{Your IP address}:7890"
Support
- Please use GitHub Discussions for discussing ideas, asking questions, and requests for new features.
- Github Issues should only be used to track executable pieces of work with a definite scope and a clear deliverable. These can be fixing bugs, documentation issues, new features, or general updates.
Connect with the NVIDIA Omniverse Community
Have a project or resource you'd like to share more widely? We'd love to hear from you! Reach out to the NVIDIA Omniverse Community team at OmniverseCommunity@nvidia.com to discuss potential opportunities for broader dissemination of your work.
License
Licensing terms can be found in the License File.
Citation
To cite Isaac Sim, click on "Cite this repository" in the right sidebar of the Isaac Sim GitHub repository landing page and select one of the listed citation entries.
Contributing
We do not support direct community contributions at the moment.
Top Related Projects
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot