The Boy Who Befriended a Clouded Leopard
Animal Conservation & Tracking

The Boy Who Befriended a Clouded Leopard

A friendship that teaches the hardest lesson — letting go.

Animal Conservation & Tracking12-Month Curriculum 12h

The Story

The Cry in the Forest

Akum heard the sound while collecting firewood in the forest above his village in Nagaland. It was a small, high sound — like a kitten mewing, but wilder, more desperate.

He followed the sound through ferns and fallen logs until he found it: a clouded leopard cub, no bigger than a house cat, caught in a tangle of creeper vine. One paw was twisted, and the cub's cloud-shaped spots were matted with mud and blood.

"Don't bite me," Akum whispered, and carefully untangled the vines.

The cub looked at him with golden eyes — frightened but too weak to run. Akum wrapped it in his shawl and carried it home.

The Healing

Akum's grandfather, a retired hunter who now spent his days carving wood, looked at the cub and shook his head.

"Clouded leopards are wild, Akum. You can't keep it."

"I won't keep it," said Akum. "I'll just fix it."

He splinted the twisted paw with bamboo sticks and strips of cloth. He fed the cub warm milk mixed with rice water. He made a nest of old blankets behind the woodpile and checked on it every hour.

The cub healed slowly. After a week, it could stand. After two weeks, it could walk. After three weeks, it could climb — and it climbed everything. The woodpile. The fence. The roof of the chicken coop. The chickens were not pleased.

Akum named the cub Meghla — cloud — because of the dark cloud-shapes on her fur.

The Friendship

For two months, Akum and Meghla were inseparable. Meghla slept on Akum's bed. She followed him to the edge of the village (but never into it — she was still wild enough to fear crowds). She played with Akum's feet when he did homework. She purred — a deep, rumbling purr — when he scratched behind her ears.

But as Meghla grew, things changed. She stopped eating rice and milk and started catching mice on her own. She disappeared for hours into the forest and came back with feathers on her whiskers. Her claws, once small and retractable, were now long and hooked and left scratches on the bamboo floor.

"She's becoming what she is," said his grandfather. "And what she is, is not a pet."

The Letting Go

One evening, Akum carried Meghla to the edge of the forest — the deep part, where the trees were tall and the undergrowth was thick and the sounds of the village couldn't reach.

He set her down on a mossy log. Meghla looked at him. Akum looked at her. His throat hurt in the way it hurts when you're trying very hard not to cry.

"Go on," he said. "This is where you belong."

Meghla didn't move. She tilted her head, the way she always did when she was confused.

"Go," said Akum, louder this time. He turned around and walked away. He didn't look back, because he knew that if he did, he would pick her up and take her home.

He heard a rustle behind him — the sound of a clouded leopard disappearing into the canopy, moving through the trees the way clouds move through the sky. Silent. Beautiful. Free.

The Return

Akum cried that night. And the next night. And the one after that.

But a week later, while collecting firewood in the same part of the forest, he found something on the mossy log where he had said goodbye: a freshly caught pheasant, still warm, placed neatly on the moss.

He looked up into the canopy. Two golden eyes blinked at him from a high branch — then vanished into the leaves.

Meghla was wild now. But she hadn't forgotten.

And every now and then, on the mossy log at the edge of the forest, Akum would find a gift — a bird, a fish, a bundle of feathers — left by a friend who couldn't stay but never truly left.

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
# Simulate GPS trilateration in 2D
import numpy as np

# Three "satellites" at known positions
sat_A = np.array([0.0, 0.0])
sat_B = np.array([10.0, 0.0])
sat_C = np.array([5.0, 8.66])

# True animal position (unknown to us)
true_pos = np.array([4.0, 3.0])

# Measured distances (with small noise)
d_A = np.linalg.norm(true_pos - sat_A) + np.random.normal(0, 0.1)
d_B = np.linalg.norm(true_pos - sat_B) + np.random.normal(0, 0.1)
d_C = np.linalg.norm(true_pos - sat_C) + np.random.normal(0, 0.1)

# Solve with least squares (linearised)
# From d_A^2 = x^2 + y^2 and d_B^2 = (x-10)^2 + y^2:
# d_A^2 - d_B^2 = 20x - 100  =>  x = (d_A**2 - d_B**2 + 100) / 20
x_est = (d_A**2 - d_B**2 + 100) / 20
y_est = (d_A**2 - d_C**2 + 25 + 75.0) / (2 * 8.66)
# • What does this code calculate?
# • Why does the noise cause a small error?

This is just the first of 6 coding exercises in Level 1. By Level 4, you will build: Map Wildlife Movement from GPS Tracking Data.

By Level 4, enrolled students build: Map Wildlife Movement from GPS Tracking Data

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.