Give machine props world-space 3D form that rotates with the camera
Scene shapes, cable anchors, bar angles, pad perpendiculars, and roller offsets all resolve in the authored view exactly as before, then rotate about the world-vertical axis through the root anchor - the same resolve-then-rotate pattern as the figure's pins and the mat - so at the authored yaw every exercise renders bit-identically to today, and under an orbiting camera the equipment turns with the figure while staying welded to its hands and feet. Scene lines gain an optional depth plane (z) and slab extrusion (depth) so seats, backrests, and platforms keep form edge-on; the rect shape is retired (re-authored as slab lines). All 14 machines' props re-authored with depths and verified at eight orbit angles. The fixture snapshots move into the pipeline as render.py --fixtures and now cover orbit-presentation samples with resolved prop primitives for a spread of prop flavors; the in-app renderer resolves props in MotionSolver (lockstep with resolve_props) and the view just draws primitives. Claude-Session: https://claude.ai/code/session_01HJDQQDA9QdP8zByg43H5v3
This commit is contained in:
@@ -4,11 +4,11 @@
|
||||
"working": ["spine"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "line", "pts": [[120, 128], [114, 62]], "w": 8},
|
||||
{"kind": "line", "pts": [[106, 130], [150, 130]], "w": 8},
|
||||
{"kind": "line", "pts": [[120, 128], [114, 62]], "w": 8, "depth": 7},
|
||||
{"kind": "line", "pts": [[106, 130], [150, 130]], "w": 8, "depth": 8},
|
||||
{"kind": "line", "pts": [[122, 132], [122, 150]], "w": 4},
|
||||
{"kind": "line", "pts": [[102, 150], [150, 150]], "w": 4},
|
||||
{"kind": "line", "pts": [[156, 149], [190, 149]], "w": 5}
|
||||
{"kind": "line", "pts": [[102, 150], [150, 150]], "w": 4, "depth": 5},
|
||||
{"kind": "line", "pts": [[156, 149], [190, 149]], "w": 5, "depth": 6}
|
||||
]},
|
||||
{"type": "pad", "at": ["hand_r", "hand_l"], "angle": 90, "halfLen": 14, "w": 6}
|
||||
],
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
"working": ["leg_r", "leg_l"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "rect", "x": 152, "y": 56, "w": 16, "h": 72, "r": 5},
|
||||
{"kind": "rect", "x": 130, "y": 126, "w": 60, "h": 10, "r": 3},
|
||||
{"kind": "line", "pts": [[160, 64], [160, 120]], "w": 16, "z": -14, "depth": 6},
|
||||
{"kind": "line", "pts": [[135, 131], [185, 131]], "w": 10, "depth": 12},
|
||||
{"kind": "line", "pts": [[160, 136], [160, 150]], "w": 6}
|
||||
]},
|
||||
{"type": "pad", "at": ["knee_r"], "angle": 90, "halfLen": 13, "w": 6},
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
"working": ["leg_r", "leg_l"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "rect", "x": 152, "y": 56, "w": 16, "h": 72, "r": 5},
|
||||
{"kind": "rect", "x": 130, "y": 126, "w": 60, "h": 10, "r": 3},
|
||||
{"kind": "line", "pts": [[160, 64], [160, 120]], "w": 16, "z": -14, "depth": 6},
|
||||
{"kind": "line", "pts": [[135, 131], [185, 131]], "w": 10, "depth": 12},
|
||||
{"kind": "line", "pts": [[160, 136], [160, 150]], "w": 6}
|
||||
]},
|
||||
{"type": "pad", "at": ["knee_r"], "angle": 90, "halfLen": 13, "w": 6},
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
"working": ["arm_r", "arm_l"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "line", "pts": [[116, 134], [150, 134]], "w": 8},
|
||||
{"kind": "line", "pts": [[136, 52], [164, 70]], "w": 8},
|
||||
{"kind": "line", "pts": [[116, 134], [150, 134]], "w": 8, "depth": 8},
|
||||
{"kind": "line", "pts": [[136, 52], [164, 70]], "w": 8, "depth": 8},
|
||||
{"kind": "line", "pts": [[164, 70], [164, 128]], "w": 5}
|
||||
]},
|
||||
{"type": "bar", "at": ["hand_r", "hand_l"], "angle": 90, "halfLen": 6}
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
"working": ["leg_r", "leg_l"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "line", "pts": [[124, 126], [158, 124]], "w": 9},
|
||||
{"kind": "line", "pts": [[124, 126], [158, 124]], "w": 9, "depth": 8},
|
||||
{"kind": "line", "pts": [[138, 128], [138, 150]], "w": 5},
|
||||
{"kind": "line", "pts": [[120, 150], [156, 150]], "w": 5},
|
||||
{"kind": "rect", "x": 198, "y": 147, "w": 34, "h": 6, "r": 1},
|
||||
{"kind": "line", "pts": [[120, 150], [156, 150]], "w": 5, "depth": 5},
|
||||
{"kind": "line", "pts": [[201, 150], [229, 150]], "w": 6, "depth": 7},
|
||||
{"kind": "line", "pts": [[183, 62], [183, 122]], "w": 4},
|
||||
{"kind": "line", "pts": [[164, 76], [183, 76]], "w": 3, "color": "prop"}
|
||||
]},
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
"working": ["arm_r", "arm_l"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "line", "pts": [[114, 132], [86, 40]], "w": 8},
|
||||
{"kind": "line", "pts": [[106, 133], [146, 133]], "w": 8},
|
||||
{"kind": "line", "pts": [[114, 132], [86, 40]], "w": 8, "depth": 8},
|
||||
{"kind": "line", "pts": [[106, 133], [146, 133]], "w": 8, "depth": 8},
|
||||
{"kind": "line", "pts": [[122, 135], [122, 151]], "w": 5},
|
||||
{"kind": "line", "pts": [[108, 151], [138, 151]], "w": 4}
|
||||
{"kind": "line", "pts": [[108, 151], [138, 151]], "w": 4, "depth": 5}
|
||||
]},
|
||||
{"type": "bar", "at": ["hand_r", "hand_l"], "angle": 90, "halfLen": 8}
|
||||
],
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"working": ["arm_r", "arm_l"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "line", "pts": [[126, 130], [162, 130]], "w": 8},
|
||||
{"kind": "line", "pts": [[126, 130], [162, 130]], "w": 8, "depth": 8},
|
||||
{"kind": "line", "pts": [[144, 132], [144, 150]], "w": 5},
|
||||
{"kind": "circle", "c": [272, 19], "r": 4, "fill": true, "color": "prop"}
|
||||
]},
|
||||
|
||||
@@ -4,12 +4,12 @@
|
||||
"working": ["leg_r", "leg_l"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "line", "pts": [[110, 122], [86, 48]], "w": 9},
|
||||
{"kind": "line", "pts": [[104, 124], [166, 120]], "w": 9},
|
||||
{"kind": "line", "pts": [[130, 105], [158, 106]], "w": 7},
|
||||
{"kind": "line", "pts": [[110, 122], [86, 48]], "w": 9, "depth": 8},
|
||||
{"kind": "line", "pts": [[104, 124], [166, 120]], "w": 9, "depth": 8},
|
||||
{"kind": "line", "pts": [[130, 105], [158, 106]], "w": 7, "depth": 7},
|
||||
{"kind": "line", "pts": [[108, 126], [108, 150]], "w": 5},
|
||||
{"kind": "line", "pts": [[160, 124], [160, 150]], "w": 5},
|
||||
{"kind": "line", "pts": [[104, 150], [166, 150]], "w": 5},
|
||||
{"kind": "line", "pts": [[104, 150], [166, 150]], "w": 5, "depth": 5},
|
||||
{"kind": "circle", "c": [114, 90], "r": 3.5, "fill": true, "color": "prop"}
|
||||
]},
|
||||
{"type": "roller", "at": ["foot_r", "foot_l"], "side": -1, "r": 5, "back": 3}
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
"working": ["leg_r", "leg_l"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "line", "pts": [[110, 122], [86, 48]], "w": 9},
|
||||
{"kind": "line", "pts": [[104, 124], [166, 120]], "w": 9},
|
||||
{"kind": "line", "pts": [[110, 122], [86, 48]], "w": 9, "depth": 8},
|
||||
{"kind": "line", "pts": [[104, 124], [166, 120]], "w": 9, "depth": 8},
|
||||
{"kind": "line", "pts": [[108, 126], [108, 150]], "w": 5},
|
||||
{"kind": "line", "pts": [[160, 124], [160, 150]], "w": 5},
|
||||
{"kind": "line", "pts": [[104, 150], [166, 150]], "w": 5},
|
||||
{"kind": "line", "pts": [[104, 150], [166, 150]], "w": 5, "depth": 5},
|
||||
{"kind": "circle", "c": [114, 90], "r": 3.5, "fill": true, "color": "prop"}
|
||||
]},
|
||||
{"type": "roller", "at": ["foot_r", "foot_l"], "side": 1, "r": 5, "back": 7}
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
"working": ["leg_r", "leg_l"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "line", "pts": [[134, 123], [96, 36]], "w": 9},
|
||||
{"kind": "line", "pts": [[126, 127], [156, 122]], "w": 9},
|
||||
{"kind": "line", "pts": [[134, 123], [96, 36]], "w": 9, "depth": 8},
|
||||
{"kind": "line", "pts": [[126, 127], [156, 122]], "w": 9, "depth": 8},
|
||||
{"kind": "line", "pts": [[138, 130], [138, 150]], "w": 5},
|
||||
{"kind": "line", "pts": [[118, 150], [158, 150]], "w": 5},
|
||||
{"kind": "line", "pts": [[118, 150], [158, 150]], "w": 5, "depth": 5},
|
||||
{"kind": "line", "pts": [[142, 90], [142, 78]], "w": 3},
|
||||
{"kind": "circle", "c": [142, 77], "r": 3.5, "fill": true, "color": "prop"}
|
||||
]},
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
"working": ["spine"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "line", "pts": [[138, 130], [182, 130]], "w": 8},
|
||||
{"kind": "line", "pts": [[138, 130], [182, 130]], "w": 8, "depth": 10},
|
||||
{"kind": "line", "pts": [[160, 132], [160, 150]], "w": 5},
|
||||
{"kind": "line", "pts": [[144, 150], [176, 150]], "w": 5}
|
||||
{"kind": "line", "pts": [[144, 150], [176, 150]], "w": 5, "depth": 5}
|
||||
]},
|
||||
{"type": "bar", "at": ["hand_r", "hand_l"], "angle": 90, "halfLen": 14}
|
||||
],
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
"working": ["arm_r", "arm_l"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "line", "pts": [[122, 132], [156, 132]], "w": 8},
|
||||
{"kind": "line", "pts": [[159, 46], [157, 96]], "w": 8},
|
||||
{"kind": "line", "pts": [[176, 150], [206, 150]], "w": 5}
|
||||
{"kind": "line", "pts": [[122, 132], [156, 132]], "w": 8, "depth": 8},
|
||||
{"kind": "line", "pts": [[159, 46], [157, 96]], "w": 8, "depth": 7},
|
||||
{"kind": "line", "pts": [[176, 150], [206, 150]], "w": 5, "depth": 6}
|
||||
]},
|
||||
{"type": "cable", "from": [244, 120], "to": ["hand_r", "hand_l"]},
|
||||
{"type": "bar", "at": ["hand_r", "hand_l"], "angle": 90, "halfLen": 7}
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
"working": ["arm_r", "arm_l"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "line", "pts": [[116, 140], [88, 50]], "w": 8},
|
||||
{"kind": "line", "pts": [[110, 141], [148, 141]], "w": 8},
|
||||
{"kind": "line", "pts": [[116, 140], [88, 50]], "w": 8, "depth": 8},
|
||||
{"kind": "line", "pts": [[110, 141], [148, 141]], "w": 8, "depth": 8},
|
||||
{"kind": "line", "pts": [[126, 143], [126, 151]], "w": 5},
|
||||
{"kind": "line", "pts": [[110, 151], [142, 151]], "w": 4}
|
||||
{"kind": "line", "pts": [[110, 151], [142, 151]], "w": 4, "depth": 5}
|
||||
]},
|
||||
{"type": "bar", "at": ["hand_r", "hand_l"], "halfLen": 10}
|
||||
],
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
"working": ["arm_r", "arm_l"],
|
||||
"props": [
|
||||
{"type": "scene", "shapes": [
|
||||
{"kind": "line", "pts": [[116, 134], [92, 42]], "w": 8},
|
||||
{"kind": "line", "pts": [[108, 135], [146, 135]], "w": 8},
|
||||
{"kind": "line", "pts": [[116, 134], [92, 42]], "w": 8, "depth": 8},
|
||||
{"kind": "line", "pts": [[108, 135], [146, 135]], "w": 8, "depth": 8},
|
||||
{"kind": "line", "pts": [[124, 137], [124, 151]], "w": 5},
|
||||
{"kind": "line", "pts": [[110, 151], [140, 151]], "w": 4}
|
||||
{"kind": "line", "pts": [[110, 151], [140, 151]], "w": 4, "depth": 5}
|
||||
]},
|
||||
{"type": "bar", "at": ["hand_r", "hand_l"], "angle": 90, "halfLen": 6}
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user