Klimate Kundli is an interactive exhibit that generates a takeaway, personalised climate horoscope based on a visitor’s inputs of their birth year and the places they have lived.

Built for Data, Otherwise, VizChitra 2026's exhibition on climate & ecological change, which opened 3 July 2026 at Bangalore International Centre.

The public version lives at klimatekundli.com.

This article has been co-written by Nithya & Arko.


Role
Designer & Developer
Focus
Interaction Design, Data Engineering, Product Development
Team
Nithya & I
Timeline
May–July, 2026
Scrolling through a generated kundli.

This project seeks to reframe climate data away from abstraction and toward memory, place, and everyday life by inviting visitors to encounter and reflect on their data as personal and generational climate experiences.

A Klimate Kundli simulates the act of interpreting a birth chart by an astrologer through data visualisations of climate change that visitors have likely lived through and also suggests some remedies, inviting reflections on the gap between personal gestures and planetary-scale climate action.

The creators of Klimate Kundli—Nithya & Arko
The Klimate Kundli booth, featuring Nithya, Arko, and Dodo—the 30 y/o parrot astrologer. Image credit: Meghana Singh.
The display poster
The display poster. Image credit: Urmila J.

How it all began

Klimate Kundli was, quite literally, born from an act of whimsical wordplay. The alliteration was catchy. The concept of a personalised birth chart climate chart sounded extremely apt. And so Nithya’s suggestion struck an immediate and lasting chord with both of us!

A kundli is a twelve-house chart of where the planets sat when you were born. It is supposedly a map of your fate. A klimate kundli relies on climate signals, instead: the temperature you were born into, what your monsoon has done since, how far the sea has come up. We chalk up a very similar chart for you, that helps visualise the climate that you’ve lived through.

How a kundli gets made

A visitor hands over three things: their birth city, their birth year, and everywhere they have lived since.

The first intake screen, asking when and where you were born, with a city search field above a scrolling year picker set to 1986
The first screen asks two things. The year is scrolled to, not typed.

Nobody recalls their moves as dates, they recall them as stretches. So that screen is a timeline instead of a form, and each city is a bar you shorten to make room for the next one.

The lived-cities screen with four stacked timeline rows: Indonesia 1983–2000, Djibouti 2000–2012, Kuala Lumpur 2012–2018, and Kolkata 2018–2025
Each bar begins where the one above it ends.

The add button stays disabled until you do. There is no room on the timeline for a second city while the first one runs to the present day, and the tooltip says so rather than letting you click into an error you then have to undo.

The intake, captured from the running app. The add button refuses until the first bar is shortened.

Building it three times

Our goal, from the very beginning, was to keep things personal. We absolutely wanted the kundli to reflect a person’s felt experiences (across all the places that they’ve lived in or passed through). Another non-negotiable was for this to be available online, to a larger audience. That meant Klimate Kundli (henceforth KK) would have to cater to people who might have been born anywhere on Earth. And in the context of the exhibition space, we also had to account for unreliable network: these two constraints decided most of our engineering architecture.

So, naturally, before we could make data visceral, we had to figure out what kind of data we’d be working with. Version 0.1 was a localhost proof of concept: a single-page form that called Open-Meteo live and rendered twelve cells. It validated the card mapping and confirmed one API could cover any birth city in the world. It looked like a developer tool, though.

The very first Klimate Kundli PoC
The very first Klimate Kundli PoC.

Version 0.2 was a lesson in avoidable-engineering-overhead. Due to API rate-limits, calling them at read time was fragile. I tried to own the data plane: a Python ingest CLI pulling Copernicus ERA5 and the India Meteorological Department’s gridded rainfall back to 1901, raw artifacts in Cloudflare R2, and aggregates in Postgres. The idea was for KK to never touch an upstream API. It worked end-to-end, but, paying ingest and ops costs to reproduce what Open-Meteo already serves at scale ultimately felt wasteful.

Version 0.3 cracked the data pipeline: a thin Hono server with a SQLite cache, fallback chains (ERA5, then NASA POWER, then the nearest pre-warmed city), and graceful partial responses when a source times out.

In the midst of figuring out our tech, we were slowly beginning to try out different graphic design flavours for the web experience. We briefly experimented with a parchment-esque vibe.

The parchment grid experiment
The parchment grid experiment.

The reading

When one thinks of climate, one imagines studying an amalgamation of temperature, rainfall, and emissions data.

Each card speaks in the voice of a kundli: the monsoon rewrote your fate line, fire ruled seven of your years; and each line sits on a real number from a public record. Temperature and monsoon rainfall both come from the ERA5 reanalysis back to 1940, national emissions from Our World in Data, atmospheric CO₂ from Mauna Loa, sea level from a NOAA/CSIRO reconstruction, and the record-hot-year peaks from IMD station records for Indian cities near a station, ERA5 everywhere else. Every card carries its source and a confidence label.

The reading ends the way a real one does, with upaay: remedies. Drink your chai two degrees cooler for the rest of your life. Forgo a few million AI queries to settle your carbon account. They are jokes and the card admits it.

The result page's remedies section, with the kundli voice and a source footnote both legible
The remedies (or upaay).

Finding the right visualisations

The data model froze early; the charts never did. The lifetime temperature trail started as dots on stems and ended as hot air balloons, altitude carrying each year’s mean. National emissions began as concentric tree rings, your lifetime beside your parents’ generation on a shared color scale. Rings became a streamgraph, and the streamgraph became a smoke plume rising off a matchstick, stacked by fuel: coal, oil, cement, gas, flaring. Record-hot years render as a hand fan, one blade for every year you lived through a city’s ten hottest since 1940.

The lifetime temperature trail rendered as hot air balloons, altitude carrying each year's mean
The temperature trail as hot air balloons.
National emissions as a matchstick-smoke plume inside a rotated diamond, stacked by fuel
Emissions as matchstick-smoke, stacked by fuel.

Figuring out a way to show the melting Arctic ice in the context and duration of your lifetime [so far] saw a few iterations as well:

  • an iceberg cross-section
  • two nested floes
  • your country’s outline flooded with the equivalent lost area
  • one stripe per year since 1979
  • a dial with the melted sector missing

The iceberg won.

Record-hot years as a hand fan mid-hover, one blade per year lived through a city's ten hottest
Record-hot years as a hand fan, mid-hover.
The /ice-lab sandbox showing all five Arctic ice prototypes at once
The /ice-lab sandbox—five ice prototypes, only the iceberg shipped.

Venue engineering

Production is deliberately small: a Vite frontend on Vercel, the API on a DigitalOcean droplet under systemd, SQLite as the only database in the read path. Before opening we expanded the pre-warm cache from 35 cities to 933, so nearly every plausible birth city answers without an upstream call.

The hardware is two objects: a laptop visitors type into, and a printer that hands the kundli back. Everything around them is costume, and the costume does half the work. Nobody gives a stranger their birth details across an open table, so the booth is closed off with beaded and translucent curtains. Inside is a table under heavy velvet, the kind a jyotish works at, a crystal ball that is really a round white lamp, some paraphernalia, and Dodo, your thirty-year-old parrot astrologer. Parrot astrologers sit in grated metal cages. Dodo’s is laser-cut, painted bright yellow, and has the printer in it.

The printer cage being laser cut.
A photo-collage of Nithya putting together the printer-cage, and painting the walls of the cage a bright yellow
The printer cage being painted and put-together, by Nithya.
The laptop+printer setup in action
The laptop+printer setup in action.
A volunteer interacting with Klimate Kundli
A volunteer interacting with Klimate Kundli.
Dodo, sitting with the kundlis it printed
Dodo, our brand ambassador—sitting with the kundlis it printed. Image credit: Monisha Keswani.
Dodo, sitting with the kundlis it printed
Dodo's better angle! Image credit: Monisha Keswani.

Print

The takeaway artifact is a paper fortune teller, the cootie-catcher you folded in school, with the reading laid across its creases. Each sheet is generated per visitor: the hand fan in the top flap, monsoon tree rings merged into one chart, the iceberg with its melted cap labelled, a QR code back to the visitor’s saved reading, their name and upaay on the bottom strip. It prints as a single A4 with zero margins through a print stylesheet.

A photo of an early version of the printed kundli; it was meant to be a test of readability and foldability
Testing out the printed kundli layout to validate readability and foldability.
A stack of printed kundlis
A stack of printed kundlis, fighting a losing battle with printer ink.

At the venue, and after

Data, Otherwise opened on 3 July. Visitors type a birthday and their cities, watch the reading assemble, and leave with the printout.

Over two days the booth produced 197 kundlis spanning 230 cities and roughly 100 million daily weather values. The pre-warmed 86-year cache answered 97% of that from disk in well under a second; only five kundlis ever needed a live API call.

The public site is the same instrument minus the printer, with a gallery of saved readings at shareable links. The week after opening I instrumented the funnel with self-hosted Umami—landing, generation, print—to see where people drop, which is where the project sits now.

What we took away

  • At exhibit scale, an aggressive cache in front of someone else’s API beats all else.
  • Costumes are necessary. The astrology wrapper is what makes strangers walk up, and the source labels are what let them trust what they read once they do. Neither works alone, and most of the eight weeks went into keeping both true at once.
Visitors gathered at the booth, seen through the beaded curtain at its entrance
The VizChitra 2026 banner listing everyone who contributed
The two of us standing beside the Klimate Kundli booth and its poster
A visitor reading their printed kundli behind the frosted panel
A visitor entering their details at the exhibit laptop, lit by the purple wall
Hands at the laptop with a folded kundli and the printer casing
Working at the exhibit laptop, holding the glowing orb
Visitors holding their printed kundlis at the booth
Visitors at the booth, framed by the beaded curtain
Talking two visitors through their reading at the booth
A printed kundli card resting on the purple velvet table
Two days of Data, Otherwise, at the Bangalore International Centre.

Colophon

Curators: Debanshu Bhaumik & Siddhartha Mukherjee

Mentors: Debanshu, Siddhartha, Aditi Bhat, and Amit Kapoor

We’re eternally grateful to Debanshu & Siddhartha for being there right from the beginning, and through till the very end. Thank you for allowing us to exhibit, and for being patient with us. Being first-time data-viz’ers, the gentle nudges and quiet confidence were invaluable, as we navigated the creative and challenging space of data visualization.

Aditi, thank you so much for being a fabulous sounding board and friend. You lent a ear and hand whenever we needed it. Your help with figuring out 3D printing and laser cutting was invaluable.

Mathura, thank you for lending us the printer and your parrot (Dodo). Dodo especially, stole the show, and how! Thank you, also, for letting us hangout at PCL.

Syed bhai, your promptness and the perfect craftsmanship with the table cloth stitching was second to none. Thank you.

To the laser cutting anna at Arun CADD, thank you for your willingness to help with the printer-casing.

To Nithya and Arko: I hope we can look back at this project with a quiet sense of pride. To have pulled off something like this in the time that we did, despite having full-time jobs: is quite incredible!