The River Dolphin's Secret
Sonar Sensors & Arduino

The River Dolphin's Secret

A blind dolphin teaches a boy that seeing isn't the only way to understand the world.

Sonar Sensors & Arduino12-Month Curriculum 12h

The Story

The Blind Swimmer

The Gangetic river dolphin is one of the strangest creatures in the Brahmaputra. It is almost completely blind — its eyes can only tell light from dark. It finds its way through the murky river using sound, sending out clicks and listening to the echoes. It has survived for millions of years without ever truly seeing the river it calls home.

A boy named Nabajit knew all of this because his father was a river guide in Guwahati. But knowing facts and understanding them are different things.

The Foggy Day

One winter morning, Nabajit and his father took their boat out on the Brahmaputra. The fog was so thick that Nabajit couldn't see his own hand in front of his face. His father turned off the motor and let the boat drift.

"I can't see anything," said Nabajit. "How will we get back?"

"Listen," said his father.

Nabajit listened. At first, all he heard was silence. Then, slowly, sounds emerged. The lap of water against the hull. The distant honk of a ferry. The splash of a fish. The soft, rhythmic pfffsshh of a river dolphin surfacing to breathe.

"There," said his father, pointing toward the sound. "Follow the dolphin. She knows where the deep channel is."

Following Sound

They drifted through the fog, following the dolphin's breathing. Pfffsshh. Left. Pfffsshh. Straight ahead. Pfffsshh. Slight right. The dolphin was navigating perfectly through water she had never seen, using nothing but echoes.

Nabajit closed his eyes and tried to build a picture of the river using only his ears. He could hear the water moving faster where the channel narrowed. He could hear waves lapping against the bank — which told him where the shore was. He could hear the ferry getting closer, which meant they were near the ghat.

"I can almost see it," said Nabajit, eyes still closed. "The river. The shore. The ferry. It's all there, in the sounds."

The Dolphin's Secret

When the fog lifted, Nabajit saw that the dolphin had led them to a sandbar covered with resting birds — bar-headed geese, cormorants, river terns. It was the most beautiful spot on the river, and Nabajit had never seen it before.

"The dolphin comes here every morning," said his father. "She can't see the birds, but she can hear their heartbeats. She likes the company."

Nabajit watched the dolphin surface one more time — her long, narrow snout breaking the water, her tiny eyes seeing nothing but grey light — and he understood something he hadn't before.

Seeing is just one way of knowing the world. The dolphin knew the river better than any human — every current, every sandbar, every deep pool — and she had never seen any of it. She had listened her way to understanding.

The New Habit

From that day on, every time Nabajit went on the river, he spent five minutes with his eyes closed, just listening. And every time, he heard something new — a sound he had been too busy looking to notice.

The river dolphin had taught him her secret: the world speaks to those who close their eyes and open their ears.

The end.

Try It Yourself

Choose your level. Everyone starts with the story — the code gets deeper as you go.

Story Progress

0%

Ready to Start Coding?

Here is a taste of what Level 1 looks like for this lesson:

Level 1: Explorer — Python
import numpy as np
import matplotlib.pyplot as plt

# Simulate a sonar sweep (angle vs distance)
angles = np.arange(0, 181, 10)  # 0 to 180 degrees
distances = [120, 95, 85, 45, 60, 200, 180, 150,
             28, 35, 90, 110, 130, 85, 70, 95, 105, 88, 120]

# Convert polar to Cartesian (x, y)
rads = np.radians(angles)
x = distances * np.cos(rads)
y = distances * np.sin(rads)

plt.figure(figsize=(10, 6))
plt.scatter(x, y, c=distances, cmap="cool", s=60)
plt.colorbar(label="Distance (cm)")
plt.title("Sonar Sweep: Room Map from Sound")
plt.xlabel("x (cm)")
plt.ylabel("y (cm)")
plt.axis("equal")
plt.grid(True, alpha=0.3)
plt.show()  # What shape is the room?

This is just the first of 6 coding exercises in Level 1. By Level 4, you will build: Build a Sonar Range Finder.

By Level 4, enrolled students build: Build a Sonar Range Finder

Free

Level 0: Listener

Stories, science concepts, diagrams, quizzes. No coding.

You are here

Enrolled

Levels 1-4

Python, NumPy, Matplotlib, real projects, mentorship.

Sign Up Free

Stay Updated

Join Waitlist

Get notified when enrollment opens for your area.

Notify Me

Level 0 is always free. Coding levels (1-4) are part of our 12-Month Curriculum.