Simulation, estimation, and control for physical systems.
Most of what I build sits in the same place: between a dynamics model and a controller or estimator that has to act on incomplete information about it. The application areas below look unrelated. The mathematics underneath them mostly is not. A Kalman filter tracking a car and a batch estimator fitting an orbit are the same argument about what a measurement is worth.
I am drawn to the cases where a method is known to fail and the interesting work is measuring how. Several of these repositories exist mainly to quantify their own failure mode.
- State estimation and sensor fusion, and in particular filter consistency: whether the covariance an estimator reports is honest about its own error.
- Optimal and predictive control against real actuator limits, where the limit is inside the optimisation rather than clipped onto the output.
- Spaceflight dynamics: orbit determination, attitude control, and conjunction analysis.
- Upper limb prosthetics, especially the latency budget a myoelectric controller actually has to work within.
- Fusion power balance, and the recirculating power that decides whether a plant is a net producer.
Robotics
| Repository | Tests | |
|---|---|---|
| manipulator-kinematics | Analytic and damped least squares inverse kinematics for 6R arms, with singularity detection. | 134 |
| rrt-motion-planner | RRT, RRT star, and PRM, with a harness that benchmarks them on equal terms. | 196 |
| differential-drive-slam | EKF-SLAM with data association, alongside occupancy grid mapping. | 221 |
| quadruped-gait-simulator | Gait generation and static stability margins, which reproduce the classic three quarter duty factor result. | 311 |
| trajectory-optimizer | Joint trajectories that respect velocity, acceleration, and jerk limits at once. | 203 |
| swarm-formation-control | Consensus and formation control with reciprocal velocity obstacle avoidance. | 156 |
Autonomous driving
| Repository | Tests | |
|---|---|---|
| mpc-lateral-controller | Model predictive path tracking, measured against Stanley and Pure Pursuit on the same paths. | 208 |
| kalman-sensor-fusion | Extended and unscented filters fusing radar and lidar, checked for consistency rather than assumed. | 211 |
| behavior-planner-fsm | Lane change decisions from a state machine and a cost function, with the safety gate kept architecturally separate. | 379 |
| av-perception-pipeline | Camera calibration, bird's eye transform, and lane geometry recovered in metric units. | 195 |
| occupancy-grid-freespace | Free space from lidar, including a measurement of how badly a static grid handles moving obstacles. | 174 |
| av-scenario-runner | A scenario format and a harness that proves it can fail the scenarios it should fail. | 147 |
Spaceflight dynamics
| Repository | Tests | |
|---|---|---|
| orbital-mechanics-toolkit | Kepler and universal variable propagation, Lambert solving, and ground tracks with J2 drift. | 275 |
| spacecraft-attitude-control | Quaternion dynamics with reaction wheels, PD against LQR, and magnetic momentum unloading. | 117 |
| constellation-planner | Walker constellations scored on an equal area grid, so coverage statistics are not biased towards the poles. | 270 |
| ascent-trajectory-optimizer | Gravity turn ascent with the delta-v budget split into gravity, drag, and steering losses. | 136 |
| orbit-determination | Batch least squares from range and range rate, with an observability study of what a short arc costs. | 447 |
| conjunction-screening | Collision probability by two independent methods, including the dilution region where a larger covariance reports a smaller risk. | 209 |
Prosthetics
| Repository | Tests | |
|---|---|---|
| emg-gesture-classifier | EMG gesture classification, and a measurement of how much a random split flatters the result. | 211 |
| myoelectric-signal-processing | Filters, onset detection, and features, keeping the causal and offline distinction honest. | 199 |
| prosthetic-hand-controller | Two site proportional control, grip force regulation, and slip recovery under a stated latency budget. | 2,909 |
| gait-phase-estimator | Gait phase from inertial sensors for a powered prosthesis, evaluated on timing bias rather than detection rate alone. | 142 |
| transradial-limb-sim | Motor, gearbox, and tendon model carrying the full efficiency chain from battery to fingertip. | 128 |
Fusion energy
| Repository | Tests | |
|---|---|---|
| arc-reactor-benchmark | Zero dimensional power balance for compact high field tokamaks, benchmarked against published ARC and ITER operating points. | 223 |
Every repository installs from a clean checkout and runs its own test suite in continuous integration on Linux and Windows, under ruff and mypy in strict mode. Tests are in three tiers, and the first one checks the mathematics against analytic solutions and conservation laws rather than against recorded output.
Every number in a README is produced by a script committed next to it. Every algorithm cites the paper it comes from. Every repository carries a design note recording the alternatives that were rejected and the conditions under which the implementation gives poor results.
