🚧 Work in Progress
This project is a work in progress and has not been reviewed by anyone yet. The content, calculations, and information presented here may contain errors or inaccuracies. Use at your own discretion.
⚠️ Important Disclaimer
This project was created as a personal learning exercise by the author to better understand decompression theory and dive physics. It is an experimental, work-in-progress tool.
- No guarantees: There is no guarantee that the information, calculations, or visualizations provided here are correct or complete.
- Not for dive planning: This tool must never be used for actual dive planning or any real diving situation. Always rely on certified dive computers, tables, and proper training.
- Educational use: This project may be used for educational purposes by Deepblue diving club.
What Is This?
This is an interactive educational resource for divers who want to understand the science behind their dive computers. All visualizations are based on the Bühlmann ZH-L16 decompression model, one of the most widely used algorithms in recreational and technical diving.
The goal is to make abstract concepts like tissue saturation, half-times, and M-values more intuitive through hands-on exploration and visualization.
Algorithm Details
The decompression calculations use the Bühlmann ZH-L16 algorithm with the following parameters and assumptions:
Model Variants
- ZH-L16A: Original experimental values, TC1 half-time = 4.0 min
- ZH-L16B: Modified for printed tables, TC1 half-time = 5.0 min
- ZH-L16C: Modified for dive computers (default), TC1 half-time = 5.0 min
Constants
- Surface pressure: 1.0 bar
- Water vapor pressure: 0.0627 bar (47 mmHg at 37°C)
- Pressure per 10m depth: 1.0 bar (saltwater)
- Descent rate: 20 m/min
- Ascent rate: 10 m/min
- Deco stop increment: 3 m
Gradient Factors
Gradient factors use the Baker pAnchor method:
- GF Low applies at the pAnchor depth (first stop)
- Linear interpolation from pAnchor to surface (GF High)
- Below pAnchor: constant GF Low
Equations
- Haldane equation: Tissue loading at constant depth
- Schreiner equation: Tissue loading during depth changes
- M-value: M = a + Pamb / b
- Adjusted M-value: Madj = Pamb + GF × (M - Pamb)
Validation
The implementation has been validated against:
- DecoTengu: Tissue loading matches within 0.02%
- Bühlmann printed tables: Deco schedules match within expected tolerance
Note: Our calculations may produce 10-25% shorter deco times than printed tables. This is expected — printed tables include safety margins and round up conservatively. This tool shows the raw algorithm output for educational purposes.
👤 Author
Created by Matej Hron
CMAS I** instructor at Deepblue diving club
🙏 Acknowledgments
Special thanks to Mark Powell for his excellent book Deco for Divers — the primary inspiration for this project and the resource that made decompression theory finally click.
Thanks also to Jan Jahns for his great book, another valuable learning resource for understanding decompression theory.
📖 References & Sources
- Jahns, Jan. (2008). Fyzika. Svaz českých potápěčů, Praha. — Comprehensive overview of diving physics for experienced divers and instructors. Covers essential topics with practical examples from diving. Review on Strany potápěčské
- Powell, Mark. Deco for Divers. — The primary inspiration for this project. An excellent, accessible guide to decompression theory for recreational and technical divers. Highly recommended!
- Bühlmann, A.A. (1984). Decompression–Decompression Sickness. Berlin: Springer-Verlag. — The original work describing the ZH-L16 algorithm.
- Wikipedia. Bühlmann decompression algorithm — Overview of the algorithm, tissue compartment half-times, and M-values.
- Wienke, B.R. Decompression Theory (PDF) — Comprehensive introduction to decompression physics and physiology.
- Alveolar Gas Equation: The model accounts for water vapor pressure at body temperature (37°C) = 47 mmHg ≈ 0.0627 bar, which reduces the effective partial pressure of inspired gases. Wikipedia: Alveolar gas equation
- Schreiner, H.R. (1971). Safe Limits of Exposure to Increased Pressure. — Derivation of the Schreiner equation for calculating gas loading during linear pressure changes.
- Strany potápěčské. stranypotapecske.cz — A comprehensive Czech diving portal and community resource run by Zdeněk Šraier. Features an extensive library of book reviews, educational articles on diving physics and decompression theory, dive site conditions database, equipment reviews, and training materials. An invaluable resource for Czech-speaking divers at all levels.