In naval architecture, we’ve been relying on the same safety logic for over a hundred years. When a hull gets breached, we cross our fingers and hope the bulkheads hold or the bilge pumps can keep up. But as anyone who’s spent time around ships knows, pumps fail. Generators die. And once the water starts sloshing around, you’re fighting a losing battle against the Free Surface Effect.
I’ve spent the last few weeks working on a different approach. Instead of just watching the water come in, why aren’t we actively pushing it out? This is the core idea behind my project: the Active Damage Control & Rapid Buoyancy System (ADCRBS).
The Concept: A "Submarine Blow" for Surface Ships
The idea is actually borrowed from submarine technology. If a sub needs to surface fast, it "blows" its ballast tanks with high-pressure air. I wanted to see if we could scale that for surface vessels using solid-state chemical gas generators—specifically Guanidine Nitrate.
The system is decentralized. Each ballast tank has its own "airbag" made of high-strength Kevlar. If a pressure sensor detects that the ship has sunk to a critical depth, the module fires automatically. It doesn't need the ship's main power. It just inflates, seals the air vents, and forces the floodwater out through panels in the bottom of the hull. You're replacing dead weight with positive buoyancy in seconds.
Phase 1: Proving the Physics in Python
I didn't want this to just be a "cool idea," so I started building a digital twin in Python to see if the math actually holds up. For this first phase, I used the Wall-Sided Formula to calculate the Righting Arm (GZ). I needed a formula that wouldn't fall apart at steep heel angles, because that’s exactly where this system is meant to work.
def calculate_gz(self, angle_degrees):# This is where the magic happens. We're accounting for the hull's# form buoyancy as it tilts, using the BM term to keep it realistic.theta = math.radians(angle_degrees)term1 = self.gmterm2 = 0.5 * self.bm * (math.tan(theta)**2)return (term1 + term2) * math.sin(theta)
The Results: Does it actually save the ship?
I ran a simulation on a 5,000-ton vessel to see what happens when things go south. The numbers below show the difference between a ship that’s about to capsize and one that’s been stabilized by the ADCRBS bags. (Calculated with a BM of 4.50m).
| Vessel State | Stability (GM) | GZ at 30° (Righting Arm) | Real-World Condition |
|---|---|---|---|
| Intact Ship | 1.50m | 1.125m | Operating Normally |
| Severely Flooded | -1.00m | -0.125m | Capsizing / Abandon Ship |
| ADCRBS Active | 1.50m | 1.125m | Stability Restored |
What’s Next?
Phase 1 is finished—the physics engine works. Now I’m moving into Phase 2, which is all about the "smart" side of the system: decentralized logic and sensor integration. I want to make sure the bags talk to each other so we don't accidentally over-correct and flip the ship the other way.
If you’re a naval architect, a dev, or just someone interested in maritime safety, I’d love to hear your feedback. You can check out the full code on my GitHub or reach out to me directly. Let's build something that actually keeps people safe.
Comments
Post a Comment