Fully functioning feeding demo in MuJoCo that faithfully reproduces ada_feeding's capabilities using plain synchronous Python functions with structured `Outcome` returns. Same code runs on sim (SimContext) and real hardware (HardwareContext).
React App (user) ──┐ ┌── Viser Panel (developer)
│ │
FastAPI/WS event_loop
│ │
┌──────────▼─────▼──────────┐
│ Feeding Logic (pure Py) │
│ feed_bite(), behaviors │
│ No viser, ROS, MuJoCo │
└──────────┬────────────────┘
│ ExecutionContext
┌──────────▼────────────────┐
│ mj_manipulator │
│ servo_to_pose, │
│ ft_guarded_move, Outcome│
└──────┬──────────┬─────────┘
SimContext HardwareContext
Goal
Fully functioning feeding demo in MuJoCo that faithfully reproduces ada_feeding's capabilities using plain synchronous Python functions with structured `Outcome` returns. Same code runs on sim (SimContext) and real hardware (HardwareContext).
Architecture
Implementation Slices
Slice 1: Foundation (mj_manipulator)
Slice 2: Domain + Behaviors (ada_mj)
Slice 3: Task + Demo (ada_mj)
Slice 4: Viser Feeding Panel (ada_mj)
Slice 5: React App Rewrite (feeding_web_interface)
What we preserve from ada_feeding
What we eliminate