Inspiration
I was inspired by all the news about Perseverance touching down on Mars. I started thinking about what parallels I could draw between Earth and the red planet. We are taking steps to make it our home in the near future so how could I begin relating to such a place? Then it hit me, the weather! It might be something small and inconsequential, I mean, it's small talk 101, 'How's the weather?'. But that's what makes it worthwhile to me. It gives me the opportunity to bring Mars (Home 2.0? 🥺) into my daily life, to add a next dimension (literally) to the random convos my friends across the internet can have.
What it does
First it grabs the weather data for the past year for your current location. It then uses linear regression to determine how the weather on Mars changes in comparison to the weather on Earth. From this we can make fun guesstimates such as if it's a low temp of 10C here then on there it would be -78C based on the correlations observed. All of this is displayed in an auto generated weather report video.
How we built it
All of this is done client side using a python webassembly library named liminode-js. Next (the fun part), an image in the form of a weather report is generated and green screened onto a stock video of a weather reporter. This image contains details such as the location you're viewing from, expected high and low temperatures, the current air pressure and the comparative figures from our dusty red neighbor next door All of this is done using ffmpeg wasm (another webassembly library that brings to power of ffmpeg clientside) Finally, a text to speech library was used to read out the report.
Challenges we ran into
At first I attempted to use Pyodide however I ran into so many errors. I then pivoted to liminode-js and everything seemed to work a bit better from there on.
Accomplishments that we're proud of
I'm particularly proud of working out how to manipulate the weather report video on the fly.
What we learned
A bit more than I previously did about how webassembly works. I also learnt about the APIs NASA has available and how challenging it can be to quickly find an API to retrieve historical weather data if you don't know what to look for.
What's next for Martian Weather Channel
I'd love to manipulate the reporters face so his mouth actually says the words and I'd want to overlay various heroes and heroines from the Marvel/DC universe unto his face.
Built With
- css3
- html5
- javascript
- python
- react
- webassembly

Log in or sign up for Devpost to join the conversation.