fit_to_reference
Move, scale, and tilt 3D model parts to match reference silhouettes, fixing placement and proportions without changing shapes.
Instructions
Move, scale and tilt parts by itself to raise the match with reference silhouettes. Use it when the forms
are roughly right: it fixes placement and proportions, not shapes. For each part in parts it keeps the changes
that raise the world-registered IoU over all views (as compare_view measures it).
references maps a view (as in compare_view) to an image; names is the whole model (everything visible but a
huge floor or backdrop when empty).
Scale per view, as in compare_view: height_m (vertical of the picture) or width_m (horizontal). Each is one
number for all views or a dict per view, and every view needs one: height_m=0.152 with width_m={"top": 0.0325}.
A size that names the view wins over a plain number.
mirror_pairs [["arm_L","arm_R"]] keeps pairs symmetric (list both in parts). tune picks what may change.
Guard: a move that raises the IoU but hides the part is refused: visible_share (the share of the part that the
rest of the model does not cover) may drop by max_hide at most (1 turns the guard off). The answer lists
rejected moves and visible_share [before, after].
It takes the checkpoint 'before_fit' first: rollback undoes it. Background job: after wait seconds the answer
is a job id for job_status.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | ||
| tune | No | ||
| wait | No | ||
| names | No | ||
| parts | Yes | ||
| step_m | No | ||
| width_m | No | ||
| height_m | No | ||
| max_hide | No | ||
| max_tilt | No | ||
| tilt_deg | No | ||
| max_shift | No | ||
| threshold | No | ||
| iterations | No | ||
| references | Yes | ||
| scale_step | No | ||
| time_limit | No | ||
| mirror_pairs | No |