Deep-sea ROV dive (3D)

A Blender-built ROV on a tether under a research ship: orbit it, follow it down, trim it, drive its four thrusters and dock with an instrument mooring.

Switch to 2D

Presets

Playback

Trim and tether

Current

Thrusters and depth hold

Camera

Layers

Quality

Model check

The science

Pressure with depth

Hydrostatic balance gives dp/dz = rho(p) g. Seawater is slightly compressible, so the density grows with pressure; the model uses a Tait-type law rho = rho0 (1 + n p / K0)^(1/n) with rho0 = 1025 kg/m3, K0 = 2.2 GPa and n = 5.5, which integrates exactly to p = (K0/n) [ (1 + (n-1) rho0 g z / K0)^(n/(n-1)) - 1 ] plus the 101.3 kPa of air. The constant-density shortcut rho0 g z underestimates the pressure by about 2 % at 11 km. Temperature and salinity profiles are ignored, so the figure is a few percent above the commonly quoted value at the Challenger Deep.

Buoyancy and trim

The net vertical force is (rho(z) V - m) g. Ballast trim changes V by dm / rho0. Because the ROV has a fixed volume while the water gets denser, a vehicle that is neutral at the surface becomes slightly buoyant at depth; a real ROV also loses buoyancy as its foam compresses, which is not modelled here.

Drag and added mass

Each axis feels quadratic drag F = -1/2 rho Cd A |v_rel| v_rel where v_rel is the velocity relative to the moving water, and accelerates an effective mass m (1 + k_added) (1.3 horizontally, 1.6 vertically). With constant net weight W the sink rate approaches the terminal value sqrt(2 W / (rho Cd A)).

Thruster allocation

Four thrusters (two horizontal, two vertical) must realise a commanded wrench tau = [surge, heave, yaw]: tau = A T with A = [[1,1,0,0],[0,0,1,1],[-b,b,0,0]], b = 0.30 m. A has more columns than rows, so the minimum-norm solution is T = A^T (A A^T)^-1 tau. When a thruster would exceed its 150 N limit the whole group is scaled down so the direction of the command is kept. Thrust follows a first-order lag (0.25 s), and the ideal actuator-disc power is P = T^1.5 / sqrt(2 rho A_d) / efficiency.

Tether

The umbilical is a chain of point masses joined by tension-only springs (EA = 2e5 N) with wet weight 1.5 N/m and cross-flow drag 1/2 rho d Cd |v_n| v_n in a current that falls from its surface value to 20 % with an e-folding depth of 150 m. The winch pays out at 2 m/s. In a still sea a hanging tether carries its own wet weight at the top, which is one of the four checks; in a cross current the drag along its length is what limits range and depth. The model is a simplified lumped cable: no snap loads, no vessel motion, no knots or spooling.

Honest simplifications

The ROV is a 4-degree-of-freedom body (surge, sway, heave, yaw): no roll or pitch, and sway has drag but no thruster. The ship holds station at the surface origin. Numbers are typical for a light work-class vehicle but are not any manufacturer's data.

What you see in 3D

The orange line is the tether (it turns redder as the tension at the ship rises), the arrows are thruster forces and net buoyancy, and the glowing ring on the mooring turns green when you have held the ROV within 3 m for 2 s. Distances are metres 1:1; the models are enlarged with camera distance so they stay visible from far away (switch that off in Layers). Water colour and light fade with depth and the ROV lamps take over.

Loading model...
Loading Blender model...
Pressure versus depth: constant density and compressible seawater
Depth and speed versus time
Thruster forces versus time
Made with 🟠 Blender · Three.js