Dive Simulator
Launch Free Simulator

Diving is expensive; learning doesn't have to be.
Practice in the simulator, not during a dive you're paying for.
Train on dry land, build confidence, and make the most of every minute of your underwater adventure.

The simulator teaches you to act correctly to mistakes, showing you the future of your decisions before you get into the water.

So the real question is:
  • What if I had made a different decision?
  • What happens if I stay five more minutes at the bottom?
  • What happens if I ascend too quickly?
  • How do my tissues react if I switch to a different gas mixture?
  • How does a deeper or longer stop affect my decompression profile?
Simulation answers these questions immediately, visually, and safely.

What this simulator does?

Divantys Dive Simulator is an interactive diving simulation and learning platform that allows you to visually and in real time observe the physical and physiological processes that occur during a dive. Its goal is to transform complex concepts of diving theory, decompression, and human physiology into an easy-to-understand visual experience for divers, students, instructors, and industry professionals.
Divantys works as a virtual laboratory where you can explore how the human body responds to different dive profiles, gas mixtures, depths, and exposure times.

"The goal is not to simulate diving, it is to improve the real diver."

Controllable 3D experience

Movement and camera with controls adapted to mobile, tablet, and PC

  • Descent/Ascent joystick
  • Look/rotation joystick
  • Neutral zone for stability

Full report

Dive summary for learning and analysis

  • Maximum depth
  • Total time
  • Total and remaining NDL
  • Ceiling (minimum safe depth)

Models and concepts represented

The simulator implements physiological models and common educational rules in recreational diving: nitrogen absorption and release by tissues, no-decompression limits, and oxygen exposure.

Tissue model (16 compartments)

Simulates nitrogen loading in different tissues at different speeds, allowing estimation of saturation, “ceiling”, and behavior in repetitive dives.

Carga baja Carga media Carga alta
Oxygen exposure (PPO₂ / CNS)

Calculates PPO₂ based on depth and fraction of oxygen (FO₂), and accumulates CNS exposure with a PPO₂ limits model. Includes alert levels (OK / WARNING / DANGER).

OK WARNING DANGER

NDL (No Decompression Limit)

Calculates a “recreational” NDL based on depth and time, with Nitrox support (EAD).

  • Total allowed NDL
  • Remaining NDL according to the profile
  • Educational risk interpretation

Ceiling and ascent

Estimates a minimum safe depth (ceiling) and evaluates if the ascent can be made without stops.

  • Ceiling in meters
  • Required stop detection
  • Safety stop recommendation

Repetitive dives

Maintains residual load between dives and simulates surface intervals.

  • Tissues are preserved between dives
  • Surface interval reduces load
  • Residual accumulation learning

Instruments and visualization (HUD)

To facilitate understanding, the simulator shows visual instruments on screen during the dive. Its purpose is for the user to “see” how concepts change with their behavior.

Air tank (AL80)

Simulates consumption according to SAC, ambient pressure, and simulated time.

  • Pressure in bar and PSI
  • Remaining percentage
  • Reserve alert (e.g., 35 bar)
  • Out of air status

Nitrogen bar

Educational visualization of load increase/decrease.

  • Visual smoothing (slow loading / normal unloading)
  • Colors by level (green→red)
  • Didactic approach, easy to interpret

NDL and ascent status

Indicators to understand no-decompression limits and ascent habits.

  • Remaining NDL
  • Safety stop recommendation
  • Ceiling (if applicable)

PPO₂ y CNS

Track oxygen toxicity through PPO₂ values and cumulative CNS exposure. Real-time status is displayed using physiological risk levels.

  • Color-coded alerts for toxicity levels
  • Cumulative CNS percentage tracker

Real-time Depth

Continuous depth monitoring to better understand the evolution of the dive profile.

  • Dynamic depth updates throughout the entire dive.
  • Visual smoothing that simulates the behavior of real instruments.
Time scale (1×, 2×, 5×, 10×)

You can speed up the simulation to observe how values change faster. This function is useful for education: it shows the trend of indicators without having to wait for long periods.

Safety Stop (Recreational safety stop)

This module simulates the 5-meter safety stop in recreational diving. Its logic is based on scaled real-time control, depth tolerance, and detection of interruptions or redescents to validate or invalidate the stop.

Stop recommendation

The stop is automatically recommended according to the dive profile.

  • Activated if maximum depth exceeds 10 m
  • Deactivated if there is active or required deco
  • Status: recommended → activates the safety stop
  • Optional user notification callback

Execution logic

The system controls the time in the 5-meter zone with tolerance and time scaling.

  • Stop zone: 5 m ± 2 m
  • Pause zone: 5 m - 3 m (no progress)
  • Time accumulation in simulated seconds
  • Scaled by simulation speed (GET_TIME_SCALE)
  • Completed after 180 effective seconds
  • Automatic pause upon leaving the zone

Interruptions and redescent

Detects if the diver leaves the stop or returns to depth after completing it.

  • Leaving the zone invalidates progress
  • Cancelled state activates tracking reset
  • Marks interruption if logic is broken
  • Redescent > 6 m resumes recommendation
  • 30 s window for post-completion invalidation
Stop time control

Time is calculated in simulated real-time, accumulating only when the diver remains within the correct range. If they leave the zone, the counter pauses. If they complete the 3 effective minutes, the stop is marked as completed. However, a subsequent redescent can invalidate it under certain physiological conditions.

Nitrogen load bar (Educational UI)

This module visualizes in real time the nitrogen load in the diver's fast tissues. Its objective is educational: to show how relative saturation evolves during the dive through a smoothed, color-coded progress bar.

Nitrogen load 65%
GF: 0.75

N₂ load visualization

Provides a simplified representation of the nitrogen saturation level in fast tissues.

  • Based on fast tissues from the physiological model
  • Value expressed as a percentage (0–130%)
  • Visual smoothing to prevent sudden jumps
  • Real-time update during the dive

Color coding

The bar changes color according to the load level for quick interpretation.

  • Green: low and stable load (< 60%)
  • Yellow: caution zone (60%–85%)
  • Orange: high load (85%–100%)
  • Red: potential supersaturation (> 100%)

Smoothing & Stability Logic

The visual metrics update progressively rather than instantly to accurately mirror gauge behavior.

  • Progressive interpolation (ease-in / ease-out)
  • Differentiated response (slower loading than unloading)
  • Screen flicker prevention
  • Visual value clamping between 0% and 130%
Secondary information (GF / physiological state)

The bar can include additional text (such as Gradient Factor or physiological state from the model). This allows for visual correlation between nitrogen saturation and decompression status, offering a more intuitive representation of the accumulated risk.

Air consumption (AL80 multi-tank)

This module simulates actual gas consumption in dynamic time using SAC (Surface Air Consumption), ambient pressure, and time scale. It supports single or multi-tank configurations and calculates the progressive depletion of the entire system.

Consumption model

Consumption is based on the diver's SAC adjusted by ambient pressure and simulated time.

  • User-configurable SAC
  • Ambient pressure = 1 + depth/10
  • Scaled by GET_TIME_SCALE()
  • Proportional consumption per tank

Multi-tank system

The system distributes consumption among all active tanks in the equipment.

  • Base tank AL80 (2265 L)
  • Support for multiple tanks
  • Consumption split among active tanks
  • Global OUT OF AIR status

HUD Visualization

Each tank is represented with a vertical level bar and pressure reading in bar and PSI.

AL80 #1
207 bar
3000 psi
AL80 #2
207 bar
3000 psi
  • Visual level by volume percentage
  • Real-time bar / PSI conversion
  • Color based on reserve (green → orange → red)
  • Alert below 35 bar
Air system status

The system calculates the total remaining volume by summing all active tanks. Consumption is updated at each simulated frame and allows detecting the reserve point or the critical "out of air" condition. The model reflects both individual and global consumption.

Oxygen toxicity (NOAA CNS)

This module evaluates the risk of oxygen toxicity using PPO₂ and accumulated CNS. The status is represented through physiological risk levels like a dive computer.

Oxygen partial pressure (PPO₂)

Determines the immediate risk of acute toxicity.

  • PPO₂ = FO₂ × ambient pressure
  • Operational limit: 1.4 bar
  • Critical: ≥ 1.6 bar

CNS (Central nervous system)

Progressive accumulation of oxygen exposure according to the NOAA model.

  • NOAA exposure model
  • Progressive increase over time
  • 100% = recommended limit

Toxicity status

Combined evaluation of PPO₂ and CNS in real time.

OK
WARNING
DANGER
  • OK: exposure within safe limits
  • WARNING: caution zone
  • DANGER: risk of acute toxicity
Oxygen risk model

The system combines acute toxicity (PPO₂) and cumulative toxicity (CNS). The displayed status reflects the dominant risk level at each moment of the dive, similar to a real technical dive computer.

Decompression engine logic (Bühlmann + GF)

This module calculates the diver's decompression plan in real time by simulating tissue nitrogen saturation, generating mandatory stops and adjusting the ascent profile according to physiological status and the safety gradient (GF). Additionally, it maintains a persistent history to prevent losing progress between plan regenerations.

Decompression plan generation

The system builds a stop profile based on the Bühlmann model with Gradient Factors.

  • Ceiling calculation with GF line (safe ascent limit)
  • Rounding to stop increments (STOP_STEP_M)
  • Simulation of tissue loading per stop
  • Ends when the ceiling drops below 3 m (STOP_REQUIRED_M)
  • Preview mode without affecting actual history

Stop history and persistence

The system saves the progress of each stop to prevent state loss during regenerations.

  • decoHistory stores progress by depth
  • Hydration of stops from history
  • Preserves performed time (timePerformedSec)
  • Prevents resets on stops already started
  • Merge between new plan and previous state

Real-time update

The engine continuously recalculates decompression status based on depth, simulated time, and tissues.

  • Current stop control with depth tolerance
  • Order locking (do not skip previous stops)
  • Dynamic regeneration if the profile worsens or improves
  • Time accumulation by dtSimSec
  • Auto-complete at 95% compliance
  • Dynamic TTS calculation (ascent + stops)
Total time to surface (TTS)

TTS is calculated by combining stage-by-stage ascent time (based on ascent rate) plus the remaining time in active decompression stops. The result is continuously adjusted based on the actual state of the tissues and the current plan.

Responsible use and important notice

This project is an educational and illustrative tool. Real diving requires training, certified equipment, and professional supervision.

Frequently asked questions

Is this a dive planner?

No. It is a visual learning tool. It must not be used to plan real dives.

What gases are supported?

Air and Nitrox are supported via oxygen fraction (FO₂), affecting NDL, nitrogen, and PPO₂/CNS.

Does it work on mobile devices?

Yes. Controls seamlessly adapt to mobile screens using custom joysticks and optimized pointer events.

Does it need to be downloaded?

We use 3D WebGL technology so you don't have to download it from any app store and can enjoy free, unlimited use directly in your browser.

Our Team

Gonzalo Incera Suarez

Dive Instructor | Software Technician

Imane Ait Ali

Dive Master | Algorithm Auditor

Paulina Lamuño Encorrada

Dive Master | UI - CSS Design

Jonas Miller Hernandez

Software Engineering

Loading...