r/scubadiving • u/EstablishmentOwn714 • 2d ago
Free and open source dive computer simulator
Hi everyone,
I've been working on a side project I wanted to share: a dive computer simulator that runs in your browser. It can be installed as a PWA on your computer or your phone to be used offline
Try it: https://antjac.github.io/DiveComputerSimulator/
(Source code: https://github.com/Antjac/DiveComputerSimulator)
The idea: you steer a diver in the water column, and watch in real time how different dive computers react, side by side: NDL, deco stops, ascent rate, alarms, tissue loading, gas consumption, oxygen toxicity.
26 models simulated, each one built from its official manual: Shearw Teric), Garmin (Descent Mk3i, X30, X50i), Suunto (D5, EON Core, ZoopNovo, Nautic), Mares (Puck Pro, Quad Ci, Quad 2, Quad Air, Genius), Scubapro (G2, G3, Luna 2.0 AI), Cressi (Goa, Donatello, DaVinci), Aqualung (i330R, i770R), SEAC (Screen, Tablet) and the Azoth Systems Odyssey.
What you can do with it:
- Push the buttons of the computer on screen: menus, screens and gas switches follow the real procedure of each model
- Make mistakes safely: blow your NDL, ascend too fast, skip a stop,ch computer's alarms, penalties and lockouts
- Understand every alarm: a bubble explains what the alert means on that computer and what to do
- Exercises for students (safety stop, deco stops, gas switch, repetitive dives…), a dive recap after each dive, a logbook, a replay of your dives, and a playful 3D view
- Multi-gas (up to two deco gases), boat breaks for repetitive dives, metric/imperial, works offline on your phone (installable app)
Important: this is an educational tool only. Never use it to plan or conduct a real dive. Algorithms marked ≈ are proprietary and only approximated, and even the public ones can differ from the real device. Always follow your training and your own computer's manual.
It's free, no ads, no account, no tracking, and open source (AGPL).
I'd really love feedback, especially from people who own one of these computers: if you spot a difference with your real device (a wording, a threshold, a screen), tell me. I'll fix it and log it in the changelog. Instructors: I'd be curious to in your courses.
Thanks for reading, and safe diving!
1
u/LDSatheist 2d ago
It’s really cool. Can we get trimix?
2
u/EstablishmentOwn714 2d ago
Not yet, only nitrox (multi gaz).
But I hope to manage trimix in the future
1
u/Hefty_Definition_527 1d ago
ich hab eine suunto zoopnovo und kann es später oder die kommenden tage gerne testen
2
u/holliander919 1d ago
This ist kinda nice to Show people during class what their Computer will Tell them. So theyre prepared before they do a deep specialty or stuff Like that.
Thanks
-4
u/matthewlai 2d ago
It would be a lot more impressive and useful if you can get Claude to actually reverse engineer RGBM, or give it access to a real Suunto computer and have it iterate and develop an accurate approximation of it.
8
u/EstablishmentOwn714 2d ago edited 2d ago
RGBM (especially Suunto’s Fused RGBM 2) and other proprietary algorithms are heavily protected by international patents and trade secrets. Attempting to truly reverse-engineer or "crack" the exact proprietary code to redistribute it for free under an open-source license (AGPL-3.0) on GitHub would instantly cross the line into patent infringement. Using public user manuals to approximate the behavior on top of an open Bühlmann baseline keeps this project safe, legal, and unassailable by manufacturers' legal departments.
Giving an LLM access to a physical dive computer to have it run a reinforcement learning loop inside a virtual hyperbar chamber is a fascinating concept. However, building that automated testing infrastructure, handling computer vision to read the screens, and processing that massive amount of real-world telemetry would require a dedicated research lab and months of hardware engineering. It is far beyond the scope of a sideproject.
The explicit goal of this simulator is educational, not professional planning. It is designed for instructors and students to visualize how different computers react conceptually to the same profile (e.g., how Gradient Factors restrict a ascent compared to a legacy RGBM curve, or how various brands handle alarms and gas switches). For this pedagogical purpose, a well-calibrated approximation is actually more than enough.
1
u/matthewlai 2d ago
If you are already putting this kind of things online, I would recommend learning more about IP laws.
It most certainly isn't patented. A patent is government protection for an invention in return for public disclosure of the invention. You tell us how it works (benefit to society), and we give you legal protection for a certain number of years. That's why patents and trade secrets are mutually exclusive. If it was patented, we would already have a PDF telling us how RGBM works.
Trade secrets don't have legal protection. That's literally just a company keeping some information secret. As long as you are not breaking into the actual company's office or computer systems to get that information, there is nothing wrong with figuring out the trade secret yourself.
Code is protected by copyright (in most countries). Copyright protects a specific artistic artifact. It could be a painting, a writing, or a piece of code. So you can't post and re-distribute the actual Suunto firmware without their permission. But copyright does not protect algorithms or mechanisms.
Reverse-engineering on a legally obtained product is legal in almost if not all jurisdictions. Even in the US, courts have decided that reverse engineering for interoperability or compatibility is perfectly legal. https://www.law.cornell.edu/wex/reverse_engineering
Now in the US (probably the most legally hostile country), you also have the DMCA to worry about, which says you can't try to circumvent digital rights protection. I don't know if Suunto firmware has digital rights protection. But in any case, that's a uniquely American problem.
Now, what CAN actually get you into trouble - trademark laws. You are using the registered trademarks of those companies. There are many rules on when you are allowed to do that, and they differ country to country. You are also copying the likeness of their computer interfaces, which is a grey area as that can potentially be covered by design patents (which are a completely different thing from "normal" patents).
to visualize how different computers react conceptually to the same profile (e.g., how Gradient Factors restrict a ascent compared to a legacy RGBM curve
Yes, that would be useful. But that doesn't actually work if you don't have an RGBM implementation or accurate approximation.
Giving an LLM access to a physical dive computer to have it run a reinforcement learning loop inside a virtual hyperbaric chamber is a fascinating concept. However, building that automated testing infrastructure, handling computer vision to read the screens, and processing that massive amount of real-world telemetry would require a dedicated research lab and months of hardware engineering. It is far beyond the scope of a sideproject.
No, it would not be as simple as just an LLM prompt. You would have to build some actual hardware. But it would also be much more useful. It's not that complicated. Building a small pressure chamber only requires a pot, and a microcontroller controlling a pump and a pressure sensor. Or even just build a little jig to have a camera film a computer, and take it diving (assuming Suunto doesn't log deco information in dive logs, otherwise you can also just collect a bunch of dive logs).
1
u/EstablishmentOwn714 2d ago
Thanks, fair correction on the IP side: "patented" was the wrong word, Fused RGBM is a trade secret, not a patent. For the record, the simulator contains no manufacturer code or firmware; everything comes from public documentation (owner's manuals, firmware release notes, published tables).
But I think I didn't explain the goal well. This isn't meant to reproduce each algorithm exactly. It's a training tool for the *interface*: what your computer actually shows and asks of you, button by button, as described in its manual. How the screens change as you approach the NDL, what a deco stop looks like on that specific model, which alarm fires when you ascend too fast or skip a stop, how you acknowledge it, how you switch gas, what happens after a violation (lockout, penalties…).
That's where students struggle in my experience: not with decompression theory, but with reading their own computer under stress. The algorithms only need to be plausible enough for the displays to behave realistically, and the ones that are proprietary are clearly marked as approximations (≈) in the app.
What I do rely on is feedback from people who actually dive with these computers. When someone tells me "my Peregrine doesn't do that" or "on my Suunto the stop was longer", I check it and adjust the simulator: wording, thresholds, colours, behaviours, and the approximations too when the real device clearly differs. Every fix is logged in the changelog. Just today, a user pointed out a colour rule of the Shearwater RATE field that's only documented in the firmware release notes; it's now in.
3
u/cyclopsmudge 2d ago
Man the website is cool, but please don’t write every single comment with AI. They’re massive and exhausting to read.
If you’re translating from a different language, I’d prefer reading something a human wrote that was messed up a little in google translate than something just purely Claude written
4
u/mightymanuel 2d ago
Honestly this would be great as a shopping tool. I hated my first computer because of the way it behaved in certain situations (it would lock for 24 hours if you ascended too quickly, sounds like no big deal until you swing your arm on a shallow dive and it locks out because technically that 3 ft sweep was over whatever percentage threshold). Though I question if it would necessarily capture all the weird edge cases.