Apply a preset
preset_applyApply a curated preset as a new revision (compiles to validated scene operations). Material presets create the material (tint via color, assign via applyToObjects); lighting presets add a complete light rig + world; camera presets frame and activate a camera; render presets set the render profile. LIGHTING AND CAMERA PRESETS ARE AUTHORED FOR A 2 m SUBJECT — lights 4-7 m out at 800-1500 W, cameras 4-6 m back. On a small product that is not merely suboptimal, it is a white frame: a 42 mm subject wants roughly 1/50 the distance and 1/2500 the wattage. Pass subjectSizeM and the whole rig is rescaled for you.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| color | No | ||
| preset | Yes | ||
| projectId | Yes | Stable project ID returned by project_create or projects_list. | |
| materialName | No | ||
| subjectSizeM | No | Largest dimension of the subject in METRES (watch 0.042, mug 0.12, chair 1.0, car 4.5). Rescales lighting and camera presets from their 2 m reference: distances linearly, light energy by the square. Ignored by material and render presets. Omit it and the raw 2 m rig is applied unchanged. | |
| applyToObjects | No | ||
| baseRevisionId | No | "HEAD" (default) targets the project's current head. Mutations MUST build on the head: passing an older revision is rejected with REVISION_CONFLICT, since history is linear. To continue from an older scene, revision_restore it forward first. | HEAD |
| idempotencyKey | Yes | Stable caller-chosen key for safe retries of this same request. | |
| generatePreview | No | Render the revision thumbnail (maximum side 384px), using the active camera or scene-bounds fallback. Lit transmission uses low-sample Cycles; other lit scenes use EEVEE. Pass false when another preview is unnecessary; scene_snapshot then inherits the nearest ancestor thumbnail and says so. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| job | Yes | ||
| operationCount | Yes |