Osborne Reynolds' dye filament stays straight, wavers or shreds according to one dimensionless group, the Reynolds number Re = ρ·v·D/μ, which weighs a fluid's inertia against the viscosity that damps its disturbances; this lab lets you watch that switch happen in a glass pipe. Choose one of four fluids, drag the two sliders, and read the number, the regime, the friction factor and the velocity profile as they answer in real time.
Osborne Reynolds' 1883 experiment: a thread of dye is released into a fluid flowing along a glass pipe. At low Reynolds number the thread stays a straight filament (laminar flow); above about 2,300 it begins to waver, and above 4,000 it breaks into eddies that mix across the whole pipe (turbulent flow). The dimensionless ratio Re = ρ v D / μ, inertial forces over viscous forces, decides which. Change the fluid, the mean velocity and the pipe diameter and watch the dye, the velocity profile and the friction factor respond.
Each button presses one of the simulator's fluid buttons and writes a velocity and a bore into its two sliders, then leaves the lab to do the rest. What appears in the line beneath the buttons is read back out of the running sim after it has updated; nothing on this page stores an answer.
Pick a flow above, or set the sliders yourself.

The Reynolds number simulator is a free interactive physics lab that runs in your browser — nothing to install and no sign-up. Pick water, air, glycerine or SAE 30 oil, set the mean velocity and the pipe bore, and watch Reynolds' dye streak stay straight, waver or break into eddies. It reports the Reynolds number, the flow regime, the kinematic viscosity, the smooth-pipe friction factor, the pressure drop per metre, the entrance length and the centreline-to-mean velocity ratio as you drag the sliders.
| Control | Range | Step |
|---|---|---|
| Fluid | water, air, glycerine, SAE 30 oil | buttons |
| Mean velocity | 0.01 – 10 m/s | log |
| Pipe inside diameter | 1 – 500 mm | log |
Begin from the Reset state and move one control per step. Each cell quotes what the running lab printed at those control positions (the fluid column is its button label), so the lab, not this table, is the authority if they ever differ.
| Step | Fluid | Mean velocity | Pipe diameter | Reynolds number | Flow regime | Friction factor | Pressure drop per metre | Entrance length | Centreline to mean |
|---|---|---|---|---|---|---|---|---|---|
| Start (Reset) | Water | 1.00 m/s | 25.0 mm | 24,905 | Turbulent | 0.02515 | 502.2 Pa/m | 0.594 m | 1.22 |
| Slow the flow to 0.050 m/s | Water | 0.050 m/s | 25.0 mm | 1,245 | Laminar | 0.05139 | 2.57 Pa/m | 1.868 m | 2.00 |
| Raise it to 0.100 m/s | Water | 0.100 m/s | 25.0 mm | 2,491 | Transitional | n/a (transition) | n/a | n/a | n/a |
| Switch the fluid to glycerine | Glycerine | 0.100 m/s | 25.0 mm | 2.23 | Laminar | 28.67 | 7.23 kPa/m | 3.3 mm | 2.00 |
| Switch to air, 5.00 m/s, 100 mm duct | Air | 5.00 m/s | 100 mm | 32,986 | Turbulent | 0.02345 | 3.53 Pa/m | 2.492 m | 1.22 |
| Water at 2.00 m/s in a 500 mm main | Water | 2.00 m/s | 500 mm | 996,208 | Turbulent | 0.01159 | 46.29 Pa/m | 21.99 m | 1.22 |
Rows 1 to 3 leave the fluid on Water and the bore at 25.0 mm; only the velocity slider moves. Row 1 to row 2: slowing the flow twentyfold, from 1.00 m/s to 0.050 m/s, takes Re from 24,905 to 1,245 and the label from Turbulent to Laminar. The dye collapses into a single thread, the friction factor doubles from 0.02515 to 0.05139, yet the pressure drop falls from 502.2 Pa/m to 2.57 Pa/m, and the entrance length stretches from 0.594 m to 1.868 m because a laminar profile settles slowly.
Row 2 to row 3: doubling the speed to 0.100 m/s doubles the reading to 2,491 and lands it in the transition band. The label turns Transitional, the filament begins to snake down the pipe, and the friction factor, pressure drop, entrance length and profile ratio all print n/a, because the lab refuses to apply either formula where neither is reliable.
Row 3 to row 4: the sliders stay put and only the fluid changes. Glycerine is a quarter denser than water but about 1,400 times more viscous, so the same 0.100 m/s in the same bore reads 2.23, deep in laminar flow, with a friction factor of 28.67 and a pressure drop of 7.23 kPa/m. The entrance length shrinks to 3.3 mm: the profile is parabolic almost from the inlet.
Rows 5 and 6 are two turbulent flows from opposite ends of the lab. The air row, 5.00 m/s through a 100 mm bore, reads 32,986 with a friction factor of 0.02345, yet the pressure drop is a mere 3.53 Pa/m because there is so little mass in the moving gas. Water at 2.00 m/s in a 500 mm main reaches 996,208, where the friction factor readout switches from the Blasius fit to the Haaland equation and falls to 0.01159, while the entrance length grows to 21.99 m, some forty-four diameters of pipe.
The lesson the lab teaches best is dynamic similarity. Set water to 2.00 m/s in 25.0 mm and the reading is 49,810; set it to 1.00 m/s in 50.0 mm and it is 49,810 again, with the same friction factor of 0.02115 and the same 1.22 profile ratio, because Re depends only on the product v·D. Try the oil: 1.00 m/s in 25.0 mm and 0.500 m/s in 50.0 mm both read 263. Equal Reynolds numbers in equal geometry give one and the same flow pattern, and that identity is what lets a scale model answer for the full-size pipe or wing.
Two more positions are worth finding. Slide water down to 0.092 m/s and the lab reads 2,291, still Laminar; one step more, 0.093 m/s, reads 2,316 and Transitional, so the 2,300 threshold sits between two adjacent slider steps in a 25.0 mm pipe. At the top of the band, 0.160 m/s reads 3,985 and Transitional while 0.161 m/s reads 4,010 and Turbulent, with the friction factor reappearing at 0.03971.
Every readout descends from the definition Re = ρ·v·D/μ, or Re = v·D/ν with ν = μ/ρ. Three regime-dependent relations do the rest: the friction factor for a hydraulically smooth wall (f = 64/Re when laminar, the Blasius fit f = 0.316·Re^(-0.25) as far as 100,000 and the Haaland equation beyond it), the Darcy-Weisbach gradient dp/L = f·ρ·v²/(2·D), and the entrance length. The ranges marked “in this lab” are the simulator's own displayed values at the control positions named.
| Symbol | Meaning | SI unit | Typical range |
|---|---|---|---|
| Re | Reynolds number, inertial forces over viscous forces; the main readout | dimensionless | 0.00893 (glycerine at 0.010 m/s in 1.00 mm) to 4,981,038 (water at 10.0 m/s in 500 mm) in this lab. |
| v | Mean velocity, what the v slider sets: the average across the bore, not the centreline peak | metre per second, m/s | 0.010 to 10.0 m/s in this lab, on a logarithmic slider; 1.00 m/s is the default. |
| D | Pipe inside diameter, the bore | metre, m (shown in mm) | 1.00 to 500 mm in this lab, on a logarithmic slider; 25.0 mm is the default. |
| rho | Fluid density, fixed by the fluid button | kilogram per cubic metre, kg/m³ | 998.2 (water), 1.204 (air), 1261 (glycerine) and 876 (SAE 30 oil) kg/m³; not adjustable. |
| mu | Dynamic viscosity, fixed by the fluid button | pascal second, Pa·s (shown in mPa·s) | Set by the button, never typed: water 1.002, air 0.01825, glycerine 1412, SAE 30 oil 83.2, each in mPa·s (20 °C; the oil 40 °C). |
| nu | Kinematic viscosity, nu = mu/rho, the ratio the second form of Re uses | square metre per second, m²/s | 1.004e-6 (water), 1.516e-5 (air), 1.120e-3 (glycerine) and 9.498e-5 (SAE 30 oil) m²/s in this lab. |
| f | Darcy friction factor readout, smooth wall: the 64/Re law below 2,300, the Blasius fit from 4,000 as far as 100,000, the Haaland equation beyond that | dimensionless | 0.008993 (water at 10.0 m/s in 500 mm) up to 7166 (glycerine at 0.010 m/s in 1.00 mm); n/a in the transition band. |
| dp/L | Pressure drop per metre of pipe from Darcy-Weisbach, dp/L = f·rho·v²/(2·D) | pascal per metre, Pa/m | 93.44 mPa/m (air at 0.100 m/s in 25.0 mm) to 451.8 kPa/m (glycerine at 0.010 m/s in 1.00 mm) among the settings quoted on this page. |
| Le | Entrance length: 0.06·Re·D when laminar, 4.4·Re^(1/6)·D when turbulent | metre, m (mm below 1 cm) | 0.000536 mm (glycerine at 0.010 m/s in 1.00 mm) to 66.98 m (glycerine at 5.00 m/s in 500 mm, still laminar) in this lab. |
| u(max)/v | Centreline velocity divided by the mean: 2.00 for the parabola, 1.22 for the 1/7-power profile | dimensionless | 2.00 when laminar, 1.22 when turbulent, n/a in transition. |
The number compares the stress that carries a disturbance along, of order ρ·v², with the viscous stress that smooths it out, of order μ·v/D; the derivation, and the 1883 experiment the picture re-enacts, are told in full in the article linked below, and this page keeps to what the sliders and readouts show. At small Re the dye stays a thread because every wobble is damped before it has travelled its own length; at large Re the wobbles are stretched by the mean flow faster than viscosity can drain them, and the streak becomes a band of eddies.
Because only the ratio matters, the individual values do not. Water at 2.00 m/s in 25.0 mm and water at 1.00 m/s in 50.0 mm are different pipes with different speeds, yet the lab reads 49,810 for both and draws the same profile with the same 0.02115 friction factor. That is dynamic similarity, and it is the whole basis of testing a model in a wind or water tunnel: match Re and you have matched the flow pattern.
The lab's two thresholds are conventions, and the physics underneath them is softer than the labels suggest. Turbulent puffs in a circular pipe stop persisting somewhere near 2,000, whatever disturbed the flow; the 2,300 the lab switches at is the design value most textbooks adopt, with a margin above that point, and in the gap a disturbed flow alternates between laminar stretches and bursts of turbulence. Above about 4,000 practically any pipe is turbulent throughout. The lab marks its band by wavering the dye and declining to quote a friction factor; verify the exact figures against the textbook you are working from.
Its readouts bracket the band cleanly. With water in the 25.0 mm bore, 0.092 m/s reads 2,291 and Laminar, 0.093 m/s reads 2,316 and Transitional, 0.160 m/s reads 3,985 and Transitional, and 0.161 m/s reads 4,010 and Turbulent, so each threshold falls between two neighbouring slider steps.
The regime also fixes the shape of the velocity profile, the gold curve on the right of the picture. In laminar flow viscosity alone sets the profile and the answer is Poiseuille's parabola, whose peak on the centreline is exactly twice the mean, which the lab prints as 2.00. In turbulent flow the eddies carry fast fluid outwards and slow fluid inwards, flattening the middle and squeezing the whole velocity change into a thin layer at the wall; the classic 1/7-power fit puts the centreline at 1.22 times the mean.
The steep gradient in that wall layer is what the friction factor readout is measuring. In laminar flow f = 64/Re, so the pressure drop is proportional to the speed: water at 0.025 m/s reads 1.28 Pa/m and 0.050 m/s reads 2.57 Pa/m. In turbulent flow the Blasius fit gives a drop that grows roughly as the speed to the power 1.75: 1.00 m/s reads 502.2 Pa/m and 2.00 m/s reads 1.69 kPa/m, more than three times as much for twice the speed.
Above 100,000 the Blasius fit drifts and the lab switches to the Haaland smooth-pipe equation, which you can watch happen with water at 1.00 m/s: a 100 mm bore reads 99,621 with the friction factor labelled Blasius, and a 500 mm bore reads 498,104 with it labelled Haaland. The two fits agree to about 0.3 % at the hand-over, so the readout does not jump.
Finally, all of this describes fully developed flow, and a real pipe needs a run of length before the profile has formed. The lab estimates it as 0.06·Re·D for laminar flow and 4.4·Re^(1/6)·D for turbulent flow. Laminar flow is the slow settler: glycerine at 5.00 m/s in the 500 mm bore is still laminar at 2,233 and needs 66.98 m of straight pipe, while the turbulent water main at 996,208 needs 21.99 m and the default flow only 0.594 m.
The lab shows an idealised case: a straight, smooth, circular pipe, a Newtonian fluid at a fixed temperature, and flow that has already settled. Move away from that picture and the readouts stop meaning quite what they say; here is where, and what you would notice.
When you have your own fluid rather than one of four buttons, the Reynolds number calculator accepts any density and viscosity, prints the substitution with units, and can be run backwards to find the speed or bore that lands on a chosen Re. The article Reynolds Number: Formula and Meaning tells the story behind the dye, derives the ratio and works seven problems, while Bernoulli's principle covers the loss-free relation between pressure and speed that pipe friction eats into. Carry the result into the friction factor calculator for a rough pipe, watch the property in the denominator behave on its own in the viscosity simulator, or browse the whole library of physics simulations.
It evaluates Re = ρ·v·D/μ for the fluid, mean velocity and pipe diameter you set, using 20 °C handbook values for water, air and glycerine and 40 °C values for SAE 30 oil. From that one number it labels the regime with the textbook pipe thresholds of 2,300 and 4,000, derives the smooth-pipe Darcy friction factor, the pressure drop per metre, the entrance length and the centreline-to-mean velocity ratio, and draws the dye streak and velocity profile to match.
Laminar, but close to the edge. The lab keeps the Laminar label right up to 2,300: water at 0.092 m/s in the 25.0 mm pipe reads 2,291 and still shows a straight filament, while one slider step more, 0.093 m/s, reads 2,316 and the streak starts to waver. In a real pipe turbulent puffs can survive down to roughly 2,000 if the inlet keeps feeding them, so 2,000 is a limit to respect rather than a comfortable margin.
Turbulent. A high value means inertia outweighs viscosity, so disturbances grow into eddies instead of dying away. Above 4,000 the lab prints Turbulent, breaks the dye into a spreading band and flattens the velocity profile, and the friction factor switches from 64/Re to the Blasius fit. Water at the default 1.00 m/s in 25.0 mm is already at 24,905, and the 500 mm main at 2.00 m/s reaches 996,208.
Because its viscosity is 1,412 mPa·s, some 1,400 times that of water, and viscosity sits in the denominator. Glycerine at the default 1.00 m/s in 25.0 mm reads only 22.3, and even 5.00 m/s in the 500 mm bore stays laminar at 2,233. The single corner of the lab that crosses 4,000 is the maximum of both sliders, 10.0 m/s in 500 mm, which reads 4,465 and finally prints Turbulent.
Because between 2,300 and 4,000 neither formula the lab knows is trustworthy. The laminar law f = 64/Re assumes an intact parabolic profile, and the Blasius fit assumes fully developed turbulence; a flow that flickers between the two states obeys neither, so the lab withholds the friction factor, the pressure drop, the entrance length and the profile ratio rather than print a guess. Water at 0.100 m/s in 25.0 mm, Re 2,491, shows all four as n/a.
Because Re depends on the product v·D, so doubling the speed and halving the bore cancel exactly: both settings read 49,810 with water, the same friction factor of 0.02115 and the same profile ratio of 1.22. This is dynamic similarity, the principle that lets a scale model stand in for a full-size pipe or wing. The pressure drop is not the same, 1.69 kPa/m against 211.1 Pa/m, because it also carries ρ·v²/D.
Because both are logarithmic. The velocity slider spans 0.010 m/s to 10.0 m/s and the diameter slider 1.00 mm to 500 mm, three and nearly three decades, and a linear slider would give the whole laminar range a few pixels at the left end. On a log slider each equal move multiplies the value by the same factor, so 0.05 m/s, 0.5 m/s and 5 m/s sit equally spaced and the transition band gets room to explore.
The length of pipe a flow needs after an inlet before its velocity profile stops changing. The lab uses 0.06·Re·D for laminar flow and 4.4·Re^(1/6)·D for turbulent flow, and everything else it prints assumes you are downstream of that distance. Laminar flow settles slowly: water at 0.050 m/s in 25.0 mm needs 1.868 m, while the turbulent default at 1.00 m/s needs 0.594 m and glycerine at 0.100 m/s in 10.0 mm only 0.536 mm.