
Chiku.AI
Every evening, parents across India guess whether the air is safe for their children to play in. This is the story of building Chiku.AI, a sparrow that reads the hourly air and heat forecast and finds the safest time to play, and of every wall I hit along the way.
I wanted to build something that answers that question properly. Not with a number. With a time, a reason, and a plan a tired parent can follow. My vision for Chiku.AI is simple: no parent or teacher should have to guess whether the air is safe for a child to breathe.
Meet Chiku.AI
Chiku.AI is a little house sparrow who lives on an illustrated park scene. You tell Chiku where you are, who your child is, and what they want to do. Chiku reads the hour-by-hour air quality and heat forecast for your neighbourhood and tells you the safest window to play, with one of four verdicts: Go play, Go easy, Keep it short, or Stay indoors. The sky in the scene turns clear, hazy, smoggy or hot to match.
It works for parents on the web, for parents without a smartphone over a phone call, and for schools that need to plan PE and recess around a fixed timetable.
I built it for Environmental Hacks (Bharat Builds Tour) on the Air track. Here is how it came together, one feature at a time, and what each one cost me.
1. Starting with the data, and the first uncomfortable truth
The first thing I built was the boring part: a client for Open-Meteo that pulls hourly air quality (Copernicus CAMS) and weather for any location, and a module that converts raw pollutant concentrations into India's National AQI using the CPCB breakpoints.
The moment I plotted a single day, the whole problem became obvious. On the forecast I was testing with, Delhi went from Satisfactory in the morning to Poor by 5 PM, right when children head out to play. The single AQI number on a phone hides that swing completely. A parent who checks in the morning and a parent who checks in the evening are effectively looking at two different cities.
That chart is where Chiku.AI really began. The answer was never going to be "good day" or "bad day". It had to be "good hour".
2. Children are not small adults
My next mistake was thinking about air the way the AQI does: for an adult standing still.
A child running around a park breathes roughly twice as much air per kilo of body weight. So I built an exposure model using breathing rates by age and effort from the US EPA Exposure Factors Handbook. A six-year-old playing football and a fourteen-year-old walking to tuition are not breathing the same air, even in the same hour.
Then came heat. Indian afternoons don't just carry ozone, they carry heat stress, and those peak together. I added wet-bulb and WBGT calculations and flagged each hour against youth-sport heat lines, stricter for children under six. Every hour now had two independent flags, one for air and one for heat, and the worse flag always wins.
3. The planner that felt wrong
My first planner simply picked the cleanest hour. It worked, technically. But when I looked at its answers, something felt off. It would happily send a child out for an hour sandwiched between two pollution spikes, because that one hour looked clean on paper.
I didn't want a clever optimiser. I wanted something a worried parent could trust. So I rebuilt the core around an idea I call the lung budget:
The phone flow was humbling. Designing a conversation with no screen forces you to cut every unnecessary word. It also meant handling webhook signatures, call limits, and what to say kindly when calls aren't switched on yet. That last one came from a late commit: I'd rather show a friendly explanation than hide a button and leave someone confused.
7. Schools: the feature I had to throw away and rebuild
My first school planner was elegant. It took the outdoor periods from a timetable and moved them to cleaner hours, without double-booking anything.
Then reality hit me twice.
First, a bug: on a live run it happily moved a PE period into an hour that had already passed. Fixed quickly, but embarrassing.
Second, and much bigger: Indian school timetables are fixed. Periods don't move. The PE teacher has six classes, the ground is shared, the bell rings when it rings. A tool that says "move PE to 8 AM" is a tool no school will ever use.
So I threw away the core idea and rebuilt it around what schools can actually change:
- An activity ladder for each outdoor period. PE keeps its slot but steps down: full games, then light drills, then yoga in the hall, then stretching in class.
- PE swaps between two classes, suggested only when they leave both classes no worse off and one better, so the ground and teacher are used exactly as before.
- A government advisory switch (GRAP, heatwave orders) that moves everything indoors.
- A morning bulletin as a one-page PDF for the notice board, an email via Amazon SES, and a WhatsApp message in English or Hindi.
- An event day finder that ranks the next three days for a match or sports day.
Schools set up their classes once, including how many children have asthma, but never names. Privacy was non-negotiable.
Rebuilding a feature you've already finished, in the middle of a hackathon, hurts. But it went from clever to genuinely usable, and that trade was worth every minute.
8. The small battles nobody sees
Some of the most stubborn problems were tiny:
- Overlapping labels on the hourly timeline when several events fell close together. I ended up stacking them and drawing school hours as a bracket.
- On mobile, the answer was buried under the form. I flipped it so the verdict comes first, because that's the only thing a parent on a phone actually wants.
- Copy. I rewrote page titles and text more than once until they sounded like a person, not a product.
- Deployment. The API runs on AWS App Runner and the web app on AWS Amplify. Bedrock needed an IAM role I hadn't finished setting up when it was time to ship. Because I'd built the template fallback earlier, I could deploy without AI and lose nothing about safety. That decision from section 5 paid for itself.
What it means
On one Mumbai forecast, moving an hour of park play from 5 PM (flagged Stay indoors) to 7 AM cut a child's lung budget use from 46% to 24%. About half, for free, just by changing the time.
For a school with hundreds of children, choosing the right activity for each period on a bad-air day keeps real pollution out of real lungs. No purifiers, no new infrastructure. Just a better decision, made earlier.
What's next
- Blend live CPCB station readings into the model forecast.
- A gentle nudge the night before, so the plan is ready when the morning starts.
- Pilot with a couple of Delhi NCR schools during stubble-burning season, when it matters most.
Closing
I started this hackathon with a chart that showed a single day of Delhi air going from fine to harmful in a few hours, right at playtime. I ended it with a small sparrow who can look at that same chart and tell a parent, kindly and clearly, "go, but gently, 10 to 11 AM, and take the inhaler."
Along the way I learned that the hardest parts of building for children aren't the algorithms. They're the moments of restraint: not letting the maths overrule safety, not letting AI make the call, and not shipping a school feature that no school could use.
Children shouldn't have to give up playing outside. They just deserve a better answer to when.
Chiku.AI. The right time to play outside. बाहर खेलने का सही समय।
Chiku.AI gives guidance, not medical advice. Data: Open-Meteo (Copernicus CAMS), CPCB National AQI, WHO Global Air Quality Guidelines 2021, US EPA Exposure Factors Handbook 2011.
Enjoyed reading this content? Let the author know!
Your likes, comments, shares, and saves help creators reach more builders.
Loading recommendations
Loading article