twinmotion_render
Queue a photorealistic Twinmotion-style still render of a translated model with time-of-day, weather, season, and resolution controls. Returns a render_id and preview_url; the actual render pipeline is a ScanBIM roadmap item (Week 5 buildout), so today this tool responds synchronously with a stub job descriptor. When to use: you want a scripted way to request a hero still for a proposal or client deck. When NOT to use: you need real-time interactive rendering — use get_viewer_link. You need a moving camera — use twinmotion_walkthrough. You expect the image file bytes back in the response — this tool returns a URL, not bytes. APS scopes: none today (render pipeline is ScanBIM-internal); viewables:read data:read will apply when the pipeline goes live. Rate limits: APS default ~50 req/min per app per endpoint; Model Derivative translation jobs ~60 req/min; OSS uploads size-limited per file to 100MB for direct upload, larger via resumable. Errors: 401 APS token expired/invalid — refresh (will apply when pipeline is live); 403 scope or resource permission denied; 404 URN not found — check the ID; 429 rate limited — backoff and retry; 5xx APS upstream outage — retry with jitter. Side effects: NON-IDEMPOTENT. Each call mints a new render_id (tm_). Inserts a row into D1 usage_log. When the pipeline is live it will create a rendering job on ScanBIM's compute backend.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| season | No | Vegetation and ground-cover preset. Defaults to 'summer'. | |
| weather | No | Sky and atmospheric preset. Defaults to 'clear'. | |
| model_id | Yes | APS URN (base64url-encoded, starts with 'dXJu', unpadded) of the model to render. | |
| resolution | No | Output image resolution. Defaults to '4k'. | |
| time_of_day | No | Sun angle preset driving lighting, shadows, and sky. Defaults to 'noon'. | |
| camera_preset | No | Named camera viewpoint (e.g. 'hero-exterior', 'lobby-entry'). Free-form string passed through to the render pipeline. |