Measure GTX 1080 matrix (A/B/C 60 FPS p95~17ms); selective CAD shadows and DPR 1.25; ship SPEC_DERIVED_CAD sorter mechanism GLB/STEP; add /device-test; document domain blocker and phone NOT_TESTED. Co-authored-by: Cursor <cursoragent@cursor.com>
80 lines
1.6 KiB
JSON
80 lines
1.6 KiB
JSON
{
|
|
"status": "SPEC_DERIVED_CAD",
|
|
"notAuthorCad": true,
|
|
"sourceOfDimensions": [
|
|
"src/domain/pusherMotion.ts PUSHER constants",
|
|
"docs/stage2_real_sorter/mechanism-map.md",
|
|
"PusherMechanism.tsx visual housing sizes"
|
|
],
|
|
"units": "mm",
|
|
"paddle": {
|
|
"length": 1000,
|
|
"height": 280,
|
|
"thickness": 50
|
|
},
|
|
"leadingEdge": {
|
|
"thickness": 4
|
|
},
|
|
"servo": {
|
|
"diameter": 90,
|
|
"length": 160
|
|
},
|
|
"shaft": {
|
|
"diameter": 20,
|
|
"length": 60
|
|
},
|
|
"axisHeightAboveBeltMm": 142,
|
|
"strokeMm": 1620,
|
|
"yawDeg": 20.4,
|
|
"homeDistanceMm": 400,
|
|
"glb": "public/models/sorter/mechanism-web.glb",
|
|
"step": "3d_models/sorter_mechanism.step",
|
|
"parts": [
|
|
{
|
|
"name": "paddle-plate",
|
|
"triangles": 12,
|
|
"stl": "paddle-plate.stl"
|
|
},
|
|
{
|
|
"name": "rib-l",
|
|
"triangles": 12,
|
|
"stl": "rib-l.stl"
|
|
},
|
|
{
|
|
"name": "rib-c",
|
|
"triangles": 12,
|
|
"stl": "rib-c.stl"
|
|
},
|
|
{
|
|
"name": "rib-r",
|
|
"triangles": 12,
|
|
"stl": "rib-r.stl"
|
|
},
|
|
{
|
|
"name": "servo-body",
|
|
"triangles": 96,
|
|
"stl": "servo-body.stl"
|
|
},
|
|
{
|
|
"name": "servo-shaft",
|
|
"triangles": 64,
|
|
"stl": "servo-shaft.stl"
|
|
},
|
|
{
|
|
"name": "bracket",
|
|
"triangles": 12,
|
|
"stl": "bracket.stl"
|
|
},
|
|
{
|
|
"name": "housing",
|
|
"triangles": 12,
|
|
"stl": "housing.stl"
|
|
},
|
|
{
|
|
"name": "leading-edge",
|
|
"triangles": 12,
|
|
"stl": "leading-edge.stl"
|
|
}
|
|
],
|
|
"sha256_glb": "eb973217d4ec7288f784d93e6f539b4f3d29fb3163d6788b5467c97451588ed6"
|
|
} |