
Fluid dynamics, river currents, and biological navigation — the physics of how a fish swims five hundred kilometres against the flow.
The Fish That Comes Home
Every year, when the monsoon rains swell the rivers of Bengal and the Padma runs brown and furious with Himalayan sediment, something extraordinary happens below the surface. Millions of hilsa — Tenualosa ilisha, the silver-flanked king of Bengali fish — leave the salt water of the Bay of Bengal and swim upstream into the rivers. They fight the current for five hundred kilometres or more, navigating through the labyrinth of channels in the world's largest delta, dodging fishermen's nets, and pressing on through water so muddy that visibility drops to zero. They are heading to the freshwater reaches of the Padma, the Meghna, and the Ganges to spawn.
No one told them the way. No one taught them the route. They have been doing this for millions of years.
In the fishing village of Lakshmikantapur, on the south bank of the Padma about sixty kilometres south of Kolkata, a fifteen-year-old boy named Arjun Halder sat in his father's wooden boat at dawn and watched the water. His father, Manik, was a jele — a professional fisherman — and his father before him, and his father before that. The Halders had fished the Padma for as many generations as anyone could remember.
"They're coming," Manik said, testing the current by watching the angle of a twig floating past the hull. "Two more days."
Arjun looked at the water — opaque, silty, rushing — and saw nothing. "How do you know?"
Manik pointed at the river. "The water is changing. Smell it."
Arjun leaned over the gunwale and inhaled. There was a shift — subtle, beneath the usual wet-earth scent of the monsoon river. A faint saltiness. A hint of something deeper, more organic. The tide had pushed a wedge of sea water further upstream than usual.
"When the salt water pushes inland, the hilsa follow it," Manik said. "They ride the boundary."
The Physics of River Flow
What Manik was describing — without the scientific terminology — was a phenomenon called the salt wedge. When a tidal river meets the sea, the denser salt water slides underneath the lighter fresh water, pushing a wedge-shaped tongue of saltiness upstream along the riverbed. The boundary between the two layers — the halocline — is not a sharp line but a gradient zone where salinity changes rapidly over a short vertical distance.
The hilsa, it turns out, navigate this gradient with extraordinary precision. They swim within or just above the halocline, using the salt wedge as a highway. The denser salt water below them reduces the energy they need to maintain depth (denser water provides more buoyancy), and the flow dynamics at the halocline boundary can create zones of reduced current where the opposing forces of upstream tidal flow and downstream river flow partially cancel out.
But to understand why this matters, you need to understand the forces acting on a fish swimming upstream.
A hilsa swimming against the Padma's monsoon current faces a flow rate of roughly 2-4 metres per second — a formidable rush of water pushing against the fish at every moment. To make upstream progress, the fish must swim faster than the current. The power required to swim through water scales with the cube of velocity — swim twice as fast, and you need eight times the energy. This is the tyranny of fluid drag.
Drag force on a body moving through fluid is given by Fd = 0.5 rho v^2 Cd A — the same equation that governs wind on a pandal. But the fish doesn't just face drag; it also faces the river's own momentum pushing it backward. The total force the hilsa must overcome is the combination of drag from its own movement plus the momentum of the oncoming flow.
So how does a fish weighing less than two kilograms generate enough thrust to swim five hundred kilometres against this force, without stopping to eat?
Hydrodynamic Design
The hilsa's body is an answer to this question — an answer refined over millions of years of evolution. Its cross-section is a teardrop — rounded at the front, tapering to a narrow point at the tail. This shape, called a streamlined body or fusiform shape, minimises drag in two ways.
First, the rounded nose pushes water smoothly aside rather than creating a zone of high pressure in front. Second, the long taper at the rear allows the water to close back together gradually behind the fish, avoiding the turbulent wake that would form behind a blunt-ended object. A blunt body creates a low-pressure zone behind it (like the vacuum behind a truck on the highway), and this pressure difference between front and back is the main source of pressure drag. The hilsa's tapered tail virtually eliminates this.
The result is a drag coefficient of approximately 0.04 to 0.1 — extraordinarily low. For comparison, a sphere has a drag coefficient of about 0.47, and a flat plate perpendicular to the flow has a Cd of about 1.2. The hilsa's shape slips through water with ten to thirty times less resistance than a sphere of equal cross-section.
Arjun had noticed this his whole life without knowing the physics. When he caught a hilsa and held it in his hand, the fish felt like a slippery blade — every surface curved, every fin tucked flat against the body, every scale aligned in overlapping rows that pointed backward like shingles on a roof. Running his hand from head to tail, the scales felt smooth. Running his hand from tail to head, they caught and bristled. The scales, layered with a thin mucus coating, reduced skin friction drag — the component of drag caused by the water's viscosity rubbing against the fish's surface.
Thrust: The Oscillating Tail
To overcome what drag remains, the hilsa generates thrust by oscillating its tail — the large, deeply forked caudal fin — in a sinusoidal wave. The mechanics are closer to a propeller than a paddle. As the tail sweeps through the water, each segment of the fin generates a pressure difference between its two sides — high pressure on the pushing face, low pressure on the pulling face. This pressure difference produces a net force that is angled both sideways and forward. The forward component is thrust. The sideways components from left and right strokes cancel each other out over a full cycle.
The hilsa's tail is deeply forked — a design that maximises thrust efficiency. A broad, rounded tail (like a goldfish's) pushes a lot of water but wastes energy creating turbulence. A deeply forked tail acts more like a pair of high-aspect-ratio wings, generating lift (thrust, in the fish's frame of reference) with less turbulent waste. Marine engineers call this high aspect ratio, and it's the same reason glider wings are long and narrow rather than short and wide.
The burst swimming speed of a hilsa can exceed 10 body lengths per second. For a 40-centimetre fish, that's 4 metres per second — faster than the Padma's monsoon current. But they cannot maintain burst speed for five hundred kilometres. Instead, they alternate between bursts and rests, and — crucially — they exploit environmental shortcuts.
Navigation and Energy Conservation
Arjun's father knew things about the hilsa that ichthyologists were only beginning to document. He knew that the fish did not swim straight up the middle of the river, where the current was strongest. They swam near the banks, behind bends, in the lee of sandbars — anywhere the current was slower. They swam deeper during the day and shallower at night. They timed their runs with the flood tide, when the incoming sea pushed water upstream and temporarily reduced or even reversed the net current.
"The fish are lazy," Manik said, grinning. "They're smart lazy. They let the river do the work."
He was describing a strategy that biologists call selective tidal stream transport. The hilsa times its swimming to match the tidal cycle. During flood tide — when the sea pushes water upstream — the fish swims actively, exploiting the tidal boost. During ebb tide — when the river pushes water seaward — the fish drops to the bottom and rests, holding position behind rocks or in depressions where the current is minimal. Over a 24-hour cycle, the fish makes net upstream progress while expending energy only half the time.
This strategy is astonishingly efficient. Studies have shown that fish using selective tidal stream transport can cover the same distance as continuous swimmers while using 40-60% less energy. The hilsa didn't invent tidal shortcuts — it evolved to exploit them, and the fishermen of Lakshmikantapur observed the evidence for centuries before scientists gave it a name.
The Chemistry of Navigation
But how does the hilsa know where it is? The Padma during monsoon is a sensory void for vision — the sediment load turns the water into liquid mud. The fish navigates in near-total darkness, yet somehow it finds its way to the same spawning grounds year after year.
The leading theory involves olfactory navigation — smell. Hilsa, like salmon, are believed to imprint on the chemical signature of their birth river as juveniles. Each river has a unique cocktail of dissolved minerals, organic compounds, and trace elements that together create a distinctive "flavour." The fish's olfactory system — located in paired pits on the snout, each containing millions of sensory receptor cells — can detect dissolved chemicals at concentrations as low as parts per billion.
As the hilsa swims upstream, it follows a gradient of increasing familiarity — the water smells more and more like "home." When it reaches a fork in the river, it chooses the branch that matches its imprinted chemical memory. This is not intelligence. It is not decision-making. It is a chemotactic response — an automatic orientation toward a chemical signal — refined to extraordinary precision.
Manik had his own version of this knowledge. "The hilsa tastes the water," he told Arjun. "It's tasting its way home."
The Catch
On the third morning, the hilsa arrived. Arjun felt it before he saw it — a subtle change in the way the boat moved, as if the river had become alive beneath them. Then the nets came up silver. Fish after fish, flashing in the dawn light, each one a perfect hydrodynamic missile built for the sole purpose of swimming five hundred kilometres against the current.
Arjun held a hilsa in his hands. He felt its streamlined body, the backward-pointing scales, the powerful forked tail. He felt the muscle — dense, oily, built for endurance. And he felt something else: a strange respect for an animal that would fight the full force of one of the world's great rivers with nothing but the shape of its body and the chemistry of its nose.
That evening, his mother cooked the first hilsa of the season — shorshe ilish, steamed with mustard paste and green chillies in a banana leaf. The whole village smelled of it. The monsoon rain hammered the tin roof. And Arjun, eating the fish that had swum five hundred kilometres to reach his plate, thought about currents, and tides, and the shape of things that move through water.
The end.
Choose your level. Everyone starts with the story — the code gets deeper as you go.
Here is a taste of what Level 1 looks like for this lesson:
import numpy as np
import matplotlib.pyplot as plt
# Your first data analysis with Python
data = [45, 52, 38, 67, 41, 55, 48] # measurements
mean = np.mean(data)
plt.bar(range(len(data)), data)
plt.axhline(mean, color='red', linestyle='--', label=f'Mean: {mean:.1f}')
plt.xlabel("Sample")
plt.ylabel("Value")
plt.title("Fluid Dynamics & Biological Navigation — Sample Data")
plt.legend()
plt.show()This is just the first of 6 coding exercises in Level 1. By Level 4, you will build: Build a Fish Migration Simulator.
Free
Level 0: Listener
Stories, science concepts, diagrams, quizzes. No coding.
You are here
Level 0 is always free. Coding levels (1-4) are part of our 12-Month Curriculum.
The physics of how a fish swims five hundred kilometres upstream — drag, thrust, streamlining, tidal transport, and olfactory navigation through one of the world's great river systems.
The big idea: "The Hilsa That Swam Upstream" teaches us about Fluid Dynamics & Biological Navigation — and you don't need to write a single line of code to understand it.
Stick your hand out of the window of a moving car with your palm facing forward. You feel a strong push against your hand — that's drag. Now turn your hand sideways, edge-on to the wind. The force drops dramatically. You haven't changed the wind speed or the size of your hand. You've changed the shape that the air sees, and that makes all the difference.
Drag is the force that resists the movement of any object through a fluid (a gas or a liquid). It comes from two sources. Pressure drag is caused by the high-pressure zone that builds up in front of the object and the low-pressure zone that forms behind it — the pressure difference pushes the object backward. Skin friction drag is caused by the fluid rubbing against the object's surface, like running your hand across sandpaper. Both sources of drag increase as the object moves faster.
The drag equation — Fd = 0.5 rho v^2 Cd A — tells us that drag force depends on four things: the fluid's density (rho), the velocity squared (v^2), the drag coefficient (Cd, which depends on shape), and the frontal area (A). The crucial term is v-squared: doubling your speed quadruples the drag. Tripling your speed increases drag nine times. This is why it takes far more energy to swim fast than to swim slowly — and why the hilsa's streamlined shape, which reduces Cd, is so critical.
For a hilsa swimming upstream, the effective velocity is the fish's swimming speed plus the river current speed (since the water is flowing against the fish). In a monsoon current of 3 m/s, a fish swimming at 2 m/s relative to the water is stationary relative to the ground — it's on a treadmill. To make upstream progress, it must swim faster than the current, and every extra metre per second of speed costs dramatically more energy because of the v-squared relationship.
Key idea: Drag force resists movement through fluids and comes from pressure differences (pressure drag) and surface friction (skin friction drag). Force increases with the square of velocity — doubling speed quadruples drag — making streamlined shapes and energy-saving strategies critical for fish migrating upstream.
Drop a ball and a teardrop-shaped object into a tank of water and let them sink. The ball sinks slowly, swaying side to side. The teardrop slices straight down, faster, with barely a ripple. Both objects have the same weight and roughly the same frontal area. The difference is entirely in their drag coefficient — a dimensionless number that captures how much a shape resists fluid flow.
A sphere has a drag coefficient of about 0.47. A flat plate facing the flow has a Cd of about 1.2. But a streamlined teardrop (fusiform) shape has a Cd of roughly 0.04 to 0.1 — five to twelve times lower than a sphere. The reason lies in how water flows around the shape. A blunt object forces water to separate from its surface, creating a turbulent low-pressure wake behind it. This wake is the main source of pressure drag. A streamlined shape tapers gradually at the rear, allowing the water to close back together smoothly without separation, virtually eliminating the wake.
The hilsa's body is a near-perfect fusiform shape. Its snout is smoothly rounded (pushing water aside without creating a high-pressure wall), its widest point is about one-third of the way back from the head (allowing the water to begin its gradual convergence early), and its body tapers to a narrow peduncle (the "wrist" just before the tail). Every surface curves smoothly into the next. There are no flat faces, no sharp edges, no protrusions to create turbulence.
Even the scales contribute. Each scale overlaps the one behind it, pointing backward like roof tiles. A thin layer of mucus coats the surface. Together, the overlap pattern and mucus create a surface that water slides across with minimal skin friction. Running your hand from head to tail feels smooth; from tail to head, the scales catch. The entire fish is engineered — by evolution — to move in one direction through water with the least possible resistance.
Key idea: A streamlined (fusiform) shape has a drag coefficient 5-12 times lower than a sphere because its gradual taper prevents the turbulent wake that causes most pressure drag. The hilsa's teardrop body, overlapping scales, and mucus coating together minimise both pressure drag and skin friction.
Access all 130+ lessons, quizzes, interactive tools, and offline activities
Imagine you're walking on a moving walkway at an airport — the kind that carries you forward while you walk. If you walk with the belt, you move fast ...
Close your eyes and walk into your kitchen. Even without seeing, you could probably identify the room by smell alone — the faint residue of cooking sp...