They fit in the palm of your hand.
Every year, they fly from Mexico to Canada and back.
They are also listed as an endangered species in Canada.
You guess it right, it's the monarch butterflies.
An Endangered Species
Citizen-driven Efforts
The data was collected over the .... iNaturalist
Data Analysis
Data Cleaning
The raw dataset contained 703,394 records spanning from the 1800s to 2025.
The first thing I noticed was that more than half the records (371,805)
had no recoverable date, meaning neither the eventDate field nor the year,
month, and day fields were populated.
As visible in the chart below, data before 1980 is extremely sparse, so I
restricted the analysis to 1980 onwards. The spike around 1999-2001 also
stood out. Digging into it, it turned out to be a bulk submission from
Monarch Watch, a dedicated monarch monitoring program based out of the
University of Kansas that has tracked the species since the early 1990s.
These records were aggregated annually and lacked day and month
information, making them unusable for phenological analysis.
After removing records with unrecoverable dates, missing coordinates,
duplicates, and pre-1980 observations, the dataset was reduced to 316,273
records. Given sparse coverage in the early years, the analysis was
further restricted to 2010 onwards, yielding a final dataset of 312,235
records, roughly 44% of the original.
Data Visualization
The maps below show monarch butterfly sightings across North America
colored by month. The full migration corridor is immediately visible, with
purple and blue dots cluster in Mexico during winter, greens push north
through spring, and reds and oranges spread across the US and Canada
through summer and fall. Comparing across periods, the density of
sightings increases noticeably over time, largely reflecting the growth of
iNaturalist as a platform rather than the actual monarch population.
2010-2015
2016-2020
2021-2025
all years
JanFebMarAprMayJunJulAugSepOctNovDec
Each dot represents a sighting, colored by month of observation.
Colors follow the seasonal cycle, with cool purples and blues in
winter, greens in spring, warm oranges and reds through summer and
early fall.
The animation below shows the monthly migration pattern across the
full dataset. Watch the monarchs move north through spring and return
south in the fall.
Statistical Analysis
On the path
Conclusions
Next Steps
References
๐ฆ
Fig. 1 - Arduino Setup
The moisture sensor (MS) connects the plant to the Arduino (A) via
a 3.3V voltage and outputs data on A0.
The phototransistor (P) connects to 5V on Arduino (A) through a
10Ω resistor. Data is read on the analog output A2.
The Arduino collects the sensors' data and sends it to the backend (a
Python FastAPI application) via
asynchronous serial communication. The data
is then processed and displayed in React on the frontend. I used a
combination of WebSockets and HTTP for communication across the stack. I
am fairly new to WebSockets, so it was
really cool implementing a two-way communication channel between backend
and frontend.
I used GPT-4o by OpenAI to handle
text-to-speech (TTS) communication and give
Lady Monstera her voice.
From Sensors to Speech
Seeing the plantโs internal state update in real time was absolutely
thrilling! I tracked water and light changes over 5-second intervals, and
let the plant comment on significant state changes. Here is how Lady
Monstera recently handled an abrupt dimming of the lights:
And here is how she reacted to being watered!
Notice how she records and updates the last
time she was watered - just another way to remind you how sassy she is,
and how she wonโt forgive you for forgetting to water her!
Reflections and Future Opportunities
I opted for
text-to-speech instead of realtime
speech. Realtime was very sensitive to ambient noise, difficult to
control and it quickly became too expensive to experiment with.
It would be fun to gamify the
experience, with multiple plants talking to each other, each with
distinct personalities based on their needs. Maybe even connect
hobbyist gardeners and let their plants gossip about their owners ๐คญ
Ultimately, I hope this project helps us get
closer to our houseplants and the
nature around us, reduce houseplant neglect and make interacting with
our green friends a little more entertaining and curiosity-driven.
Thank You, Fellow Hackers!
The
Waterloo Voice AI Hackathon
was my first real-world hackathon and I loved every minute of it. Coding
next to other hackers, exchanging ideas and simply absorbing the energy
and enthusiasm in the room has left an indelible mark on me. It has given
me the confidence to keep building, no matter how silly or small the
initial idea might seem.
As a rule of green thumb (yes, I am proud of this one ๐), don't
leaf your plants unattended for too long. Also, singing to them
improves their greenery and promotes luscious, beat-loving leaves!