[{"data":1,"prerenderedAt":485},["ShallowReactive",2],{"docs-page-meta":3,"docs-page-\u002Fgetting-started\u002Ftemplate-optimize-model":32},{"pageMeta":4,"generatedAt":31},{"\u002Fall-endpoints\u002Fcreate-flow":5,"\u002Fall-endpoints\u002Fdelete-flow":7,"\u002Fall-endpoints\u002Fget-flow-input":8,"\u002Fall-endpoints\u002Fget-flow-output":9,"\u002Fall-endpoints\u002Fget-flow":10,"\u002Fall-endpoints\u002Fget-template":11,"\u002Fall-endpoints\u002Flist-flow-inputs":12,"\u002Fall-endpoints\u002Flist-flow-outputs":13,"\u002Fall-endpoints\u002Flist-flows":14,"\u002Fall-endpoints\u002Flist-templates":15,"\u002Fall-endpoints\u002Fstart-abort-flow":16,"\u002Fall-endpoints\u002Fupload-flow-input":17,"\u002Fgetting-started\u002Fauthentication":18,"\u002Fgetting-started\u002Fflow-lifecycle":19,"\u002Fgetting-started\u002Fflow":21,"\u002Fgetting-started\u002Fopenapi":22,"\u002Fgetting-started\u002Fplans-and-policies":23,"\u002Fgetting-started\u002Fquickstart":24,"\u002Fgetting-started\u002Ftemplate-helpers":25,"\u002Fgetting-started\u002Ftemplate-image-to-3d":26,"\u002Fgetting-started\u002Ftemplate-optimize-model":27,"\u002Fgetting-started\u002Ftemplate-text-to-3d":28,"\u002Fgetting-started\u002Ftemplates":29,"\u002Fgetting-started\u002Ftroubleshooting":30},{"lastUpdated":6},"2026-08-14T13:36:05.144Z",{"lastUpdated":6},{"lastUpdated":6},{"lastUpdated":6},{"lastUpdated":6},{"lastUpdated":6},{"lastUpdated":6},{"lastUpdated":6},{"lastUpdated":6},{"lastUpdated":6},{"lastUpdated":6},{"lastUpdated":6},{"lastUpdated":6},{"lastUpdated":20},"2026-08-14T13:36:05.145Z",{"lastUpdated":20},{"lastUpdated":20},{"lastUpdated":20},{"lastUpdated":20},{"lastUpdated":20},{"lastUpdated":20},{"lastUpdated":20},{"lastUpdated":20},{"lastUpdated":20},{"lastUpdated":20},"2026-08-14T13:38:49.206Z",{"id":33,"title":34,"body":35,"description":478,"extension":479,"meta":480,"navigation":230,"path":481,"seo":482,"stem":483,"__hash__":484},"docs\u002Fgetting-started\u002Ftemplate-optimize-model.md","Template - Optimize Model",{"type":36,"value":37,"toc":470},"minimark",[38,43,52,57,70,77,81,93,96,134,138,188,192,390,394,413,421,425,439,442,458,466],[39,40,42],"h1",{"id":41},"optimize-model","Optimize Model",[44,45,46,47,51],"p",{},"Use ",[48,49,50],"code",{},"model_optimize"," when you already have a GLB and want to optimize it for target size or performance.",[53,54,56],"h2",{"id":55},"when-to-use","When To Use",[58,59,60,64,67],"ul",{},[61,62,63],"li",{},"reducing polygon density for runtime performance",[61,65,66],{},"preparing assets for web or realtime pipelines",[61,68,69],{},"improving consistency across generated assets",[44,71,72,73,76],{},"Expected outcome: optimized GLB outputs retrievable by ",[48,74,75],{},"asset_id"," after completion.",[53,78,80],{"id":79},"inputs","Inputs",[58,82,83,90],{},[61,84,85,86,89],{},"required input type: ",[48,87,88],{},"model\u002Fgltf-binary"," (GLB)",[61,91,92],{},"JSON requests should provide a valid GLB data URL",[44,94,95],{},"Minimal input object:",[97,98,103],"pre",{"className":99,"code":100,"language":101,"meta":102,"style":102},"language-json shiki shiki-themes github-light github-light github-dark","{\n  \"data\": \"data:model\u002Fgltf-binary;base64,\u003Cbase64-glb>\"\n}\n","json","",[48,104,105,114,128],{"__ignoreMap":102},[106,107,110],"span",{"class":108,"line":109},"line",1,[106,111,113],{"class":112},"sVPnS","{\n",[106,115,117,121,124],{"class":108,"line":116},2,[106,118,120],{"class":119},"sUNQB","  \"data\"",[106,122,123],{"class":112},": ",[106,125,127],{"class":126},"s-HEn","\"data:model\u002Fgltf-binary;base64,\u003Cbase64-glb>\"\n",[106,129,131],{"class":108,"line":130},3,[106,132,133],{"class":112},"}\n",[53,135,137],{"id":136},"parameters","Parameters",[139,140,141,163],"table",{},[142,143,144],"thead",{},[145,146,147,151,154,157,160],"tr",{},[148,149,150],"th",{},"Name",[148,152,153],{},"Type",[148,155,156],{},"Default",[148,158,159],{},"Allowed values",[148,161,162],{},"Practical guidance",[164,165,166],"tbody",{},[145,167,168,174,177,182,185],{},[169,170,171],"td",{},[48,172,173],{},"polygon_count",[169,175,176],{},"integer",[169,178,179],{},[48,180,181],{},"100000",[169,183,184],{},"positive integer",[169,186,187],{},"Lower values reduce geometry complexity; tune based on target platform.",[53,189,191],{"id":190},"minimal-runnable-payload","Minimal Runnable Payload",[97,193,197],{"className":194,"code":195,"language":196,"meta":102,"style":102},"language-python shiki shiki-themes github-light github-light github-dark","from pathlib import Path\nfrom base64 import b64encode\n\ndef glb_to_data_url(path: Path) -> str:\n    encoded = b64encode(path.read_bytes()).decode()\n    return f\"data:model\u002Fgltf-binary;base64,{encoded}\"\n\npayload = {\n    \"template\": \"model_optimize\",\n    \"parameters\": {\n        \"polygon_count\": 50000\n    },\n    \"inputs\": [\n        {\n            \"data\": glb_to_data_url(Path(\"model.glb\"))\n        }\n    ]\n}\n","python",[48,198,199,214,226,232,251,263,287,292,303,317,326,337,343,352,358,373,379,385],{"__ignoreMap":102},[106,200,201,205,208,211],{"class":108,"line":109},[106,202,204],{"class":203},"sDD9d","from",[106,206,207],{"class":112}," pathlib ",[106,209,210],{"class":203},"import",[106,212,213],{"class":112}," Path\n",[106,215,216,218,221,223],{"class":108,"line":116},[106,217,204],{"class":203},[106,219,220],{"class":112}," base64 ",[106,222,210],{"class":203},[106,224,225],{"class":112}," b64encode\n",[106,227,228],{"class":108,"line":130},[106,229,231],{"emptyLinePlaceholder":230},true,"\n",[106,233,235,238,242,245,248],{"class":108,"line":234},4,[106,236,237],{"class":203},"def",[106,239,241],{"class":240},"sgQzM"," glb_to_data_url",[106,243,244],{"class":112},"(path: Path) -> ",[106,246,247],{"class":119},"str",[106,249,250],{"class":112},":\n",[106,252,254,257,260],{"class":108,"line":253},5,[106,255,256],{"class":112},"    encoded ",[106,258,259],{"class":203},"=",[106,261,262],{"class":112}," b64encode(path.read_bytes()).decode()\n",[106,264,266,269,272,275,278,281,284],{"class":108,"line":265},6,[106,267,268],{"class":203},"    return",[106,270,271],{"class":203}," f",[106,273,274],{"class":126},"\"data:model\u002Fgltf-binary;base64,",[106,276,277],{"class":119},"{",[106,279,280],{"class":112},"encoded",[106,282,283],{"class":119},"}",[106,285,286],{"class":126},"\"\n",[106,288,290],{"class":108,"line":289},7,[106,291,231],{"emptyLinePlaceholder":230},[106,293,295,298,300],{"class":108,"line":294},8,[106,296,297],{"class":112},"payload ",[106,299,259],{"class":203},[106,301,302],{"class":112}," {\n",[106,304,306,309,311,314],{"class":108,"line":305},9,[106,307,308],{"class":126},"    \"template\"",[106,310,123],{"class":112},[106,312,313],{"class":126},"\"model_optimize\"",[106,315,316],{"class":112},",\n",[106,318,320,323],{"class":108,"line":319},10,[106,321,322],{"class":126},"    \"parameters\"",[106,324,325],{"class":112},": {\n",[106,327,329,332,334],{"class":108,"line":328},11,[106,330,331],{"class":126},"        \"polygon_count\"",[106,333,123],{"class":112},[106,335,336],{"class":119},"50000\n",[106,338,340],{"class":108,"line":339},12,[106,341,342],{"class":112},"    },\n",[106,344,346,349],{"class":108,"line":345},13,[106,347,348],{"class":126},"    \"inputs\"",[106,350,351],{"class":112},": [\n",[106,353,355],{"class":108,"line":354},14,[106,356,357],{"class":112},"        {\n",[106,359,361,364,367,370],{"class":108,"line":360},15,[106,362,363],{"class":126},"            \"data\"",[106,365,366],{"class":112},": glb_to_data_url(Path(",[106,368,369],{"class":126},"\"model.glb\"",[106,371,372],{"class":112},"))\n",[106,374,376],{"class":108,"line":375},16,[106,377,378],{"class":112},"        }\n",[106,380,382],{"class":108,"line":381},17,[106,383,384],{"class":112},"    ]\n",[106,386,388],{"class":108,"line":387},18,[106,389,133],{"class":112},[53,391,393],{"id":392},"polling-and-output-retrieval","Polling And Output Retrieval",[395,396,397,400,403],"ol",{},[61,398,399],{},"Submit the optimization flow.",[61,401,402],{},"Poll until terminal state.",[61,404,405,406,409,410,412],{},"On ",[48,407,408],{},"completed",", list outputs and fetch each by ",[48,411,75],{},".",[44,414,415,416,412],{},"Reference helper code in ",[417,418,420],"a",{"href":419},"\u002Fgetting-started\u002Ftemplate-helpers","Template Helpers",[53,422,424],{"id":423},"common-failure-modes","Common Failure Modes",[58,426,427,430,433],{},[61,428,429],{},"invalid GLB payload or corrupted input model",[61,431,432],{},"polygon count too aggressive for source geometry",[61,434,435,436,438],{},"wrong ",[48,437,75],{}," during output fetch",[44,440,441],{},"Recovery:",[395,443,444,447,452],{},[61,445,446],{},"verify source GLB opens correctly before upload",[61,448,449,450],{},"retry with a less aggressive ",[48,451,173],{},[61,453,454,455,457],{},"always fetch ",[48,456,75],{}," from outputs list before download",[44,459,460,461,465],{},"See ",[417,462,464],{"href":463},"\u002Fgetting-started\u002Ftroubleshooting","Troubleshooting"," for response-level diagnostics.",[467,468,469],"style",{},"html pre.shiki code .sVPnS, html code.shiki .sVPnS{--shiki-default:#24292E;--shiki-light:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sUNQB, html code.shiki .sUNQB{--shiki-default:#005CC5;--shiki-light:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s-HEn, html code.shiki .s-HEn{--shiki-default:#032F62;--shiki-light:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sDD9d, html code.shiki .sDD9d{--shiki-default:#D73A49;--shiki-light:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sgQzM, html code.shiki .sgQzM{--shiki-default:#6F42C1;--shiki-light:#6F42C1;--shiki-dark:#B392F0}",{"title":102,"searchDepth":116,"depth":116,"links":471},[472,473,474,475,476,477],{"id":55,"depth":116,"text":56},{"id":79,"depth":116,"text":80},{"id":136,"depth":116,"text":137},{"id":190,"depth":116,"text":191},{"id":392,"depth":116,"text":393},{"id":423,"depth":116,"text":424},"How to use model_optimize to reduce or tune existing model complexity.","md",{},"\u002Fgetting-started\u002Ftemplate-optimize-model",{"title":34,"description":478},"getting-started\u002Ftemplate-optimize-model","Mgi02evqesKO7RCQOPp27HD2yJrc6gTB9Qoh6G7uSF4",1786714763067]