SRM Casing Calculator
A web calculator that designs a KNDX solid rocket motor and its casing, with every equation checked by hand before it went into the code.
Live app: srm-calculator.vercel.app
Objective
The casing is the safety-critical part of a solid motor: it has to hold the peak chamber pressure. The calculator takes a few inputs (propellant, grain and nozzle geometry) and designs the motor and its casing, down to a bill of materials. The long-term goal is to enter a target apogee, rocket mass and maximum diameter, and get the full motor design.
My role
I derived and verified all of the physics and set the design rules. The code was written with Claude Code from my specifications, and I audited every result before accepting it.
What I did
- Derived the physics formula by formula: propellant properties, internal ballistics, thick-wall (Lamé) casing stress, closures, bolts and O-ring grooves.
- Checked the KNDX propellant data against Richard Nakka's primary sources.
- Ran a verification-first process: hand-derived answer keys, blind double calculations and independent audits before any code was accepted.
- Sized the casing from the true peak chamber pressure, not the starting pressure.
- Built a material library from MIL-HDBK-5J data.
Results
- The verified motor-and-casing engine is live at srm-calculator.vercel.app.
- 149 automated tests at the engine-v1 release.
- A separate audit pass on v1 found 0 critical, major or minor issues.
Challenge
An audit of the first version found that it underestimated the peak chamber pressure, which is the number the casing is sized from. It also used the wrong burn-rate coefficients for KNDX. Instead of patching it, I rebuilt the engine from scratch and checked every equation before it went into the code. Lesson: for safety-critical numbers, verify the physics before writing the code, not after.
Next
- Flight prediction: simulate the rocket's flight to predict its apogee, then work backwards from a target apogee to the motor design
Tools: React · TypeScript · Vite · Vercel · Claude Code
Credits: Code written with Claude Code from my specifications; the physics derivations and verification are mine.