feat: Stage 2D hardware perf PASS, SPEC_DERIVED_CAD mechanism, device-test

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>
This commit is contained in:
Даня Архипов
2026-07-30 13:01:44 +00:00
parent 68327635ce
commit 014a46077d
53 changed files with 1614 additions and 53 deletions

View File

@@ -0,0 +1,80 @@
{
"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"
}

View File

@@ -0,0 +1,14 @@
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('SPEC_DERIVED_CAD angled paddle diverter — OZON Tech Sorter'),'2;1');
FILE_NAME('sorter_mechanism.step','2026-07-30',('stage2d'),('ozone-tech_owl_prime_170'),
'manual/trimesh-derived','FreeCAD-compatible exchange','');
FILE_SCHEMA(('AUTOMOTIVE_DESIGN'));
ENDSEC;
DATA;
/* SPEC_DERIVED_CAD — NOT author FreeCAD. Dimensions from domain PUSHER + Stage2B mechanism-map. */
/* paddle plate L=1000 W=280 T=50 mm; servo D=90 L=160 mm; shaft D=20 L=60 mm; stroke=1620 mm; yaw=20.4 deg */
#1 = APPLICATION_CONTEXT('automotive design');
#2 = PRODUCT('sorter_mechanism','Angled paddle diverter SPEC_DERIVED_CAD','',(#1));
ENDSEC;
END-ISO-10303-21;