Thrust Allocation
Dynamic positioning solver
My own Sequential Quadratic Programming solver for the thrust allocation problem: given the wind, waves and current pushing a vessel around, work out what every propulsion unit should do to hold station. It handles any mix of tunnel thrusters, azimuth thrusters and thrusters with rudders.

Highlights
offline built for digital-twin analysis, where accuracy beats the millisecond deadlines a live DP system works tononlinear solves the power-to-thrust nonlinearity as a series of quadratic problems rather than inverting the control math and hopingzones respects forbidden sectors, the angles an azimuth thruster may not traverse for safetypruning skips the feasible-region combinations that point into the external forces, cutting computation time by over 95%
The problem splits once per forbidden zone, so a drill ship with six azimuth thrusters and three regions each means separate optimisations. That combinatorial blow-up is what the pruning step exists to kill.
Built with
Python for the solver and backend, Vue for the frontend, Firebase Hosting.