{"slug":"prototype-api-williamrobinson-dev-v1-prototype-revise-c99329","title":"Apply deterministic parameter edits to a self-contained OpenSCAD model, verify p","host":"prototype.api.williamrobinson.dev","method":"POST","resource":"https://prototype.api.williamrobinson.dev/v1/prototype/revise","category":"other","description":"Apply deterministic parameter edits to a self-contained OpenSCAD model, verify preserve constraints against the baseline, slice it with PrusaSlicer, and return checked alternatives (orientations, partial edits) when goals are unmet.","price_listed":0.15,"price_asked":0.15,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":660,"reported_calls_30d":1,"reported_payers_30d":1,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"body":{"edits":[{"delta":10,"kind":"offset","name":"shelf"}],"goals":{"maxSizeMm":[220,220,250],"noSupports":true},"maxAlternatives":3,"orientationSearch":true,"parameters":{"height":60},"preserve":[{"axis":"z","kind":"bounds_axis","toleranceMm":0.05}],"profile":"fdm-pla-0.4","source":"wall = 5; shelf = 40; height = 60; depth = 30;\nunion() {\n  cube([wall, depth, height]);\n  translate([0, 0, height - wall]) cube([shelf, depth, wall]);\n}\n"},"bodyType":"json","method":"POST","type":"http"},"output_schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"input":{"additionalProperties":false,"properties":{"body":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"edits":{"default":[],"description":"Deterministic edits applied in order to a top-level scalar assignment: set a literal, offset a numeric value, or scale it by a positive factor.","items":{"oneOf":[{"additionalProperties":false,"properties":{"kind":{"const":"set"},"name":{"pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","type":"string"},"value":{"anyOf":[{"description":"Maximum 512 UTF-8 bytes.","maxLength":512,"type":"string"},{"maximum":1000000,"minimum":-1000000,"type":"number"},{"type":"boolean"}]}},"required":["kind","name","value"]},{"additionalProperties":false,"properties":{"delta":{"maximum":1000000,"minimum":-1000000,"type":"number"},"kind":{"const":"offset"},"name":{"pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","type":"string"}},"required":["kind","name","delta"]},{"additionalProperties":false,"properties":{"factor":{"exclusiveMinimum":0,"maximum":1000000,"type":"number"},"kind":{"const":"scale"},"name":{"pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","type":"string"}},"required":["kind","name","factor"]}],"type":"object"},"maxItems":16,"type":"array"},"goals":{"additionalProperties":false,"default":{},"properties":{"maxFilamentG":{"maximum":100000,"minimum":0.01,"type":"number"},"maxPrintTimeMin":{"maximum":100000,"minimum":1,"type":"number"},"maxSizeMm":{"default":[220,220,250],"items":{"exclusiveMinimum":0,"maximum":1000,"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"noSupports":{"default":true,"type":"boolean"}},"type":"object"},"maxAlternatives":{"default":3,"maximum":4,"minimum":0,"type":"integer"},"orientationSearch":{"default":true,"description":"Evaluate the other five axis-aligned orientations as alternatives.","type":"boolean"},"parameters":{"additionalProperties":{"anyOf":[{"description":"Maximum 512 UTF-8 bytes.","maxLength":512,"type":"string"},{"maximum":1000000,"minimum":-1000000,"type":"number"},{"type":"boolean"}]},"default":{},"description":"Overrides must name unique top-level scalar literal assignments, not derived expressions or reserved names.","maxProperties":64,"propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$"},"type":"object"},"preserve":{"default":[],"description":"Constraints the revision must not violate: an edit must not target a named parameter, a bounding-box axis must stay within a tolerance, or the volume must stay within a percentage.","items":{"oneOf":[{"additionalProperties":false,"properties":{"kind":{"const":"parameter"},"name":{"pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$","type":"string"}},"required":["kind","name"]},{"additionalProperties":false,"properties":{"axis":{"enum":["x","y","z"],"type":"string"},"kind":{"const":"bounds_axis"},"toleranceMm":{"default":0.05,"maximum":1000,"minimum":0,"type":"number"}},"required":["kind","axis"]},{"additionalProperties":false,"properties":{"kind":{"const":"volume"},"tolerancePercent":{"default":1,"maximum":100,"minimum":0,"type":"number"}},"required":["kind"]}],"type":"object"},"maxItems":16,"type":"array"},"profile":{"default":"fdm-pla-0.4","enum":["fdm-pla-0.4","fdm-petg-0.4"],"type":"string"},"source":{"description":"Self-contained OpenSCAD, interpreted in millimetres; maximum 16 KiB UTF-8. External imports are prohibited.","maxLength":16384,"minLength":1,"type":"string"}},"required":["source"],"type":"object"},"bodyType":{"enum":["json","form-data","text"],"type":"string"},"method":{"enum":["POST"],"type":"string"},"type":{"const":"http","type":"string"}},"required":["type","method","bodyType","body"],"type":"object"},"output":{"properties":{"example":{"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"alternatives":{"items":{"additionalProperties":false,"properties":{"artifact":{"anyOf":[{"type":"null"},{"enum":["alternative-1.gcode","alternative-2.gcode","alternative-3.gcode","alternative-4.gcode"],"type":"string"}]},"editFraction":{"anyOf":[{"type":"null"},{"maximum":1,"minimum":0,"type":"number"}]},"kind":{"enum":["orientation","partial_edit"],"type":"string"},"meetsAllGoals":{"type":"boolean"},"mesh":{"anyOf":[{"type":"null"},{"additionalProperties":false,"properties":{"boundsMm":{"additionalProperties":false,"properties":{"max":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"min":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"size":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"}},"required":["min","max","size"],"type":"object"},"triangleCount":{"minimum":0,"type":"integer"},"volumeMm3":{"minimum":0,"type":"number"},"watertight":{"type":"boolean"}},"required":["triangleCount","boundsMm","volumeMm3","watertight"],"type":"object"}]},"orientation":{"enum":["+z","-z","+x","-x","+y","-y"],"type":"string"},"parametersApplied":{"anyOf":[{"type":"null"},{"additionalProperties":{"anyOf":[{"description":"Maximum 512 UTF-8 bytes.","maxLength":512,"type":"string"},{"maximum":1000000,"minimum":-1000000,"type":"number"},{"type":"boolean"}]},"default":{},"description":"Overrides must name unique top-level scalar literal assignments, not derived expressions or reserved names.","maxProperties":64,"propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$"},"type":"object"}]},"slice":{"additionalProperties":false,"properties":{"estimatedPrintTimeMin":{"minimum":0,"type":"number"},"filamentG":{"minimum":0,"type":"number"},"filamentMm":{"minimum":0,"type":"number"},"layerCount":{"minimum":0,"type":"integer"},"needsSupport":{"type":"boolean"},"supportFilamentMm":{"minimum":0,"type":"number"}},"required":["estimatedPrintTimeMin","filamentG","filamentMm","supportFilamentMm","layerCount","needsSupport"],"type":"object"}},"required":["kind","artifact","orientation","parametersApplied","editFraction","mesh","slice","meetsAllGoals"],"type":"object"},"maxItems":4,"type":"array"},"artifacts":{"items":{"additionalProperties":false,"properties":{"href":{"format":"uri","type":"string"},"mediaType":{"maxLength":128,"minLength":1,"type":"string"},"name":{"enum":["revised.scad","changes.diff","baseline.stl","revised.stl","revised.gcode","alternative-1.gcode","alternative-2.gcode","alternative-3.gcode","alternative-4.gcode","profile.ini","preview.png","report.json"],"type":"string"},"sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"sizeBytes":{"minimum":0,"type":"integer"}},"required":["name","mediaType","sizeBytes","sha256","href"],"type":"object"},"maxItems":12,"type":"array"},"baseline":{"anyOf":[{"type":"null"},{"additionalProperties":false,"properties":{"boundsMm":{"additionalProperties":false,"properties":{"max":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"min":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"size":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"}},"required":["min","max","size"],"type":"object"},"triangleCount":{"minimum":0,"type":"integer"},"volumeMm3":{"minimum":0,"type":"number"},"watertight":{"type":"boolean"}},"required":["triangleCount","boundsMm","volumeMm3","watertight"],"type":"object"}]},"changes":{"items":{"additionalProperties":false,"properties":{"after":{"anyOf":[{"description":"Maximum 512 UTF-8 bytes.","maxLength":512,"type":"string"},{"maximum":1000000,"minimum":-1000000,"type":"number"},{"type":"boolean"}]},"before":{"anyOf":[{"description":"Maximum 512 UTF-8 bytes.","maxLength":512,"type":"string"},{"maximum":1000000,"minimum":-1000000,"type":"number"},{"type":"boolean"}]},"name":{"type":"string"}},"required":["name","before","after"],"type":"object"},"maxItems":16,"type":"array"},"checks":{"items":{"additionalProperties":false,"properties":{"code":{"maxLength":128,"minLength":1,"type":"string"},"detail":{"maxLength":4096,"type":"string"},"status":{"enum":["passed","failed","not_checked"],"type":"string"}},"required":["code","status","detail"],"type":"object"},"maxItems":32,"type":"array"},"delta":{"anyOf":[{"type":"null"},{"additionalProperties":false,"properties":{"sizeMm":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"volumeMm3":{"type":"number"},"volumePercent":{"type":"number"}},"required":["sizeMm","volumeMm3","volumePercent"],"type":"object"}]},"evaluations":{"items":{"additionalProperties":false,"properties":{"goals":{"anyOf":[{"type":"null"},{"additionalProperties":false,"properties":{"filament":{"type":"boolean"},"fit":{"type":"boolean"},"noSupports":{"type":"boolean"},"printTime":{"type":"boolean"}},"required":["noSupports","printTime","filament","fit"],"type":"object"}]},"orientation":{"enum":["+z","-z","+x","-x","+y","-y"],"type":"string"},"overhang":{"additionalProperties":false,"properties":{"bedContactAreaMm2":{"minimum":0,"type":"number"},"footprintMm":{"items":{"type":"number"},"maxItems":2,"minItems":2,"type":"array"},"heightMm":{"minimum":0,"type":"number"},"overhangAreaMm2":{"minimum":0,"type":"number"}},"required":["overhangAreaMm2","bedContactAreaMm2","heightMm","footprintMm"],"type":"object"},"rotation":{"additionalProperties":false,"properties":{"xDeg":{"type":"number"},"yDeg":{"type":"number"}},"required":["xDeg","yDeg"],"type":"object"},"slice":{"anyOf":[{"type":"null"},{"additionalProperties":false,"properties":{"estimatedPrintTimeMin":{"minimum":0,"type":"number"},"filamentG":{"minimum":0,"type":"number"},"filamentMm":{"minimum":0,"type":"number"},"layerCount":{"minimum":0,"type":"integer"},"needsSupport":{"type":"boolean"},"supportFilamentMm":{"minimum":0,"type":"number"}},"required":["estimatedPrintTimeMin","filamentG","filamentMm","supportFilamentMm","layerCount","needsSupport"],"type":"object"}]},"sliced":{"type":"boolean"}},"required":["orientation","rotation","overhang","slice","goals","sliced"],"type":"object"},"maxItems":6,"type":"array"},"expiresAt":{"format":"date-time","type":"string"},"limitations":{"items":{"maxLength":4096,"type":"string"},"maxItems":16,"type":"array"},"parametersApplied":{"additionalProperties":{"anyOf":[{"description":"Maximum 512 UTF-8 bytes.","maxLength":512,"type":"string"},{"maximum":1000000,"minimum":-1000000,"type":"number"},{"type":"boolean"}]},"default":{},"description":"Overrides must name unique top-level scalar literal assignments, not derived expressions or reserved names.","maxProperties":64,"propertyNames":{"pattern":"^[A-Za-z_][A-Za-z0-9_]{0,63}$"},"type":"object"},"profile":{"enum":["fdm-pla-0.4","fdm-petg-0.4"],"type":"string"},"recommendations":{"items":{"additionalProperties":false,"properties":{"code":{"maxLength":128,"type":"string"},"message":{"maxLength":4096,"type":"string"}},"required":["code","message"],"type":"object"},"maxItems":32,"type":"array"},"requested":{"anyOf":[{"type":"null"},{"additionalProperties":false,"properties":{"goals":{"anyOf":[{"type":"null"},{"additionalProperties":false,"properties":{"filament":{"type":"boolean"},"fit":{"type":"boolean"},"noSupports":{"type":"boolean"},"printTime":{"type":"boolean"}},"required":["noSupports","printTime","filament","fit"],"type":"object"}]},"orientation":{"enum":["+z","-z","+x","-x","+y","-y"],"type":"string"},"overhang":{"additionalProperties":false,"properties":{"bedContactAreaMm2":{"minimum":0,"type":"number"},"footprintMm":{"items":{"type":"number"},"maxItems":2,"minItems":2,"type":"array"},"heightMm":{"minimum":0,"type":"number"},"overhangAreaMm2":{"minimum":0,"type":"number"}},"required":["overhangAreaMm2","bedContactAreaMm2","heightMm","footprintMm"],"type":"object"},"rotation":{"additionalProperties":false,"properties":{"xDeg":{"type":"number"},"yDeg":{"type":"number"}},"required":["xDeg","yDeg"],"type":"object"},"slice":{"anyOf":[{"type":"null"},{"additionalProperties":false,"properties":{"estimatedPrintTimeMin":{"minimum":0,"type":"number"},"filamentG":{"minimum":0,"type":"number"},"filamentMm":{"minimum":0,"type":"number"},"layerCount":{"minimum":0,"type":"integer"},"needsSupport":{"type":"boolean"},"supportFilamentMm":{"minimum":0,"type":"number"}},"required":["estimatedPrintTimeMin","filamentG","filamentMm","supportFilamentMm","layerCount","needsSupport"],"type":"object"}]},"sliced":{"type":"boolean"}},"required":["orientation","rotation","overhang","slice","goals","sliced"],"type":"object"}]},"revised":{"anyOf":[{"type":"null"},{"additionalProperties":false,"properties":{"boundsMm":{"additionalProperties":false,"properties":{"max":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"min":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"},"size":{"items":{"type":"number"},"maxItems":3,"minItems":3,"type":"array"}},"required":["min","max","size"],"type":"object"},"triangleCount":{"minimum":0,"type":"integer"},"volumeMm3":{"minimum":0,"type":"number"},"watertight":{"type":"boolean"}},"required":["triangleCount","boundsMm","volumeMm3","watertight"],"type":"object"}]},"status":{"enum":["passed","goals_unmet","rejected"],"type":"string"},"timings":{"additionalProperties":false,"properties":{"compileMs":{"minimum":0,"type":"number"},"previewMs":{"minimum":0,"type":"number"},"searchMs":{"minimum":0,"type":"number"},"sliceMs":{"minimum":0,"type":"number"},"totalMs":{"minimum":0,"type":"number"}},"required":["compileMs","sliceMs","searchMs","previewMs","totalMs"],"type":"object"},"tools":{"additionalProperties":false,"properties":{"openscad":{"type":"string"},"slicer":{"type":"string"}},"required":["openscad","slicer"],"type":"object"},"warnings":{"items":{"maxLength":4096,"type":"string"},"maxItems":32,"type":"array"}},"required":["status","profile","tools","parametersApplied","changes","baseline","revised","delta","requested","evaluations","alternatives","checks","warnings","recommendations","limitations","timings","expiresAt","artifacts"],"type":"object"},"type":{"type":"string"}},"required":["type"],"type":"object"}},"required":["input"],"type":"object"},"history":[{"day":"2026-09-24","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.15,"price_match":true,"latency_ms":660,"error":null}],"description_full":"Apply deterministic parameter edits to a self-contained OpenSCAD model, verify preserve constraints against the baseline, slice it with PrusaSlicer, and return checked alternatives (orientations, partial edits) when goals are unmet.","last_updated":"2026-09-11T20:08:16.068Z","schemes":["exact"]}