
Fluid mechanics and river transport.
The Ferryman of Nimatighat
At the old ferry crossing of Nimatighat, where boats carried people across the mighty Brahmaputra to Majuli, there lived a ferryman named Gokul. He was old, his beard was white as river foam, and his wooden boat had carried ten thousand passengers over fifty years.
But Gokul had a rule. Before anyone stepped onto his boat, they had to answer a riddle. Easy riddles for adults. Harder riddles for scholars. And one riddle — the unanswerable one — that he asked only when the moon was full and the river was calm.
Nobody had ever answered the unanswerable one.
The Girl at the Ghat
One full-moon evening, a girl named Jonaki came to the ghat. She was twelve, thin as a bamboo stalk, with sharp eyes and a satchel full of schoolbooks. She needed to cross the river to visit her grandmother on Majuli.
"A riddle first," said Gokul, smiling beneath his white beard. He looked at the full moon reflected in the dark water and decided — tonight, the unanswerable one.
"Here it is, child: What crosses the river without a boat, has no feet but never stops walking, and is older than the Brahmaputra itself?"
Jonaki set down her satchel. She looked at the river. She looked at the moonlight shimmering on the water — a silver road stretching from one bank to the other. She looked at the old ferryman's eyes, which twinkled like stars reflected in still water.
The Answer Nobody Expected
Jonaki was quiet for a long time. The other passengers shifted impatiently. One man muttered that they should just pay double and skip the riddle. But Gokul held up his hand. "Let the girl think."
Jonaki watched a leaf drift past on the current. She watched the moonlight follow it, never leaving, never touching. And then she smiled.
"A story," she said. "A story crosses the river without a boat. It has no feet but it never stops travelling from person to person. And stories are older than any river, because before the Brahmaputra had a name, people were already telling tales about it."
The ghat went silent. Gokul stared at the girl. His wrinkled hands trembled on the oar. Then, slowly, a smile broke across his face — wide and warm as the river itself.
"In fifty years," he said, "no one has answered that riddle. Professors, priests, politicians — they all guessed water or time or wind. But you — you said a story." He shook his head in wonder. "And you are right."
The Crossing
Gokul rowed Jonaki across the Brahmaputra under the full moon. The water was still, the sky was wide, and neither of them spoke for a long while. When they reached Majuli, Gokul handed Jonaki a small wooden box.
"What is this?" she asked.
"My riddles," said the old ferryman. "All one hundred and eight of them, written on slips of paper. I've been waiting fifty years for someone clever enough to carry them forward. Now I can retire."
Jonaki took the box and held it to her chest. "I'll ask every passenger a riddle," she promised.
"Good," said Gokul. "Because a river without riddles is just water. And water without stories is just wet."
The New Ferryman
Jonaki never became a ferryman — she became a teacher. But every evening, she sat at the Majuli ghat and asked riddles to anyone who would listen. Children gathered around her like fireflies around a lamp. Travellers stopped to test their wits. And the unanswerable riddle? She kept it for full-moon nights, just as Gokul had done.
Among the people of Assam, they say that riddles are not puzzles to be solved but doors to be opened. Jonaki opened more doors than anyone in Majuli's memory. And if you ever take the ferry from Nimatighat on a full-moon night, listen carefully — you might still hear a riddle drifting across the 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:
# Ferry river crossing: vector addition
import numpy as np
river_width = 200 # metres
current = 3; ferry_speed = 5 # m/s
for angle in [0, 15, 37, 50, 90]:
rad = np.radians(angle)
vx = ferry_speed * np.cos(rad)
vy = ferry_speed * np.sin(rad) - current
t = river_width / vx if vx > 0 else float('inf')
drift = -vy * t
print(f"{angle:3d} deg: drift={drift:.0f}m, time={t:.0f}s")This is just the first of 6 coding exercises in Level 1. By Level 4, you will build: Solve the River Crossing Problem.
By Level 4, enrolled students build: Solve the River Crossing Problem
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.
Fluid mechanics and river transport.
The big idea: "The Ferryman's Riddle" teaches us about Fluid Mechanics — and you don't need to write a single line of code to understand it.
Pour honey slowly — smooth, parallel layers with no mixing: laminar flow. Turn a tap on full — chaotic churning: turbulent flow. Laminar is predictable; turbulent is not.
The Reynolds number Re = (density x velocity x size) / viscosity predicts which type. Re < 2,000: laminar. Re > 4,000: turbulent. Between is transitional.
The Brahmaputra at Nimatighat: Re ≈ 10 million — wildly turbulent. Current varies unpredictably. Ferrymen read ripple patterns and foam to navigate.
Key idea: Reynolds number predicts flow type: < 2,000 laminar, > 4,000 turbulent. The Brahmaputra’s Re ~10 million is extremely turbulent.
A ferry faces two velocities: engine (across) and current (downstream). The actual path is the vector sum — a diagonal.
Pointing straight across with 3 m/s current, 5 m/s ferry: crossing 200 m takes 40 s, drifting 120 m downstream. For zero drift, angle upstream by arcsin(3/5) = 37° (takes 50 s).
If current >= ferry speed, straight crossing is impossible. Real ferrymen also handle non-uniform current: slow near banks (friction), fast in center.
Key idea: Actual path = vector sum of engine + current. Straight crossing requires upstream angle = arcsin(current/ferry speed). Impossible if current >= ferry speed.
Access all 130+ lessons, quizzes, interactive tools, and offline activities
Bernoulli: **where fluid speeds up, pressure decreases**. Water through a narrow gap (bridge pillars) speeds up, pressure drops. This sucks boats towa...
Water flowing past an obstacle separates around it. Behind the obstacle: **low pressure**. Water rushes in from the sides, creating circular **eddies*...