controls_challenge/
├── README.md # Original challenge README
├── requirements.txt # Python dependencies
├── tinyphysics.py # Core simulator
├── eval.py # Evaluation script
├── controllers/ # Controller implementations
├── models/ # ONNX model files
├── data/ # CSV route data
└── imgs/ # Images for documentation
All analysis, research notes, and investigative scripts:
BLACKBOARD.md- Research brainstormingPHYSICS_ANALYSIS.md- Physics-based analysisSPINNING_UP_LESSONS.md- PPO insights from OpenAI Spinning Upbeautiful_lander.py- Reference PPO implementationverify_baseline.py- Baseline verification script- Other analysis scripts
Organized by experiment number (exp001, exp002, etc.):
exp017_baseline/- 1-neuron PID clone (baseline)exp023_conv/- Conv1D on curvaturesexp030_vehicle_state/- Vehicle-centric state representation- Each experiment has its own folder with:
train.py- Training scriptcontroller.py- Controller for evaluationmodel.pth- Trained modelREADME.md- Experiment notes
Archived code from early attempts, kept for reference
General project documentation
Baseline:
- PID: ~107 total_cost (1000 segs)
- exp023 (Conv BC): ~103 total_cost ✅ Best BC
- exp030 (Vehicle state): ~112 total_cost
Target: <45 (56% improvement needed via PPO)
pid.py- Baseline PID controllerexp023_conv.py- Best BC controller (Conv1D)exp030_vehicle.py- Vehicle-centric BC
exp017_baseline/- Proof that MLP can clone PIDexp023_conv/- Conv1D breakthrough (12% gain over naive BC)exp030_vehicle_state/- Vehicle-centric representation
# Test a controller
python tinyphysics.py --model_path ./models/tinyphysics.onnx \
--data_path ./data \
--num_segs 1000 \
--controller exp023_conv
# Compare against baseline
python eval.py --model_path ./models/tinyphysics.onnx \
--data_path ./data \
--num_segs 1000 \
--test_controller exp023_conv \
--baseline_controller pid# Create new experiment folder
mkdir -p experiments/exp031_my_experiment
# Train
python experiments/exp031_my_experiment/train.py
# Test
python tinyphysics.py --controller exp031_my_experiment- Keep root clean - match original challenge structure
- All research/analysis goes in
/analysis/ - All experiments go in
/experiments/expXXX_name/ - Archive old code in
/archive/