# Off-Line Programming

Robpod Studio can be used to perform **off-line programming** using the [connected simulator ](/simulation/connect-a-simulator.md)when a real robot is not available.

Integrated simulator functions for off-line programming are provided by the ![](/files/I7y6Y5nf9aiOmzJ783wu) **Simulator Tool Bar**:

<table data-header-hidden><thead><tr><th width="234"></th><th></th></tr></thead><tbody><tr><td><img src="/files/iYMzbtX1utHAv7alO4zr" alt=""> <strong>Run On Simulator</strong></td><td>Run the selected robot script inside the simulation environment.</td></tr><tr><td><img src="/files/ljlJxh05dzYtqTjE3dSC" alt=""> <strong>Add Joint Pose</strong></td><td>Add current simulated robot joint pose to robot script.</td></tr><tr><td><img src="/files/qyVebg7MUQzMe7b39snv" alt=""> <strong>Add Tool Pose</strong></td><td>Add current simulated robot tool pose to robot script..</td></tr><tr><td><img src="/files/ScnJ2nnVaXO4hWJ7eGGK" alt=""> <strong>Add MoveJ</strong></td><td>Add MoveJ command with current simulated robot joint pose to robot script.</td></tr><tr><td><img src="/files/tWfoSHwtp7uA1PVPUPDG" alt=""> <strong>Add MoveL</strong></td><td>Add MoveL command with current simulated robot tool pose to robot script.</td></tr><tr><td><img src="/files/Qh5Nz8ppxOOwPiZGDyTH" alt=""> <strong>Move To</strong></td><td>Move simulated robot to selected target position. Place mouse cursor on script position to determin the target pose.</td></tr></tbody></table>

<figure><img src="/files/4PG2UKqcbSYxU7FVcUtQ" alt=""><figcaption></figcaption></figure>

In order to develop your robotic application with off-line programming approach:

* move the simulated robot inside the simulator environment to target positions
* use ![](/files/I7y6Y5nf9aiOmzJ783wu) **Simulator Tool Bar** functions to acquire target positions and compose the robot script
* run the program inside the simulation environment to test the application
* run the program on real robot

{% hint style="info" %}
[Live Auto Completion](/advanced-scripting/live-auto-completion.md) can be used also when a simulator is connected to acquire live robot position using the simulator.
{% endhint %}

{% embed url="<https://www.youtube.com/watch?v=vVp8Fv1z5FA>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.robpod.cloud/simulation/off-line-programming.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
