# Eight-device mosaic

Start eight run.cloud iOS simulator sessions, send each simulator to one tile
of a synchronized animated canvas, and embed the signed sessions in a local
4-by-2 mosaic viewer. The demo has one fixed ten-minute lease and releases every
session when that lease ends. The same server-side cap protects against an
interrupted local process.

## Requirements

- Node.js 20 or newer
- `runcloud` 0.1.3 or newer: `npm install -g runcloud`
- A simulator account authenticated either with `runcloud login` or with both
  `RUN_CLOUD_API_KEY` and `RUN_CLOUD_API_URL`
- run.cloud simulator access, capacity, and enough organization credit for eight sessions

The local viewer binds only to `127.0.0.1`. Signed simulator URLs remain in the
viewer process and are not printed to the terminal.

## Run

```bash
npm run demo -- --open
```

Press Ctrl+C or select **End demo** in the viewer to release the sessions early.
Omit `--open` when you only want the local viewer URL printed.

For a local or preview tile host, set `RUN_CLOUD_DEMO_ORIGIN` to its absolute
HTTP or HTTPS origin before starting the demo.
