from __future__ import annotations from sdk import ArticulatedObject, TestContext, TestReport def build_object_model() -> ArticulatedObject: model = ArticulatedObject(name="draft_model") return model def run_tests() -> TestReport: ctx = TestContext(object_model) # `compile_model` automatically runs baseline sanity/QC: # - `check_model_valid()` # - exactly one root part # - `check_mesh_assets_ready()` # - disconnected floating-part-group detection # - disconnected within-part geometry-island detection # - current-pose real 3D overlap detection # Use `run_tests()` only for prompt-specific exact checks, targeted poses, # and explicit allowances such as `ctx.allow_overlap(...)`. # If overlap QC reports an intersection, classify it first: intentional # embeddings or nested fits should get a scoped allowance; unintended # collisions should be fixed in geometry, support, mount, or pose. return ctx.report() object_model = build_object_model()