diff --git a/docs/core/examples/nvidia-isaac/_category_.json b/docs/core/examples/nvidia-isaac/_category_.json
new file mode 100644
index 00000000..df900e4f
--- /dev/null
+++ b/docs/core/examples/nvidia-isaac/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "NVIDIA Isaac",
+ "position": 4,
+ "link": {
+ "type": "generated-index",
+ "description": "This section covers integrating the AICA System with NVIDIA Isaac for robotics simulation and visualization. These guides show how to connect AICA Studio to Isaac Sim and Isaac Lab, enabling you to control simulated robots with full physics, visualize robot state in real time, and validate applications before deploying to real hardware."
+ }
+}
diff --git a/docs/core/examples/guides/assets/isaaclab-aica-bridge-application.webm b/docs/core/examples/nvidia-isaac/assets/isaaclab-aica-bridge-application.webm
similarity index 100%
rename from docs/core/examples/guides/assets/isaaclab-aica-bridge-application.webm
rename to docs/core/examples/nvidia-isaac/assets/isaaclab-aica-bridge-application.webm
diff --git a/docs/core/examples/guides/assets/isaaclab-aica-bridge-sim-scene.png b/docs/core/examples/nvidia-isaac/assets/isaaclab-aica-bridge-sim-scene.png
similarity index 100%
rename from docs/core/examples/guides/assets/isaaclab-aica-bridge-sim-scene.png
rename to docs/core/examples/nvidia-isaac/assets/isaaclab-aica-bridge-sim-scene.png
diff --git a/docs/core/examples/guides/assets/omnigraph-aica-bridge-add-graph.webm b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-add-graph.webm
similarity index 100%
rename from docs/core/examples/guides/assets/omnigraph-aica-bridge-add-graph.webm
rename to docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-add-graph.webm
diff --git a/docs/core/examples/guides/assets/omnigraph-aica-bridge-aica-app.webm b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-aica-app.webm
similarity index 100%
rename from docs/core/examples/guides/assets/omnigraph-aica-bridge-aica-app.webm
rename to docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-aica-app.webm
diff --git a/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-control-add-graph.webm b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-control-add-graph.webm
new file mode 100644
index 00000000..73f0f921
Binary files /dev/null and b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-control-add-graph.webm differ
diff --git a/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-control-application.png b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-control-application.png
new file mode 100644
index 00000000..6424d69a
Binary files /dev/null and b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-control-application.png differ
diff --git a/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-control-integration.webm b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-control-integration.webm
new file mode 100644
index 00000000..c8f793de
Binary files /dev/null and b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-control-integration.webm differ
diff --git a/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-graph-control.png b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-graph-control.png
new file mode 100644
index 00000000..11d7a311
Binary files /dev/null and b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-graph-control.png differ
diff --git a/docs/core/examples/guides/assets/omnigraph-aica-bridge-graph.png b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-graph.png
similarity index 100%
rename from docs/core/examples/guides/assets/omnigraph-aica-bridge-graph.png
rename to docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-graph.png
diff --git a/docs/core/examples/guides/assets/omnigraph-aica-bridge-integration.webm b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-integration.webm
similarity index 100%
rename from docs/core/examples/guides/assets/omnigraph-aica-bridge-integration.webm
rename to docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-integration.webm
diff --git a/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-launcher.png b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-launcher.png
new file mode 100644
index 00000000..b0c30648
Binary files /dev/null and b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-launcher.png differ
diff --git a/docs/core/examples/guides/assets/omnigraph-aica-bridge-scene-create.webm b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-scene-create.webm
similarity index 100%
rename from docs/core/examples/guides/assets/omnigraph-aica-bridge-scene-create.webm
rename to docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-scene-create.webm
diff --git a/docs/core/examples/guides/assets/omnigraph-aica-bridge-scene.png b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-scene.png
similarity index 100%
rename from docs/core/examples/guides/assets/omnigraph-aica-bridge-scene.png
rename to docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-scene.png
diff --git a/docs/core/examples/guides/assets/omnigraph-aica-bridge-selector.png b/docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-selector.png
similarity index 100%
rename from docs/core/examples/guides/assets/omnigraph-aica-bridge-selector.png
rename to docs/core/examples/nvidia-isaac/assets/omnigraph-aica-bridge-selector.png
diff --git a/docs/core/examples/guides/isaaclab-aica-bridge.md b/docs/core/examples/nvidia-isaac/isaaclab-aica-bridge.md
similarity index 99%
rename from docs/core/examples/guides/isaaclab-aica-bridge.md
rename to docs/core/examples/nvidia-isaac/isaaclab-aica-bridge.md
index 2913318c..fc980d0e 100644
--- a/docs/core/examples/guides/isaaclab-aica-bridge.md
+++ b/docs/core/examples/nvidia-isaac/isaaclab-aica-bridge.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 11
+sidebar_position: 3
title: Using Isaac Lab as a simulator
---
diff --git a/docs/core/examples/nvidia-isaac/omnigraph-aica-bridge-control.md b/docs/core/examples/nvidia-isaac/omnigraph-aica-bridge-control.md
new file mode 100644
index 00000000..67cdf86b
--- /dev/null
+++ b/docs/core/examples/nvidia-isaac/omnigraph-aica-bridge-control.md
@@ -0,0 +1,601 @@
+---
+sidebar_position: 2
+title: Using Isaac Sim as a simulator
+---
+
+import sceneCreate from './assets/omnigraph-aica-bridge-scene-create.webm';
+import graph from './assets/omnigraph-aica-bridge-graph-control.png';
+import launcherConfig from'./assets/omnigraph-aica-bridge-launcher.png';
+import addingGraph from './assets/omnigraph-aica-bridge-add-graph.webm';
+import application from './assets/omnigraph-aica-bridge-control-application.png';
+import integration from './assets/omnigraph-aica-bridge-control-integration.webm';
+
+# Using Isaac Sim as a simulator
+
+This guide walks you through the process of setting up **NVIDIA Isaac Sim** as a physics-based robotics simulator that
+can be controlled from **AICA Studio** using **OmniGraph** and **ROS 2**. By the end of the tutorial, you will have a
+fully functional simulation in Isaac Sim that receives joint commands from AICA Studio, simulates the robot’s motion
+with realistic physics, and streams the resulting joint states back in real time, enabling a complete closed-loop
+control workflow within a high-fidelity virtual environment.
+
+**NVIDIA Isaac Sim** is a high-fidelity robotics simulator built on NVIDIA Omniverse, providing realistic physics and
+RTX-based rendering. The **ROS 2 Bridge** extension allows Isaac Sim to publish and subscribe to ROS 2 topics, enabling
+communication with external systems like AICA Studio. **OmniGraph** is a visual, node-based programming system in Isaac
+Sim that lets you assemble data flows (called _Action Graphs_) by connecting pre-built nodes, including ROS 2 Bridge
+nodes, without writing code. For a more detailed introduction to these concepts, see the companion guide
+[Using Isaac Sim as a visualizer](/core/examples/nvidia-isaac/omnigraph-aica-bridge-visualization).
+
+In that companion guide, we set up a one-way connection where AICA Studio controls a robot (via a mock hardware
+interface or real hardware) and Isaac Sim simply mirrors its motion. In that setup, Isaac Sim does not participate in
+the control loop, it only visualizes the robot's state.
+
+This guide covers a different direction: **using Isaac Sim as the simulated hardware**. Here, Isaac Sim hosts the robot
+with full physics simulation, and AICA Studio treats it as if it were real hardware. The data flow is bidirectional:
+
+- **AICA Studio - Isaac Sim**: AICA Studio sends joint commands (positions, velocities, or efforts) to Isaac Sim via
+ ROS 2.
+- **Isaac Sim - AICA Studio**: Isaac Sim simulates the robot's physical response and publishes the resulting joint
+ states back to AICA Studio via ROS 2.
+
+From AICA Studio's perspective, the simulated robot in Isaac Sim behaves like real hardware. This makes the setup well
+suited for validating and debugging control algorithms in a physics-based environment before deploying them to a
+physical robot.
+
+:::tip
+
+If you are looking for a way to simply mirror your robot's state in Isaac Sim for monitoring or demonstration purposes,
+refer to [Using Isaac Sim as a visualizer](/core/examples/nvidia-isaac/omnigraph-aica-bridge-visualization) instead.
+
+:::
+
+## Prerequisites
+
+This guide builds on the same Isaac Sim and ROS 2 setup described in the
+[visualizer guide](/core/examples/nvidia-isaac/omnigraph-aica-bridge-visualization#prerequisites). Make sure you have:
+
+- **Isaac Sim v5 or later** installed (see the
+ [official installation instructions](https://docs.isaacsim.omniverse.nvidia.com/latest/installation/index.html))
+- Isaac Sim launched with the **ROS 2 bridge enabled** and **ROS 2 Jazzy** selected as the ROS 2 distribution
+
+If you have not done so already, follow the
+[Prerequisites](/core/examples/nvidia-isaac/omnigraph-aica-bridge-visualization#prerequisites) section of the visualizer
+guide to install and launch Isaac Sim with the correct settings.
+
+## Setting up a simple simulation environment
+
+The scene setup is the same as in the
+[visualizer guide](/core/examples/nvidia-isaac/omnigraph-aica-bridge-visualization#setting-up-a-simple-simulation-environment).
+Create a scene with a ground plane and the `Generic` robot model:
+
+1. **Create a new scene**: In Isaac Sim, go to `File` > `New` to create a new scene with default lighting.
+
+2. **Add a ground plane**: Go to `Create` > `Physics` > `Ground Plane` to add a flat ground surface.
+
+3. **Add a robot**: Download the `Generic` robot USD model from
+ [our repository](https://github.com/aica-technology/isaac-lab/tree/main/usd/robots/aica/generic) into a local
+ directory. Then, in Isaac Sim, go to `Content` > `My Computer` in the bottom left part of the screen and navigate to
+ the directory where you saved the `Generic` robot USD files. Drag and drop the `generic.usd` file into the scene.
+
+Once done with these steps, your scene should look similar to the one below:
+
+
+
+
+
+
+## Setting up the OmniGraph
+
+With the scene ready, create an action graph that handles **bidirectional** communication between Isaac Sim and AICA
+Studio. Unlike the visualizer setup (which only subscribes to joint states), this graph both **publishes** the robot's
+current state and **subscribes** to incoming commands.
+
+In Isaac Sim, go to `Create` > `Graphs` > `Action Graph` to create a new OmniGraph.
+
+
+
+
+
+
+In the OmniGraph editor, add the following five nodes:
+
+1. **ROS2 Context**: Initializes the ROS 2 context. Double-click the node to open its properties and set the `domain_id`
+ to `30`. This must match the domain ID used by AICA Studio.
+
+2. **On Playback Tick**: Triggers the graph execution on each simulation tick.
+
+3. **ROS2 Publish Joint State**: Publishes the simulated robot's current joint state to a ROS 2 topic. Set the
+ `topicName` to `/joint_states`. Select the `/world/Generic/root_joint` robot in the scene as the `targetPrim`.
+
+4. **ROS2 Subscribe Joint State**: Subscribes to joint commands sent by AICA Studio. Set the `topicName` to
+ `/joint_commands`.
+
+5. **Articulation Controller**: Applies the received joint commands to the robot. Select the `/world/Generic` robot in
+ the scene as the `targetPrim`.
+
+Now that you have all the necessary nodes, you can connect them as follows:
+
+- Connect the `Context` output of the `ROS2 Context` node to the `Context` input on both the `ROS2 Publish Joint State`
+ and `ROS2 Subscribe Joint State` nodes.
+- Connect the `Joint Names` output of the `ROS2 Subscribe Joint State` node to the `Joint Names` input of the
+ `Articulation Controller` node.
+- Connect the `Position Command` output of the `ROS2 Subscribe Joint State` node to the `Position Command` input of the
+ `Articulation Controller` node.
+- Connect the `Tick` output of the `On Playback Tick` node to the `Exec In` input of the `ROS2 Publish Joint State`
+ node, the `ROS2 Subscribe Joint State` node, and the `Articulation Controller` node.
+
+Your OmniGraph should look similar to the image below:
+
+
+
+
+
+:::info
+
+Compared to the
+[visualizer guide's OmniGraph](/core/examples/nvidia-isaac/omnigraph-aica-bridge-visualization#setting-up-the-omnigraph),
+this graph has one additional node: `ROS2 Publish Joint State` (to send state back to AICA).
+
+:::
+
+## Configuring the AICA Application
+
+On the AICA side, the key difference from the visualizer setup is the **hardware interface**. Instead of using a mock
+interface and a separate component to publish joint states, we use a **topic-based ROS 2 hardware interface** that
+communicates directly with Isaac Sim over ROS 2 topics. This interface:
+
+- **Subscribes** to the `/joint_states` topic to read the simulated robot's state from Isaac Sim
+- **Publishes** to the `/joint_commands` topic to send commands to Isaac Sim
+
+Use AICA Launcher to create a configuration that uses the latest AICA Studio version. Set the ROS 2 `Domain ID` to `30`
+to match the one configured in Isaac Sim, and include the custom community package that provides the
+`topic_based_ros2_control/TopicBasedSystem` hardware interface plugin
+
+```
+ghcr.io/aica-technology/topic-based-ros2-control:v0.1.0
+```
+
+Your launcher configuration should look similar to the image below:
+
+
+
+
+
+### Creating a New Hardware with a Topic-Based ROS 2 Interface
+
+First, create a new hardware in AICA Studio to communicate with Isaac Sim. This involves duplicating an existing
+hardware and swapping out the plugin in the URDF.
+
+1. In AICA Studio, go to the **Hardware** tab.
+2. Click on the `Generic six-axis robot arm` to open it and use **Save As** to create a copy with a new name. Name it
+ `Generic six-axis robot arm (Topic-Based Interface)`.
+3. In the URDF editor, replace the content of the URDF with the following and click **Save**.
+
+
+ Generic six-axis robot arm (Topic-Based Interface) URDF
+
+ ```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ topic_based_ros2_control/TopicBasedSystem
+ /joint_states
+ /joint_commands
+
+
+
+ -6.28
+ 6.28
+
+
+ -3.14
+ 3.14
+
+
+ -87
+ 87
+
+
+ 0.0
+
+
+
+
+
+
+ -6.28
+ 6.28
+
+
+ -3.14
+ 3.14
+
+
+ -87
+ 87
+
+
+ 0.0
+
+
+
+
+
+
+ -6.28
+ 6.28
+
+
+ -3.14
+ 3.14
+
+
+ -87
+ 87
+
+
+ 0
+
+
+
+
+
+
+ -6.28
+ 6.28
+
+
+ -3.14
+ 3.14
+
+
+ -12
+ 12
+
+
+ 0.0
+
+
+
+
+
+
+ -6.28
+ 6.28
+
+
+ -3.14
+ 3.14
+
+
+ -12
+ 12
+
+
+ 0.0
+
+
+
+
+
+
+ -6.28
+ 6.28
+
+
+ -3.14
+ 3.14
+
+
+ -12
+ 12
+
+
+ 0.0
+
+
+
+
+
+
+
+ ```
+
+
+
+In this URDF, we define a `ros2_control` hardware interface that uses the `topic_based_ros2_control/TopicBasedSystem`
+plugin. This plugin is parameterized with the names of the ROS 2 topics to subscribe to for joint states and publish to
+for joint commands as shown in the highlighted lines below:
+
+```xml
+
+
+ topic_based_ros2_control/TopicBasedSystem
+ #highlight-next-line
+ /joint_states
+ #highlight-next-line
+ /joint_commands
+
+ ...
+
+```
+
+:::warning
+
+The topic names configured in the URDF must match those set in the OmniGraph nodes in Isaac Sim. The hardware interface
+subscribes to `/joint_states` (published by the `ROS2 Publish Joint State` node) and publishes to `/joint_commands`
+(consumed by the `ROS2 Subscribe Joint State` node).
+
+:::
+
+### Creating the application
+
+Copy the YAML content below into a new application in AICA Studio and save it. This application uses the Joint
+Trajectory Controller to move the `Generic` robot between three waypoints.
+
+
+ Joint Trajectory Control application
+
+ ```yaml
+ schema: 2-0-6
+ dependencies:
+ core: v5.1.0
+ frames:
+ wp1:
+ reference_frame: world
+ position:
+ x: 0.492159
+ y: -0.020903
+ z: 0.487698
+ orientation:
+ w: 0
+ x: -0.707107
+ y: 0.707107
+ z: 0.000563
+ wp2:
+ reference_frame: world
+ position:
+ x: 0.492038
+ y: 0.1335
+ z: 0.336067
+ orientation:
+ w: 0.007248
+ x: 0.70707
+ y: -0.707064
+ z: -0.007811
+ wp3:
+ reference_frame: world
+ position:
+ x: 0.491953
+ y: 0.359307
+ z: 0.229181
+ orientation:
+ w: 0
+ x: -0.707107
+ y: 0.707107
+ z: 0.000563
+ on_start:
+ load:
+ - hardware: hardware
+ hardware:
+ hardware:
+ display_name: Hardware Interface
+ urdf: Generic six-axis robot arm (Topic-Based Interface)
+ rate: 100
+ events:
+ transitions:
+ on_load:
+ load:
+ - controller: robot_state_broadcaster
+ hardware: hardware
+ - controller: joint_trajectory_controller
+ hardware: hardware
+ controllers:
+ robot_state_broadcaster:
+ plugin: aica_core_controllers/RobotStateBroadcaster
+ outputs:
+ joint_state: /hardware/robot_state_broadcaster/joint_state
+ events:
+ transitions:
+ on_load:
+ switch_controllers:
+ hardware: hardware
+ activate: robot_state_broadcaster
+ display_name: Robot State Broadcaster
+ joint_trajectory_controller:
+ plugin: aica_core_controllers/trajectory/JointTrajectoryController
+ events:
+ transitions:
+ on_load:
+ switch_controllers:
+ hardware: hardware
+ activate: joint_trajectory_controller
+ predicates:
+ has_trajectory_succeeded:
+ call_service:
+ controller: joint_trajectory_controller
+ hardware: hardware
+ service: set_trajectory
+ payload: '{"times_from_start": [5, 7, 8], "frames": [wp1, wp2, wp3]}'
+ graph:
+ positions:
+ buttons:
+ button:
+ x: 360
+ y: 780
+ hardware:
+ hardware:
+ x: 1060
+ y: 0
+ buttons:
+ button:
+ display_name: Trigger Events Button
+ on_click:
+ call_service:
+ controller: joint_trajectory_controller
+ hardware: hardware
+ service: set_trajectory
+ payload: '{"times_from_start": [5, 7, 8], "frames": [wp1, wp2, wp3]}'
+ ```
+
+
+
+Notice that, unlike the visualizer guide's application, this one does **not** include a `JointSignalToJointStateMsg`
+component. There is no need to convert and publish joint states, the topic-based hardware interface handles all
+communication with Isaac Sim directly through the configured ROS 2 topics.
+
+Your application should look similar to the image below:
+
+
+
+
+## Interfacing Isaac Sim with AICA Studio
+
+With both Isaac Sim and AICA Studio configured, you can run the full simulation loop:
+
+1. **Start the AICA application**: Press the `Start` button in AICA Studio. The application will begin sending joint
+ commands to the `/joint_commands` topic and reading joint states from the `/joint_states` topic.
+
+2. **Start Isaac Sim**: Press the `Play` button in Isaac Sim. The OmniGraph will begin executing: it subscribes to
+ commands from AICA, applies them to the simulated robot, and publishes the resulting joint states back.
+
+You should see the `Generic` robot in Isaac Sim moving between the three waypoints defined in the application. Unlike
+the visualizer setup, the robot's motion is driven by actual physics simulation; AICA Studio is sending commands
+directly to the simulated robot, and Isaac Sim is computing the physical response in real time rather than simply
+mirroring state from a mock interface.
+
+
+
+
+
+
+
+:::tip
+
+If the robot does not move or behaves unexpectedly, verify the following:
+
+- The ROS 2 Domain ID is set to `30` in both Isaac Sim (ROS2 Context node) and AICA Studio (Launcher configuration).
+- The topic names match: `/joint_states` for state and `/joint_commands` for commands.
+- The `Generic` robot is selected as the target in both the `ROS2 Publish Joint State` and `Articulation Controller`
+ nodes.
+- The hardware rate in AICA Studio matches the simulation tick rate in Isaac Sim.
+
+:::
+
diff --git a/docs/core/examples/guides/omnigraph-aica-bridge.md b/docs/core/examples/nvidia-isaac/omnigraph-aica-bridge-visualization.md
similarity index 97%
rename from docs/core/examples/guides/omnigraph-aica-bridge.md
rename to docs/core/examples/nvidia-isaac/omnigraph-aica-bridge-visualization.md
index d2fee548..8e290ebb 100644
--- a/docs/core/examples/guides/omnigraph-aica-bridge.md
+++ b/docs/core/examples/nvidia-isaac/omnigraph-aica-bridge-visualization.md
@@ -1,5 +1,5 @@
---
-sidebar_position: 11
+sidebar_position: 1
title: Using Isaac Sim as a visualizer
---
@@ -93,7 +93,7 @@ will use a basic scene with a ground plane and a AICA's `Generic` robot model.
the directory where you saved the `Generic` robot USD files. Drag and drop the `generic.usd` file into the scene to add
the robot.
-Once down with these steps, your scene should look similar to the one below:
+Once done with these steps, your scene should look similar to the one below: