//<<set $assets to "">>
<<set $assets to "./">>
<<set $width to window.innerWidth*0.5>>
<<set $height to window.innerHeight*0.8>>
//<<cacheaudio "audioId" "D:/Art_projects/Jaaga_AI_futures_fellow/magnum/game_assets_final/aud_malhaar.mp4">>
<<cacheaudio "audioId" "./aud_malhaar.mp4">>
Rain arrives in torrents, flooding streets and memories alike.
<img @src="$assets + 'title.png' " >
Once, you three dreamed of rain together—chasing monsoons, mapping storm drains, coding the clouds. Rain is no longer just water. It’s ambition. It’s memory. It’s love.
This story shifts, like the sky before a downpour. Who are you in this tale of clouds and choices?
* [[You are Megha, who walks the slow road, tracing veins of forgotten lakes and listening for the old songs of water.->IntroMegha]]
* [[You are Varsha, who left the city to learn from other skies, returning now to find that what you thought you knew has changed.->IntroVarsha]]
* [[You are Indra, who dreamed of controlling the rain, now holding the city’s pulse in the code of clouds.->IntroIndra]]
<<set $POV to "Megha">>
<<set $cityFeeling to "wary">>
<video autoplay @src="$assets + 'vid_megha_inpark.mp4' " loop="true"></video>
<<audio "audioId" "play">>
You stroll through Lalbagh, where the air hums with the scent of wet earth and blossoming flowers, and the last few birds of the city weave their melancholy songs through the trees. The rain has just washed the world clean and made it tender again.
The com-patch on your arm buzzes, breaking the reverie. A news alert sounds in your brain: "SomaTech Cracks Rain Control—Indra Kumar's Startup Revolutionizes Monsoon." You pause, shaking your head, a whisper escaping your lips: “Wow, he actually did it." Then, quieter, as if the question could slip past unheard: “Was this it? Did I choose wrong?”
[[Sit down->CityTourMegha]]
<<set $POV to "Varsha">>
<<set $cityFeeling to "conflicted">>
<video autoplay @src="$assets + 'vid_intro_varsha.mp4' " loop="true"></video>
<<audio "audioId" "play">>
As the plane touches down, you stare out at the sprawling, rain-soaked city. You take a deep breath—back to Bangalore, back to Indra, and back to the dreams you once shared.
You had left amidst a lot of chaos and confusion, not sure of what your own heartw anted. Why were human brains wired this way?
Somehow, coming back doesn't feel like starting over but rather starting afresh.
[[Go to meet Indra->CityTourVarsha]]<<set $POV to "Indra">>
<<set $cityFeeling to "proud">>
<video autoplay @src="$assets + 'vid_intro_indra.mp4' " loop="true"></video>
<<audio "audioId" "play">>
You can't get that moment out of your head, as you stood on stage, eyes gleaming as the crowd erupted into applause. "We did it!" you announced. "Predictable, controlled rain—Bangalore will never thirst or overflow again."
Nobody had judged you as much as you had yourself. You never wanted to live in your father's shadows. You always over-worked and over-excelled but still came out short next to his achievements. Finally this was something all your own. He might have given some of the money but the brains, the work he couldn't claim any credit for it.
[[Walk through the city->CityTourIndra]]<<set $POV to "Megha">>
<<set $cityFeeling to "wary">>
<img @src="$assets + 'megha_inpark2.jpg' " @width=$width @height=$height>
You're wearing your favourite overalls, this time tailored into a skirt, reclaiming the joy in your body. The bench is made up of the plastic waste which couldn't decompose even after all these years.
You can't help but think about the news alert. Indra had actually done it? What would happen next? Did Varsha know?
You are distracted by a song coming from the trees, the city's way of carrying belonging across generations.
* [[Listen closely->ReflectionMegha]]
* Get up and keep walking. [[Flashback to IISc->IIScIntro]]<<set $POV to "Varsha">>
<<set $cityFeeling to "conflicted">>
<video autoplay @src="$assets + 'vid_intro_varsha.mp4' " loop="true"></video>
You walk through Church Street, where flowering vines crawl over repurposed buildings. Rain-catchment systems line the rooftops, feeding vertical gardens. After all these years, the beautiful physical books have still survived. A drone hums overhead, spraying mist to keep the temperature down. The city feels cleaner, greener—different from the mess you left behind.
You stand near a chai stall, the rain drumming on the tin roof. For all his fuss about punctuality, Indra himself is rarely on time.
* [[Soak in the city->ReflectionVarsha]]
* You're tired, walk back home. [[Think about college days->IIScIntro]]'''You walk past a hoarding: “Rain you can schedule—download SomaTech.”''' After all these years, some forms of advertisement have continued, at least in some parts of the city that can't afford to go ad-free.
You make some notes of things that need to be chnaged before the next campaign.
You almost can't believe how well things were going. Your startup is finally getting the acknowledgement you have worked so hard for, and Varsha is back! To join you, in SomaTech, as well as in your life!
<video autoplay @src="$assets + 'vid_intro_indra.mp4' " loop="true"></video>
* This is what I always dreamed of. [[Admire the innovation->ReflectionIndra]]
* Keep walking. [[Think back to where it all started->IIScIntro]]
It is the voice of an old woman humming a folk song —something about rain that won’t arrive when you call it.
<img @src="$assets + 'megha_inpark2.jpg' " @width=$width @height=$height>
'''Try to complete the song:'''
<<button "The rain arrives when the flowers are shy.">>
<<replace "#response">>
The old woman frowns. "That’s not how it goes. Try again."
<</replace>>
<</button>>
<<button "The river flows, but the sky is quiet.">>
<<replace "#response">>
The old woman shakes her head. "No, that’s not it."
<</replace>>
<</button>>
<<button "A cloud gathers, but the earth stays dry.">>
<<set $songComplete to true>>
<<replace "#response">>
The old woman smiles, her voice merging with yours. "You remember," she says. You feel an ache of belonging. Your mind goes to the time you first heard the song, in a lab of all places.
[[Recollect the memory->IIScIntro]]
<</replace>>
<</button>>
<<button "The sky cries, but the soil remains shy.">>
<<replace "#response">>
"Not quite right," the woman says, looking wistfully at the sky.
<</replace>>
<</button>>
<div id="response"></div>
You remember the day you stood tablet in hand, analyzing the rainfall data. Everything had been going wrong, nothing was working and you were due at the pitch in 6 hours.You took a deep breath.
Something about the correlation felt off.
<video autoplay @src="$assets + 'vid_intro_indra.mp4' " loop="true"></video>
'''Which data correlation makes sense?'''
<<button "Crop yield vs. humidity ratio">>
<<replace "#dataResponse">>
You frown. "That doesn’t correlate with the issue."
<</replace>>
<</button>>
<<button "Satellite feedback vs. data precision">>
<<replace "#dataResponse">>
"No, that’s not it." you shake your head.
<</replace>>
<</button>>
<<button "Rain frequency vs. social media activity">>
<<replace "#dataResponse">>
You scoff—irrelevant.
<</replace>>
<</button>>
<<button "Rainfall density vs. public sentiment">>
<<set $dataComplete to true>>
<<replace "#dataResponse">>
You smirk—of course, it’s about sentiment. People want more than consistency—they want to feel connected. His mind whizzes to a memory of days when data analysis was just a dream.
[[Think about college days->IIScIntro]]
<</replace>>
<</button>>
<div id="dataResponse"></div>
<img @src="$assets + 'news_water.png'" @width=$width @height=$height>
Back then, everyone talked about 2050. Newspapers, lectures, even casual conversations at the chai stall. The prediction was stark: Bangalore would run dry, the city of lakes left with cracked earth and empty tanks.
When Megha, Varsha, and Indra met during orientation, despite all their differences, they became inseparable.
They were obsessed with rain. Indian monssons had been almost fetishized by the western gaze as a classic example of the Indian childhood experience and still somehow, here they were, where it could become a thing of the past. You had to do something.
They spent countless days in the classrooms and outside, drinking cheap coffee, surrounded by data sheets and microphones. They were idealists, chasing the possibility of a future where Bangalore would survive.
[[Next->IIScIntro2]]
You think back to those days at IISc, wondering about the choices that led you here.
<<if $POV is "Megha">>
* [[Varsha: Choosing to leave for the US->VarshaLeaving]]
* [[Indra: Preparing for the startup pitch->StartupPitch]]
<<endif>>
<<if $POV is "Varsha">>
* [[Megha: Finding joy in community work->Mapwalk]]
* [[Indra: Preparing for the startup pitch->StartupPitch]]
<<endif>>
<<if $POV is "Indra">>
* [[Megha: Finding joy in community work->Mapwalk]]
* [[Varsha: Choosing to leave for the US->VarshaLeaving]]
<<endif>><img @src="$assets + 'varsha_eairport.jpg'" @width=$width @height=$height>
At the airport, Varsha hesitated, suitcase in hand, unsure whether to stay or leave. Megha and Indra watched, heart aching, as Varsha finally boarded, swallowed by ambition and uncertainty.
[[Continue->VillageNoRain]]<img @src="$assets + 'indra_pitch.jpg'" @width=$width @height=$height>
"They'll think it’s just my dad’s money," Indra muttered. You squeezed his hand, whispering, "Show them it’s your vision. They'll see."
[[Continue->VillageNoRain]]<img @src="$assets + 'megha_storm.jpg'" @width=$width @height=$height>
Megha knelt by the roadside, tracing rain patterns in the mud, smiling as children mapped storm drains with chalk. "The city breathes through these veins," she said, eyes bright with purpose.
[[Continue->VillageNoRain]]
<<if $POV is "Megha">>
<img @src="$assets + 'megha_farm.jpg'" @width=$width @height=$height>
You stand at the edge of Thippagondanahalli, the lake shimmering like silver under the weak winter sun. It's Sankranti, and the air should be thick with celebration. Instead, it's tense—dry fields, cracked soil, and the tight faces of villagers waiting for promised rain.
Your heart hurts. Varsha was back in the city. And with Indra, in work and in life. You hadn't wanted to get out of bed today at all. And yet..
* [[Investigate the failure->InvestigateRain]]
<</if>>
<<if $POV is "Varsha">>
<img @src="$assets + 'news_rain.png'" @width=$width @height=$height>
You notice a small op-ed in the corner:
* "Villages outside the city report failed rains despite forecasts. Thippagondanahalli in particular faces dry fields during the festival."
Your phone buzzes—a message from Indra:
* Indra: "Big success today! SomaSky’s precision rainfall is trending."
You hesitate, unsure whether to dampen his moment. But something doesn’t feel right.
* [[Call Indra->Call Indra]]
<</if>>
<<if $POV is "Indra">>
<img @src="$assets + 'news_rain.png'" @width=$width @height=$height>
The article about your success is still trending—SomaTech’s precision rainfall during Sankranti, keeping the city’s spirits high. The feedback has been overwhelmingly positive, the media celebrating the achievement, but there's only one person you want to call.
* [[Call Varsha->Call Indra]]
<</if>>
You arrive at the community center in Thippagondanahalli. The room is crowded—worried faces, hands gesturing towards the sky.
* You say: "I’ll look into it. Stay calm. We’ll figure this out."
You sit at the center’s console, tapping into the regional rainfall system. The prediction map shows heavy rain at this exact location. Yet, the actual data shows nothing.
* "If the rain didn’t come here, where did it go?"
[[Check the data logs->RainfallMinigame]]
<video autoplay @src="$assets + 'vid_confrontation.mp4' " loop="true"></video>
Megha storms into the SomaTech office, her eyes blazing. "Rain isn’t a product to be sold, Varsha. People needed it."
Varsha bit her lip, defensive. "It’s not that simple—we’re bringing consistency, planning!"
Megha shook her head. "At whose cost? You can’t just erase community for control."
Varsha looked away, guilt creeping in. "That is not what SomaTech is about!"
<<if $POV is "Varsha">>
* [[You hesitate and reflect->VarshaTurn]]
* [[You defend the system->SystemDefense]]
<<endif>>
<<if $POV is "Megha">>
* [[Start working on fixing things->RebuildAlgorithm1]]
<<endif>><img @src="$assets + 'varsha_digin.jpg'" @width=$width @height=$height>
You frown at the screen, dismissing Megha’s accusations as misplaced anger.
But as lines of code unravel, a pattern emerges—rerouting rain based on profit.
Your heart sinks. "Megha was right... I need to fix this."
[[Go talk to Megha->RebuildAlgorithm1]]<img @src="$assets + 'varsha_digin.jpg'" @width=$width @height=$height>
You frown at the screen, dismissing Megha’s accusations as misplaced anger. Yes, the algorithm was changing things but it wasn't manual or based on any evil intentions.
But as lines of code unravel, a pattern emerges—Indra was rerouting rain based on profit.
Your heart sinks. "Megha was right... I need to fix this."
[Go talk to Megha->RebuildAlgorithm1]]<<if $first==1>>
<<set $equity to 50>>
<<set $predictability to 50>>
<<set $yield to 50>>
<<set $harmony to 0>>
<</if>>
<<set $first to 0>>
<img @src="$assets + 'rebuild.jpg'" @width=$width @height=$height>
'''Megha and Varsha stare at the code, trying to make sense of the variables. The algorithm looks straightforward at first, but balancing it feels like solving a riddle.'''
<div id="status">Current Harmony: $harmony</div>
<div>Equity: $equity | Predictability: $predictability | Economic Yield: $yield</div>
<<if $harmony >= 70>>
[[Success: Algorithm Rebuilt->SuccessScene]]
<<else>>
"The system flags the configuration as unbalanced. Harmony is too low."
* [[Try Again->RebuildAlgorithm]]
<</if>>
<<if $harmony < 70>>
**Adjust the parameters:**
* [[Increase Equity|RebuildAlgorithm][$equity += 10; $harmony = (0.4 * $equity) + (0.3 * $predictability) + (0.3 * $yield)]]
* [[Increase Predictability|RebuildAlgorithm][$predictability += 10; $harmony = (0.4 * $equity) + (0.3 * $predictability) + (0.3 * $yield)]]
* [[Increase Economic Yield|RebuildAlgorithm][$yield += 10; $harmony = (0.4 * $equity) + (0.3 * $predictability) + (0.3 * $yield)]]
* [[Reset Values|RebuildAlgorithm][$equity = 50; $predictability = 50; $yield = 50; $harmony = 0]]
<</if>>
<<if $POV is "Indra">>
<img @src="$assets + 'indra_office.jpg'" @width=$width @height=$height>
A notification pops up on his screen. He squints at the message. “Algorithm modified. Rainflow Redistribution Protocol: Updated.”
Indra is pacing in his office, phone buzzing relentlessly on the desk. Investors, media, his father—everyone wants an explanation. He pushes his hands through his hair, heart pounding, as he tries to piece together how things went so wrong.
How could someone so dear to him betray him like this. What then does progress even mean?
[[Who defines progress?->UtopiaChoice]]
<<endif>>
<<if $POV is "Varsha">>
<img @src="$assets + 'megha_varsha.jpg'" @width=$width @height=$height>
Varsha can't make sense of the conversation that happened with Indra. Is her life as she knew it over?
Indra had stormed out, slamming the door behind him.
A silence lingers between Megha and Varsha, tension unraveling slowly.
Megha finally sighs. “He won’t give up that easily.”
Varsha looks down at her hands, still trembling. “Neither will we.”
[[Utopia arrives. Or does it?->HollowUtopia]]
<<endif>>
<<if $POV is "Megha">>
<img @src="$assets + 'megha_varsha.jpg'" @width=$width @height=$height>
Megha is furious with the conversation that happened with Indra. How dare he!
Indra had stormed out, slamming the door behind him.
A silence lingers between Megha and Varsha, tension unraveling slowly.
Megha finally sighs. “He won’t give up that easily.”
Varsha looks down at her hands, still trembling. “Neither will we.”
[[Utopia arrives...->HollowUtopia]]
<<endif>>Or does it?
'''Rain is fair. Timely. But something’s missing.'''
<img @src="$assets + 'hollow.jpg'" @width=$width @height=$height>
* Farmer: “The skies don’t know our songs.”
* Child: “I miss the surprise.”
* Poet: “Rain lost its rhythm.”
[[Attend a protest concert->ConcertScene]]<img @src="$assets + 'concert.jpg'" @width=$width @height=$height>
Megha and Varsha are at a concert, listening to one of their favourites, Raag Malhaar, known to have brought rains from the skies, when it finally clicked. Rain should respond to longing, there should be unccertainty and dynamism. They start updating the algorithm again.
[[Respond to Longing->FinalScene]]<video autoplay @src="$assets + 'vid_kiss.mp4' " loop="true"></video>
And as they respond to the longing of rains, they finally give in to the longing of their own bodies. Rain, ragas, and revolution. Megha and Varsha kiss—wet, wide awake.
Utopia was never a destination, but a journey. One had to keep responding to people's needs, hopes and desires. Philosophers have been at these debates for centuries now - what is the etical thing to do? It is unlikely that we will solve it in the next decade. But we owe it, to each other, to at least try.
[[What is your definition of Utopia?->UtopiaChoice]]* Utopia is [[Control->Ending1]]
* Utopia is [[Justice->Ending2]]
* Utopia is [[Love->Ending3]]
* Utopia is [[Rhythm->Ending4]]<img @src="$assets + 'control.png'" @width=$width @height=$height>
'''And so the rain was programmed. Predictable.. Safe.'''
[[Return to the beginning->Start]]
This game was created as part of the AI Futures Fellowship in collaboration with Jaaga, Gooey.AI, and MEWS.<img @src="$assets + 'justice.png'" @width=$width @height=$height>
'''Rain fell where needed. Equity reigned. Yet stories thinned like mist.'''
[[Return to the beginning->Start]]
This game was created as part of the AI Futures Fellowship in collaboration with Jaaga, Gooey.AI, and MEWS.<img @src="$assets + 'love.png'" @width=$width @height=$height>
'''In every drop, the memory of a kiss. A soft, shared future bloomed.'''
[[Return to the beginning->Start]]
This game was created as part of the AI Futures Fellowship in collaboration with Jaaga, Gooey.AI, and MEWS.<img @src="$assets + 'rhythm.png'" @width=$width @height=$height>
'''The sky sang back. Utopia wasn’t a blueprint. It was a rhythm. And you listened.'''
[[Return to the beginning->Start]]
This game was created as part of the AI Futures Fellowship in collaboration with Jaaga, Gooey.AI, and MEWS.
Varsha’s voice wavered. "Hi sweetheart, did you read the news coverage?"
"Yes! isn'tit fantastic? We've finally done it!"
"Did you see about the villages that missed the rain?"
Indra clenched his jaw, eyes narrowing. "We’re building progress, Varsha—not pandering to sentiment. If we want to control rain, we have to optimise and distribute. We haven't done anything on purpose, it is all the algorithm, which mind you, is approved by BBMP."
<<if $POV is "Varsha">>
Varhsa whispered, "But who are we to decide who gets rain and who doesn't?"
<</if>>
* [[Take a deep breath->IndraVarshaWork]]
<img @src="$assets + 'indra_varsha.jpg'" @width=$width @height=$height>
<<if $POV is "Varsha">>
The phone call ends, but the thoughts linger. You lean against the balcony railing, watching the controlled rain pattern wash over the city.
[[Continue->Confrontation]]
<<endif>>
<<if $POV is "Indra">>
After the call, you slump into the office chair, staring at the rain-scheduling console.
You scroll through the news feed. Photos of Bangalore’s glittering skyline under the controlled downpour. You made that happen. So why does it feel like the city’s celebrating without you?
[[Continue->LeakAndRevolt]]
<<endif>>
You hum Raag Malhaar under your breath, trying to recall the correct sequence.
<video autoplay @src="$assets + 'vid_intro_varsha.mp4' " loop="true"></video>
'''Which sequence is correct?'''
<<button "Ni Sa Re Ga">>
<<replace "#raagResponse">>
The melody feels disjointed. "That’s not quite right," you mutters.
<</replace>>
<</button>>
<<button "Sa Re Ga Ma Pa Dha Ni">>
<<set $raagComplete to true>>
<<replace "#raagResponse">>
The melody fills your mind—clear, haunting, like that day in the lab. You feel a surge of nostalgia.
[[Let your mind wander->IIScIntro]]
<</replace>>
<</button>>
<<button "Pa Dha Ni Sa">>
<<replace "#raagResponse">>
You frown—something’s off. "That’s not how it sounded."
<</replace>>
<</button>>
<<button "Ma Pa Dha Ni Sa Re Ga">>
<<replace "#raagResponse">>
You sigh—this doesn’t feel right either.
<</replace>>
<</button>>
<div id="raagResponse"></div>
You access the city’s rainfall logs. Data flashes on the screen, sorted by region. Something feels off. You need to find which area got the rain instead of Thippagondanahalli.
* "Let’s compare the predicted and actual data..."
* [[Koramangala Tech Park (10 km away) - Light Rainfall->TechPark]]
* [[Luxury Housing District (20 km away) - Heavy Rainfall->LuxuryDistrict]]
* [[Rural Suburbs (15 km away) - No Rainfall->Suburbs]]
The luxury housing complex, "Skyline Towers," held an outdoor festival. The weather control logs show the clouds being manually redirected there!
"It wasn’t a mistake. Someone chose to prioritize a party over a village..."
Would SomaTech actually do this? Could Varsha, her Varsha, actuall do this?
[[Confront Varsha->Confrontation]]
The logs show a slight drizzle over the tech park. Automated system maintenance. Nothing out of the ordinary.
* Megha: "Not enough to explain the missing rain..."
[[Try another location->RainfallMinigame]]
No recorded rainfall in the suburbs. A dry week, as expected.
* Megha: "It definitely wasn’t here..."
[[Try another location->RainfallMinigame]]
<img @src="$assets + 'rebuild.jpg'" @width=$width @height=$height>
'''The code finally compiles successfully. Megha and Varsha glance at each other, exhausted but triumphant.'''
* Megha: "We did it... I think."
* Varsha: "Let’s run the simulation and see how the rain behaves."
* Megha: "I just hope it feels like... rain. Real rain."
[[Continue->LeakAndRevolt]]
<<set $first to 1>>
Megha's house is cozier than Varsha had imagined. Her friend graciously accepts her apology and they decide to work on fixing this together. After all, algorithms and code are just a for of human expression, thinking and behaving just like humans in control would.
<img @src="$assets + 'rebuild.jpg'" @width=$width @height=$height>
[[Let's fix this!->RebuildAlgorithm]]<video autoplay @src="$assets + 'vid_iisc.mp4' " loop="true"></video>
It wasn’t just rain that tied them together. Megha found herself drawn to Varsha’s effortless charm, the way she could talk about microclimates one moment and hum a folk song the next. Megha loved the way Varsha smiled when she thought no one was watching. Indra, too, noticed Varsha’s energy—how she’d leap from idea to idea, refusing to box herself in.
One night, while compiling rainfall data, Indra caught Megha staring at Varsha as she tuned a broken radio. A pang of something sharp twisted in his chest. He wasn’t sure if it was jealousy or admiration, or maybe both. He knew that both of them saw Varsha as the heart of their little group.
[[Next->IIScIntro3]]
<video autoplay @src="$assets + 'vid_iisc.mp4' " loop="true"></video>
Their discussions were chaotic but beautiful.
- Megha insisted that any rain prediction system must include community voices—data gathered by the people who needed rain the most.
- Indra believed it was all about precision—control the variables, and the city wouldn’t have to fear water scarcity.
- Varsha kept talking about harmony—how rain wasn’t just a resource but part of the city’s soul, inseparable from culture and music.
They couldn’t predict the future—whether the city would still have water by 2050, or whether they’d still be together. But in those moments, it felt like they were trying to hold back a flood with poetry and equations, hope and data.
[[Choose a memory->MemoryChoice]]