# Renders

The actions of the render group, with their input fields and their names on every transport.

4 actions: 4 on the command line, 4 as MCP tools, 4 as HTTP endpoints and 4 in the page.

## render.slide

**Render.** Renders slides in one or both themes at 1x or 2x and returns render records with image paths.

| Field      | Type                 | Required | Description                                      |
| ---------- | -------------------- | -------- | ------------------------------------------------ |
| `slideIds` | "all" \| string\[]   | yes      | Slide ids, or 'all'                              |
| `themes`   | "light" \| "dark"\[] | no       | One or both themes                               |
| `scale`    | 1 \| 2               | no       |                                                  |
| `format`   | "png" \| "jpg"       | no       |                                                  |
| `out`      | string               | no       | Output directory; defaults to .turboslide/render |

* Command line: `turboslide render <slideIds> --theme <themes> --out <out> --json`
* MCP tool: `deck_render`
* HTTP: `POST /api/actions/render.slide`
* Runs on: command line, MCP, HTTP, page.
* Changes the presentation: no.

## render.sheet

**Contact sheet.** Renders a contact sheet per theme with a JSON cell map from cell boxes to slide ids.

| Field      | Type                 | Required | Description           |
| ---------- | -------------------- | -------- | --------------------- |
| `slideIds` | "all" \| string\[]   | yes      | Slide ids, or 'all'   |
| `themes`   | "light" \| "dark"\[] | no       | One or both themes    |
| `cols`     | integer              | no       |                       |
| `thumb`    | integer              | no       | Thumbnail width in px |
| `numbered` | boolean              | no       |                       |
| `overlay`  | "lint" \| "plate"    | no       |                       |
| `out`      | string               | no       |                       |

* Command line: `turboslide sheet <slideIds> --cols <cols> --thumb <thumb> --overlay <overlay>`
* MCP tool: `deck_sheet`
* HTTP: `POST /api/actions/render.sheet`
* Runs on: command line, MCP, HTTP, page.
* Changes the presentation: no.

## font.list

**Fonts.** The font catalog: every face with the name PowerPoint uses, its category, weights, italic and licence (docs/archive/rounds/PRODUCT.md 4.2).

It takes no input.

* Command line: `turboslide fonts list`
* MCP tool: `deck_fonts_list`
* HTTP: `POST /api/actions/font.list`
* Runs on: command line, MCP, HTTP, page.
* Changes the presentation: no.

## shader.render

**Render a shader.** PNG bytes of a recipe for an agent or the CLI, no deck write and no browser of the caller’s: the material, a preset, uniforms or the common controls, the frame time and the pixels (3200 by 1800 unless a size with the long side 3200 is named); the deck’s brand kit colours the presets when the call names a deck.

| Field        | Type                           | Required | Description |
| ------------ | ------------------------------ | -------- | ----------- |
| `materialId` | string                         | yes      |             |
| `preset`     | string                         | no       |             |
| `uniforms`   | record                         | no       |             |
| `controls`   | object                         | no       |             |
| `size`       | \[integer, integer]            | no       |             |
| `timeMs`     | number                         | no       |             |
| `backend`    | "angle-metal" \| "swiftshader" | no       |             |

* Command line: `turboslide shader render <materialId> --preset <preset> --time <timeMs> --out <file>`
* MCP tool: `deck_shader_render`
* HTTP: `POST /api/actions/shader.render`
* Runs on: command line, MCP, HTTP, page.
* Changes the presentation: no.
