> ## Documentation Index
> Fetch the complete documentation index at: https://docs.generalrobotics.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Your first session

> Start a cloud simulator from the GRID shell and watch it come alive — no robot required

You've [installed the CLI and logged in](/v2.1/get-started/installation). This page
takes the shortest path to a robot you can program: a **cloud simulator
session**. No hardware, about five minutes, and you end up inside a live
workspace where real robot code runs.

## 1. Start a sim

```text theme={null}
GRID # sim start
```

## 2. Pick a robot and a scene

The wizard opens with a **New Sim Session** card that fills in as you pick.
First, the robot — tabs group them by form factor (**←/→** to switch tabs):

```text theme={null}
Select a robot:

Arms │ Mobile arms │ Quadrupeds │ Humanoids │ Wheeled │ Aerial │ Controllers

▸ Flexiv Rizon 4
  Franka Panda
  Kinova Gen 3
  SO-101
  …
```

Pick **Franka Panda**. It runs on one simulator, so the wizard jumps straight
to scenes (robots available on more than one simulator get a simulator step
in between):

```text theme={null}
Select scene for isaac:

▸ tabletop       · Empty tabletop environment
  tabletop_objs  · Tabletop with objects for manipulation
```

Pick **tabletop\_objs**, then review. The card now shows every choice plus a
generated session name (`{robot}-{scene}-{date}-{time}`) — press **enter** to
launch. If you want to see exactly what you're deploying, press **e** at any
step: the session config opens as YAML in your editor, and your edits carry
into the launch.

## 3. Watch it boot

```text theme={null}
Starting session...
  Requesting GPU (isaac)...
  Allocated — franka-panda-tabletop-objs-0727-163950 (service: service-grid--bro104ajnv)
  Waiting for pod route...
  Route ready — connecting to pod
  Session ready
  Opening franka-panda-tabletop-objs-0727-163950 in browser

● Sim franka-panda-tabletop-objs-0727-163950 running on <your-cluster>
  sim list to view · sim open to reopen the workspace
  UI: https://<your-portal-host>/grid-service/service-grid--bro104ajnv/vscode/?tkn=<session-token>
```

Your cluster allocated a GPU, booted Isaac Sim next to a browser IDE, and
opened the workspace. Two things to notice in the shell:

* The **statusline** at the bottom now shows `●` with your session name —
  green means this shell has a live session attached.
* The **UI link** is durable. Close the tab, reopen the link — same session.

## 4. It's alive

The workspace is VS Code in your browser, running on the session pod. On
first open it asks *"Do you trust the authors of the files in this folder?"* —
this is your own session workspace, so choose **Yes, I trust the authors**.

<img src="https://mintcdn.com/scaledfoundations/9EloC7amgddHN_e1/assets/images/first-session-workspace.png?fit=max&auto=format&n=9EloC7amgddHN_e1&q=85&s=3d56c5f6042bc811a556bd66f07d921e" alt="The session workspace: the seeded welcome notebook open in the browser IDE, first cell connected to the simulated Franka arm in the Isaac tabletop scene" width="3360" height="2100" data-path="assets/images/first-session-workspace.png" />

What you're looking at:

* **`sessions/<session-name>/notebook.ipynb`** — a welcome notebook seeded
  for the robot you picked, already open, kernel ready.
* **Sample Notebooks** (the GRID icon in the activity bar on the left) —
  ready-made notebooks for common tasks; open any of them to explore. The
  sidebar starts here; the file explorer is one click away above it.
* **Sim Streaming** and **Visualization** panels — the live scene view and
  camera/sensor streams for this session.

## 5. Do one real thing

Run the notebook's first cell (**shift+enter**):

```python theme={null}
from grid_sim_client.isaac.robot import IsaacArm

isaac_arm_0 = IsaacArm()
```

It goes green in about a second. That's not a mock — your code is now holding
a connection to the Franka in the running scene. The second cell connects the
other half of GRID, cloud models:

```python theme={null}
from grid_cortex_client import CortexClient

client = CortexClient()  # reads GRID_CORTEX_API_KEY + GRID_CORTEX_BASE_URL from env
print(client.get_info())
```

`get_info()` lists the models actually deployed in your cluster, and
`client.help("<model>")` shows usage for any of them — see the
[model catalog](/v2.1/models/overview) and the
[grid-cortex-client reference](/v2.1/python-api/grid-cortex-client/overview) for
what you can call.

## 6. Housekeeping

Back in the shell (or any new terminal), list the simulations available in the
selected context:

```text theme={null}
GRID # sim list

Active
●  franka-panda-tabletop-objs-0727-163950  isaac  running  0m ago
```

Use `status` to check simulations started or resumed from this machine,
including after restarting the CLI or switching context. It shows each
simulation's original context and live state; unreachable or unknown state is
reported explicitly. Opening or listing a simulation does not
add it to this machine's launch records.

`sim open` reopens the workspace UI — with one sim running it needs no name.
When you're done, stop it (release the GPU — sims don't stop themselves):

```text theme={null}
GRID # sim stop franka-panda-tabletop-objs-0727-163950

Stop sim "franka-panda-tabletop-objs-0727-163950"? (y/N) y
Stopping sim franka-panda-tabletop-objs-0727-163950...
Sim stopped
● Sim franka-panda-tabletop-objs-0727-163950 stopped
```

With no name, `sim stop` lets you pick from the active sims; either way it
confirms before stopping (in a script, pass `-y`). One timing note: the GPU
takes \~20 seconds to return to the pool, so if an immediate restart reports
`no GPU available`, wait a moment and retry.

If anything misbehaves, three commands have your back:

* `error` — replay the last failure in full detail.
* `diagnostics` — bundle redacted logs + config into a tarball for support.
* `debug on` — verbose logging with inline stack traces for this shell.

## Where next

You have a live robot and a workspace — the next two pages are the same
staircase with more weight on it:

* **Write real robot code**: [Your first skill](/v2.1/get-started/first-skill)
* **Point it at hardware**: `robot add` onboards your robot, then
  `skill run <your-skill.py> --dev` lets you choose an online robot and opens
  this same workspace at your skill's folder, wired to the physical machine — see
  [Deployment](/v2.1/deployment/camera-calibration)
* **Every command in the shell**: the [CLI reference](/v2.1/cli/reference)


## Related topics

- [MDP Config](/simulation/isaac/session_configuration/mdp.md)
- [Session Config Overview](/simulation/isaac/session_configuration/overview.md)
- [Workflow Config](/simulation/isaac/session_configuration/workflow.md)
- [Sensors](/simulation/isaac/sensors.md)
- [ROS2 Communication](/simulation/isaac/comms.md)
