rainy-city.com: A side project I have been thinking about for a long time
Do you have a side project? Tell me what it is.
If you just want to see what rainy-city.com is, well here is the link.
There is a terrible curse in technology where everyone thinks you are supposed to have “side projects”. Side projects are something you do when you are not at work that in some way appears as work. I think Gen Z people call them “side hustles” because there is also the insipid idea that these side projects should make you money in some way. For some reason the modern era has decided to commoditize all parts of the waking life. I think the most striking description of all of this is Kyla Scanlon’s description of the Attention Economy:
If you think about it from this perspective, all side projects/hustles should be designed in some way to grab the attention of someone and leverage that into making you money in some way. That is, if you buy into the idea of side projects and side hustles should be commoditized instead of simply having hobbies that you enjoy doing (such as how I enjoy writing this substack). Few people think that someone should somehow monetize the rebuilding of a bicycle, or, just going for a ride on the weekends. However, for some reason if you write software as a hobby you should monetize it since that software is meant to be used by others and whenever other people are involved the Attention economy comes back into play, but I digress, Low Impact Fruit is supposed to be about science and technology, not the failures of the modern world and I promised in the title to discuss a side project that I have been picking at, thinking about, or otherwise working on for some time.
Rain Simulators
A very long time ago I stumbled upon the website rainymood.com. Essentially, some people like to listen to rain sounds. This isn’t a new phenomena you can find old CDs of various sort of environmental sounds. They are all in some kind of genre of relaxing meditation music, or perhaps something to help you concentrate. I often times like listening to rain sounds when I otherwise could be listening to music or silence as I find that rain sounds focus my mind on whatever problem I am trying to solve. I do agree with the CD above when it says:
Just close your eyes as you listen to nature’s own relaxing sounds on this CD and you can find it easy to imagine that it’s pouring with rain outside whilst you are all cosy and relaxing indoors.
I find rain sounds quite relaxing. I should probably spend more time listening to the rain. (Apparently Feel Good Dynamics still exists and makes a variety of relaxation-based media that can still be purchased as an MP3 or a Compact Discs).
Meanwhile, the world moves forward and I think a combination of GenX and Millennial nostalgia for the 1980s that started with Donnie Darko overtook me and everyone else born between 1975 and 2000. A big part of that nostalgia not only looks back at the halcyon days of Ronald Reagan (or whatever) but also a look back at how people then looked towards the future with books like Neuromancer and movies like Bladerunner. A central component of these works is the sprawling city that has grown and metastasized since the 1980s into some sort of Neo-Tokyo. I think my favorite iteration of this was the Boston-Atlanta Metropolitan Area from the movie Escape from New York. Thus everyone’s favorite sci-fi obsession, cyberpunk, took over every aesthetic in some way whether its neon lights, electronic music, or simply working on computers in some boutique Neo-Tokyo ramen shop on a rainy afternoon.
Coupled with my childhood dream of working in a coffee shop in Seattle (I don’t know where this came from) and also my childhood love of SimCity 2000, I came up with this idea of having a website based interactive rain simulator that would be a city scape in an isometric frame that has an active weather system that can be controlled by the user and that active weather system would be used to generate the rain sounds in a way that would be far more sophisticated than rainymood.com play button. It would give the user the power over the weather with a few sliders and other controls and you could watch various weather systems interact with the city below. It would essentially be a browser-based, slightly interactive screensaver for the modern computer user with a discerning taste for rainy sounds.
I decided that it wasn’t enough to just have a slider and such, I should create a full Navier-Stokes simulation of the clouds interacting around the buildings of the city, the initial conditions could be initialized from random numbers generated by the actual atmosphere, and the rain sounds would then be driven by the distribution of densities as created by the simulation for each time step. This all seems rather ambitious now that I think about it. I think this ambition came from the last time I put a lot of effort into this project was when I was starting my PhD and one of my advisers was Anders Malthe-Sørenssen and the other was Morten Hjorth-Jensen (both of these links are in Norwegian), two physicists known for their computational efforts. For some reason I decided that having a side project about building rainy sounds simulators would impress them. I doubt Morten or Anders ever thought about this or even realized I was working on something like this. As an aside, this is something to think about the next time you wish to impress someone, they very may well not know you are trying to impress them.
So anyways this effort all got so far as building the simulation you can see above which creates a randomized building density and then randomly initializes the simulation and lets it run for however many time steps you want. That’s great but its not exactly visually pretty and you don’t hear any rain sounds because generating fake sounds that sound real is actually rather difficult if you haven’t really figured out how you are going to do that yet. And herein lies the dilemma, everything has become so complicated I start to feel a bit overwhelmed by it all. There is the weather model, the city animations, the controls, the sound generator, and you have to put it altogether in a compelling way that I would like to use it. Where do I start?!
Relax and listen to Will Wright talk about making models.
Enter the MVP
A skill I wish was pushed onto me when I started learning to be a scientist/whatever it is I define myself as at the moment, is developing an MVP. That means, Minimum Viable Product. Don’t explore every option and offer ever feature and understand every part. Instead, build the minimum that is expected and then test it with users to see if anyone ever will use it anyways. The same can be said for scientific ideas. I kind of think that I have often spent way too much time on developing ideas on some of the scientific projects I have worked on. And this was in lieu of simply trying out the minimum idea and then sending it off to reviewers to see if anyone is interested. But getting back to rainy-city.com, the MVP should have the following:
A webpage
A slider to control the rain noise
A slider to control the city noise
A visualization of the city
A visualization of the rain and clouds
That’s it. By defining the MVP, I am able to put everything aside and get something up and running, and then I can start adding features to it like driving some weather simulation with atmospheric noise. So that is what I did.
You can checkout rainy-city.com at rainy-city.com. There are no subscription fees or anything, just go and listen to the rainy city sounds and relax. Perhaps if you are feeling especially cyberpunky, you can have a bowl of ramen and think about how living in some sort of mega-corp dystopia is not actually the best idea in the world.
This project was the project I proposed to do as my Recurse Center project. I ended up working on many other projects in addition to this one. That includes a semantic search tool for research, an arcade side scrolling fighter called Streets of Rainy-city.com for the RCade, random weird stuff for RCTV, a zulip bot that lets you play Zork inside of zulip, and I am working on an LLM reasoning eval toolbox based on zork. I am particularly proud of Streets of Rainy-city.com, I had a week to make it because there was a localhost event at Recurse to show the RCade and so I built the game in a week.
When I proposed rainy-city.com I was honestly scared, I thought, who would ever want this, why would anyone think this is a cool idea. But now, I realize that I wanted this. And that was enough. What will you build that you want?
I built this project while at the Recurse Center. Join the Recurse Center!







