.. meta:: :title: Isaac Sim Introduction :keywords: lang=en isaac isaac-sim robotics simulation introduction .. _NVIDIA Omniverse™ Isaac Sim: https://developer.nvidia.com/isaac-sim .. _NVIDIA Omniverse™: https://docs.omniverse.nvidia.com .. _Kit Programming Manual: https://docs.omniverse.nvidia.com/kit/docs/kit-manual/latest/guide/kit_overview.html .. _Nucleus Overview: ../../prod_nucleus/prod_nucleus/overview.html .. _What is USD?: https://developer.nvidia.com/usd .. _USD API: https://graphics.pixar.com/usd/release/index.html .. _USD Glossary of Terms & Concepts: https://graphics.pixar.com/usd/release/glossary.html .. _NVIDIA USD tutorials: https://developer.nvidia.com/usd/tutorials .. _isaac_sim_app_overview: ========================================== What Is Isaac Sim? ========================================== `NVIDIA Omniverse™ Isaac Sim`_ is a robotics simulation toolkit for the `NVIDIA Omniverse™`_ platform. |isaac-sim_short| has essential features for building virtual robotic worlds and experiments. It provides researchers and practitioners with the tools and workflows they need to create robust, physically accurate simulations and synthetic datasets. |isaac-sim_short| supports navigation and manipulation applications through ROS/ROS2. It simulates sensor data from sensors such as RGB-D, Lidar, and IMU for various computer vision techniques such as domain randomization, ground-truth labeling, segmentation, and bounding boxes. .. figure:: /content/images/isaac_main_intro_2.png :align: center System Architecture ========================================== .. image:: /content/images/isaac_overview_system_diagram_0.png :align: center Development Workflows ========================================== .. image:: /content/images/isaac_overview_workflows_diagram_1.png :align: center Omniverse Kit ========================================== |isaac-sim| uses the |kit_long| SDK, a toolkit for building native |omni| applications and microservices. |kit| provides a wide variety of functionality through a set of light-weight plugins. Plugins are authored with C interfaces for persistent API compatibility; however, a Python interpreter is also provided for accessible scripting and customization. The Python API can be used to write new extensions to |kit| or new experiences for |omni|. .. Tip:: For a more in-depth look at developing in |kit_short|, see the `Kit Programming Manual`_. Omniverse Nucleus ========================================== |isaac-sim| uses |nuc_long| to access content such as USD files for environments and robots. |nuc| services allow a variety of client applications, renderers, and microservices to share and modify representations of virtual worlds in |isaac-sim|. |nuc_short| operates under a publish/subscribe model. Subject to access controls, |omni| clients can publish modifications to digital assets and virtual worlds to the Nucleus Database (DB) or subscribe to their changes. Changes are transmitted in real-time between connected applications. Digital assets can include geometry, lights, materials, textures and other data that describe virtual worlds and their evolution through time. This allows a variety of |omni|-enabled client applications (Apps, Connectors, and others) to share and modify authoritative representations of virtual worlds. .. Note:: See `Nucleus Overview`_ for a more in-depth look at the |nuc_short| data model, architecture, and distribution platforms. USD ======================== |isaac-sim| uses the USD interchange file format to represent scenes. Universal Scene Description (USD) is an easily extensible, open-source 3D scene description and file format developed by Pixar for content creation and interchange among different tools. Because of its power and versatility, USD is being adopted widely, not only in the visual effects community, but also in architecture, design, robotics, manufacturing, and other disciplines. - For a more in-depth look at USD in |omni|, see the |nv| USD primer `What is USD?`_. - See the `USD API`_ docs for more details. - See the `USD Glossary of Terms & Concepts`_ for more details. - See the `NVIDIA USD tutorials`_ for a step-by-step introduction to USD. ========================================== Documentation Overview ========================================== The documentation is split into the following sections: Introduction, Installation Guide, API Documentation, Tutorials, Manuals, and Reference Materials. Introduction ==================== The :ref:`Introduction ` section is a basic overview of |isaac-sim| and how it fits into the ecosystem of `NVIDIA Omniverse™`_. It also outlines the architecture, workflow of |isaac-sim|, and the documentation layout. Installation Guide ==================== The :ref:`isaac_sim_app_install_workstation` is the recommended installation process for all users. |isaac-sim| also supports more advanced, headless, and remote installation options. Docker, Cloud, and Streaming-related setups are covered in the :doc:`this page ` guide. API Documentation ==================== Python API Documentation for both |omni| and |isaac-sim_short| extensions can be found :ref:`here `. Tutorials ==================== Tutorials are grouped in the categories listed below. We strongly recommend completing the :ref:`Introductory Tutorials `, :ref:`GUI Tutorials `, and :ref:`Core API Tutorials ` in order to understand all the ways |isaac-sim| can be used, before moving on to the more focused tutorials. - :ref:`Introductory Tutorials `: The fundamentals of working in |kit| and different workflows in |isaac-sim|. - :ref:`GUI Tutorials `: The fundamental concepts of robotics in |isaac-sim| via GUI. - :ref:`Core API Tutorials `: Building environments, robots, and tasks using |isaac-sim| Core Python APIs. - :ref:`Isaac Gym Tutorials `: Reinforcement learning framework and Cloner APIs. - :ref:`Replicator Tutorials `: Synthetic data generation. - :ref:`ROS Tutorials `: Examples of various ROS bridges and interfaces. - :ref:`ROS2 Tutorials `: Examples of various ROS2 bridges and interfaces. - :ref:`Isaac Cortex Tutorials `: High level behavioral programming. - :ref:`Advanced Tutorials `: Specific topics. Manuals ===================== The :ref:`Manuals ` section provides documentation for various extensions, additional examples, and features provided in |isaac-sim_short|. These generally cover APIs or details about a specific topic and are less tutorialized. Reference Material ===================== The :ref:`Reference Material ` section provides references, links, and resources to assist developers. This section also provides a suite of useful examples for users to quickly try intermediate and advanced applications in |isaac-sim|. Each example includes well-commented source code that users grab and modify for their own use cases. See the complete list of examples in the :ref:`isaac_sim_examples`.