# CAD Recovery — 2026-07-06 (phe108 down: server-room cooling failure)

Everything here was reconstructed from the agent's session context after the lab box went offline.
Original home: `phe108:/data/cameron/repos/smith300_para_stuff/` (unmirrored — add a git remote when it's back!).

## Recovery status
| Asset | Status |
|---|---|
| Gripper pipeline (gripper_gen, beautify, connect, urdf, polish, print, coupon, glb) | ✅ verbatim |
| Arm variant generators (gen_beauty, gen_aligned, gen_detach, yoke_fillet) | ✅ verbatim |
| gen_two_servo.py (core) | ⚠ ~85% verbatim; gen_glb tail + read_layout REWRITTEN from documented behavior — test before trusting |
| gen_curvy.py | ⚠ constants + _rrect + curvy_connector verbatim; _stitch REWRITTEN |
| Camera, gravity-comp, gantry, mobile, linear-rail generators + composer | ✅ verbatim |
| Docs (CHECKLIST, DESIGN_INDEX, guides) | ✅ verbatim |
| apply_glb_layout.py, fillet_holder.py, yoke_exact.py, carve_holder, make_mjcf, add_fidex, render_arm.py | ❌ not in context (pre-session) — geometry survives in the GLBs; re-pull from lab when back |
| **Meshes/STLs** | ❌ none on VPS — **Cameron's Mac has them**: `~/Projects/robotics_testing/stl_transfers/` → two_servo.glb (arm + all module meshes), gripper.glb (servo/holder/yoke_fillet/finger meshes), gripper_print/*.stl, pin_fit_test/*.stl |

## To resume work on the VPS
1. Get the GLBs from the Mac (VPS key not authorized on Mac): on the Mac run
   `scp ~/Projects/robotics_testing/stl_transfers/{two_servo,gripper}.glb omid-fleet:/data/cameron/cad_recovery/`
   (or authorize the VPS key and the agent pulls).
2. `python3 -m venv .venv && .venv/bin/pip install numpy scipy trimesh manifold3d shapely rtree pillow networkx`
3. Extract module meshes from the GLBs (nodes carry servo/holder/yoke/finger geometry) → st3215.stl etc.
4. The gripper pipeline should then run end-to-end; the arm pipeline needs read_layout verified.

## When phe108 returns
- rsync the real `smith300_para_stuff/` over this dir (lab = source of truth; this is the lifeboat).
- IMMEDIATELY `git init` + push to a remote. This outage is the argument.
