mattzh72--articraft
30 行
1021 B
Python
30 行
1021 B
Python
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()
|