TurboslideDocumentationNew Presentation

Pictures and files

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

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

asset.add

Add asset. Adds a file, a data URL or a fetched URL as an asset with its role, alt, license fields and optional two-tone treatment; returns the asset with twins and metrics.

FieldTypeRequiredDescription
idstringnoThe asset id; a slug of the file name when omitted
filestringnoA path on the machine, or a data: URL from the studio’s drop or paste
urlstringnoAn http(s) URL to fetch, 25 MB at most
roleone of 10 valuesyes
altstringyes
sourceobject | object | object | object | objectnoThe provenance record; built from title, artist, license and sourceUrl when omitted
titlestringnoThe picture’s name as the source states it
artiststringno
licensestringnoCC0, CC BY, CC BY-SA 4.0, public domain, or the text
shareAlikebooleannoThe license is share-alike: the credit must appear on the plate
sourceUrlstringnoWhere the picture came from
creditstringnoThe plate credit; composed from artist and license when omitted
twoTonebooleannoRun the two-tone pipeline; the source is kept as assets/<id>.source.<ext>
treatmentobjectno
plate"lower-left" | "lower-right" | "upper-left"noThe plate rectangle the metrics are screened against
uploadstringnoHosted: the key of a presigned client upload under uploads/<principalId>/ on the private store, for files over 3 MB
replaceSourcestringnoAttach the file as the continuous source of this existing asset instead of adding one, so a block dither can re-tone its committed twins (SPEC-3 10.1)
baseRevisionintegeryesThe revision the caller read; a stale value is rejected with 409
  • Command line: turboslide asset add <file> --role <role> --alt <alt> --two-tone --black <black> --plate <plate> --replace-source <replaceSource>
  • MCP tool: deck_asset_add
  • HTTP: POST /api/actions/asset.add
  • Runs on: command line, MCP, HTTP, page.
  • Changes the presentation: yes; send the baseRevision you read.

asset.dither

Dither asset. Re-runs the two-tone pipeline on an asset with new parameters and reports plate clearance; with fromRecorded it reads the committed twins back and verifies them cell for cell.

FieldTypeRequiredDescription
assetIdstringnoRequired unless allTwoTone
treatmentobject | objectnoThe full treatment to run; the recorded one with the params merged when omitted
paramsobjectnoParameters merged over the recorded treatment (--gamma, --black on the CLI)
plate"lower-left" | "lower-right" | "upper-left"noThe plate rectangle the metrics are screened against
sourcestringnoThe continuous source when the asset records none
allTwoTonebooleannoEvery asset with a two-tone treatment
fromRecordedbooleannoRead the committed twins back instead of regenerating; metrics are recomputed
verifyCellsbooleannoRegenerate from the source where one exists and count the cells that differ
pattern"bayer8" | "bayer4" | "blue64" | "random"noThe threshold texture to regenerate the twins with; bayer8 unless set (SPEC-3 10.5)
cell1 | 2 | 3 | 4noSheet pixels per cell; 2 unless set
tone"two" | "three" | "original"notwo, three or original; two unless set
baseRevisionintegeryesThe revision the caller read; a stale value is rejected with 409
  • Command line: turboslide asset dither <assetId> --gamma <gamma> --plate <plate> --pattern <pattern> --cell <cell> --tone <tone> --all-two-tone --from-recorded --verify-cells
  • MCP tool: deck_asset_dither
  • HTTP: POST /api/actions/asset.dither
  • Runs on: command line, MCP, HTTP, page.
  • Changes the presentation: yes; send the baseRevision you read.

asset.capture

Capture page. Captures a page at 1440 by 900 in one or both themes through a per-site recipe, optionally cropped to a region, with identical-region 2x detail crops as further assets.

FieldTypeRequiredDescription
urlstringyes
idstringnoThe asset id; a slug of the URL when omitted
altstringno
role"capture" | "detail"no
viewport[integer, integer]no
scale1 | 2no
theme"light" | "dark" | "both"yes
region[number, number, number, number]noA CSS-pixel box x, y, w, h inside the page; both twins take the identical region
details[number, number, number, number][]noIdentical-region detail crops, one asset each as <id>-detail-<n>
recipestringnoThe per-site recipe; gt-site by default
settleMsintegerno
format"jpg" | "png"noThe twin file format; jpg at quality 92 by default
allowHostsstring[]noHosts beyond the built-in allowlist (SPEC 11 captureHosts)
baseRevisionintegeryesThe revision the caller read; a stale value is rejected with 409
  • Command line: turboslide asset capture <url> --theme <theme> --scale <scale> --recipe <recipe> --region <region>
  • MCP tool: deck_asset_capture
  • HTTP: POST /api/actions/asset.capture
  • Runs on: command line, MCP, HTTP.
  • Changes the presentation: yes; send the baseRevision you read.

material.capture

Capture material. Renders a shader material at 3200 by 1800 and captures frozen frames at the given anchors as assets with recipe keys, through the two-tone screen when asked; one anchor returns the asset, several the list.

FieldTypeRequiredDescription
materialIdstringyes
presetstringnoA palette preset of the material, under the uniforms
uniformsrecordno
size[integer, integer]no
anchorsnumber[]yesFrame times in ms
idstringnoThe asset id; <id>-<anchor> per anchor when several
role"opener" | "mood" | "frame"no
altstringno
twoTonebooleanno
treatmentobjectno
plate"lower-left" | "lower-right" | "upper-left"noThe plate rectangle the metrics are screened against
backend"angle-metal" | "swiftshader"no
frameKeystringnoThe frame key of 5.5 the record carries as source.frameKey
baseRevisionintegeryesThe revision the caller read; a stale value is rejected with 409
  • Command line: turboslide material capture <materialId> --preset <preset> --uniforms <uniforms> --anchor <anchors> --two-tone --plate <plate>
  • MCP tool: deck_material_capture
  • HTTP: POST /api/actions/material.capture
  • Runs on: command line, MCP, HTTP, page.
  • Changes the presentation: yes; send the baseRevision you read.

material.list

List materials. The material catalog: every paper:* entry with its uniform schema and palette presets, and the proto:* engines with their availability.

FieldTypeRequiredDescription
materialIdstringno
  • Command line: turboslide material list
  • MCP tool: deck_material_list
  • HTTP: POST /api/actions/material.list
  • Runs on: command line, MCP, HTTP, page.
  • Changes the presentation: no.

logo.search

Find a logo. Searches the cached index of thesvg.org’s brand marks by title, slug, alias and category, ranked prefix, then word start, then substring, brands before community; answers each mark’s variants, its licence as recorded with the seller’s sentence, its brand site and guidelines and whether its default reads on paper and on ink, with the index’s date and its last upstream failure.

FieldTypeRequiredDescription
querystringyesA company name, a slug, an alias or a category
limitintegernoDefaults to 20
kind"symbol" | "wordmark"nowordmark lists the marks that have a wordmark of some kind
collection"brands" | "all"nobrands (the default) is the brand and community marks; all adds the cloud service icons and the auth badges
sincestringnoA refresh’s builtAt: the answer comes from an index at least as new when the store holds one
  • Command line: turboslide logo search <query> --limit <limit> --kind <kind> --collection <collection> --since <builtAt>
  • MCP tool: deck_logo_search
  • HTTP: POST /api/actions/logo.search
  • Runs on: command line, MCP, HTTP, page.
  • Changes the presentation: no.

logo.insert

Insert a logo. Stores a thesvg.org mark on the deck as an asset with the role logo, PNG twins at 3x of the logo size, the sanitized SVG as its source file and a source record naming the mark, its licence and its guidelines, never the source’s address; with slideId it places the picture at the logo size in the free area of the body slot, with blockId it swaps that picture’s asset and keeps the box, with everySlide or kit it writes the brand kit’s logo slots in the same write.

FieldTypeRequiredDescription
slugstringyesThe mark’s slug on thesvg.org
variantstringnodefault, mono, light, dark, wordmark, wordmarkLight or wordmarkDark; the appearance rule chooses when absent
slideIdstringnoThe slide the picture lands on; none stores the asset alone
boxobjectnoThe box in sheet px; the logo size in the free area of the body slot when absent
everySlidebooleannoUse as this presentation’s logo on every slide: the kit’s mark and footer slots take the asset
kitbooleannoThe brand kit’s logo slots alone, for the Brand kit panel
blockIdstringnoReplace image: the picture whose asset is swapped
baseRevisionintegeryesThe revision the caller read; a stale value is rejected with 409
  • Command line: turboslide logo insert <slug> --variant <variant> --slide <slideId> --every-slide --kit --block <blockId>
  • MCP tool: deck_logo_insert
  • HTTP: POST /api/actions/logo.insert
  • Runs on: command line, MCP, HTTP, page.
  • Changes the presentation: yes; send the baseRevision you read.

logo.refresh

Refresh the logo index. Rebuilds the cached logo index from thesvg.org’s manifest inside its time budget, marks the variants that answer 404 unavailable, drops the marks the source removed with their cached files and answers the counts; with dryRun it answers the counts, the index’s date, its last failure and its progress without an upstream fetch.

FieldTypeRequiredDescription
dryRunbooleannoThe counts alone, no fetch and no write
  • Command line: turboslide logo refresh --dry-run
  • MCP tool: deck_logo_refresh
  • HTTP: POST /api/actions/logo.refresh
  • Runs on: command line, MCP, HTTP.
  • Changes the presentation: no.

shader.list

List shaders. The shader library in the gallery’s order: every entry with its category, its featured preset, its stills (the file names under packages/materials/previews), its uniform schema and its palette presets computed from this deck’s brand kit, plus the eleven common controls with their ranges and sentences and the five category chips; material.list is the alias without the gallery fields.

FieldTypeRequiredDescription
materialIdstringno
  • Command line: turboslide shader list
  • MCP tool: deck_shader_list
  • HTTP: POST /api/actions/shader.list
  • Runs on: command line, MCP, HTTP, page.
  • Changes the presentation: no.

shader.frame

Store a shader frame. The client capture’s write (the editor’s own WebGL): stores the PNG under assets/frame-<16 hex of frameKey>@2x.png, writes the block’s /asset and removes the block’s superseded frame in one revision; the key is checked against the block as the document reads now, so a recipe that moved on answers 409; the same bytes under the same id store nothing. The orphan prune runs behind the response.

FieldTypeRequiredDescription
slideIdstringyes
blockIdstringyes
frameKeystringyes
bytesstringnoThe PNG, or the WebP the editor sends for a PNG over the function's cap, as base64
uploadstringnoA presigned upload’s key instead of bytes (a frame over the body cap)
rendererstringnoThe WebGL renderer string of the client
baseRevisionintegeryesThe revision the caller read; a stale value is rejected with 409
  • Command line: turboslide shader frame <slideId> <blockId> --frame-key <frameKey> < frame.png
  • MCP tool: deck_shader_frame
  • HTTP: POST /api/actions/shader.frame
  • Runs on: command line, MCP, HTTP, page.
  • Changes the presentation: yes; send the baseRevision you read.

shader.capture

Capture a shader’s frame. The hosted job for one shader block, the fallback when the editor has no WebGL and the agent’s route: the recipe rendered at the block’s box aspect with the long side 3200 in the capture browser, then the same write as shader.frame; bounded at 30 s hosted, answering one sentence.

FieldTypeRequiredDescription
slideIdstringyes
blockIdstringyes
backend"angle-metal" | "swiftshader"no
baseRevisionintegeryesThe revision the caller read; a stale value is rejected with 409
  • Command line: turboslide shader capture <slideId> <blockId>
  • MCP tool: deck_shader_capture
  • HTTP: POST /api/actions/shader.capture
  • Runs on: command line, MCP, HTTP, page.
  • Changes the presentation: yes; send the baseRevision you read.