{"ok":true,"site":{"host":"previz.hlh.chatgpt.site","url":"https://previz.hlh.chatgpt.site/previz","type":"live","desc":"3D blocking and camera previsualization in the browser.","tools":[{"name":"read_state","kind":"answer","impl":"imperative","description":"Read the complete current Previz project JSON and its revision. This excludes view/session state such as the current frame, selection, camera view, and playback.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/previz"},{"name":"write_state","kind":"act","impl":"imperative","description":"Replace the complete Previz project JSON, immediately update the visible GUI, create one undo snapshot, and autosave the browser draft. This does not save a JSON file. Pass the revision returned by read_state to avoid overwriting newer user edits.","inputSchema":{"type":"object","required":["expectedRevision","state"],"properties":{"expectedRevision":{"type":"integer","minimum":0,"description":"Revision returned by the most recent read_state call."},"state":{"type":"object","required":["version","name","duration","fps","characters","cameras","annotations"],"properties":{"version":{"type":"integer","description":"Project format version; currently 3."},"name":{"type":"string"},"duration":{"type":"number","description":"Timeline duration in seconds; normalized to 30."},"fps":{"type":"number","description":"Frames per second; normalized to 24."},"characters":{"type":"array","maxItems":200,"items":{"type":"object","required":["id","name","keys"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"color":{"type":"string"},"hidden":{"type":"boolean"},"keys":{"type":"array","maxItems":5000,"items":{"type":"object","required":["f","p"],"properties":{"f":{"type":"number"},"p":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"additionalProperties":false}}},"additionalProperties":false}},"cameras":{"type":"array","maxItems":200,"items":{"type":"object","required":["id","name","keys"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"hidden":{"type":"boolean"},"keys":{"type":"array","maxItems":5000,"items":{"type":"object","required":["f","p","r"],"properties":{"f":{"type":"number"},"p":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"r":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}}},"additionalProperties":false}}},"additionalProperties":false}},"annotations":{"type":"array","maxItems":5000,"items":{"type":"object","required":["id","f","name","color"],"properties":{"id":{"type":"string"},"f":{"type":"number"},"name":{"type":"string"},"color":{"type":"string"},"world":{"type":"array","minItems":3,"maxItems":3,"items":{"type":"number"}},"views":{"type":"object","additionalProperties":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number"}}}},"additionalProperties":false}}},"additionalProperties":false}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/previz"}],"category":"Media & Personal","favicon":"/favicons/previz.hlh.chatgpt.site.png","apiSurface":"spec","toolCount":2}}