Fishy Screensaver - December 2025
Interactive artwork made on p5.js using JavaScript
This enthralling visual and interactive artwork can be experienced both as an idle spectator, or as a direct partaker. Colorful “fish” float across the screen in everchanging patterns and densities, inducing a felling of being underwater. The color shifting “fish” create an almost hypnotizing visual experience that can be watched indefinitely.
Alternatively, this artwork can also be interacted with. Moving the curser shifts the colors between darker blues and more vibrant pinks. Clicking on the screen changes the pace of the “fish”, alternating between a slower and faster pace for extra customization of the individual experience.
My inspiration for creating this artwork came from a childhood memory. In primary school, I used to stay in after-school care until my parent would pick me up. The secretary who was responsible for making sure we got picked up had a computer. On it I often saw a screensaver that displayed a school of color changing fish that would shift between dark blue and hot pink as they swam around the screen. As a kid, this screensaver invoked a strong sense of wonder in me.
I attempted to find this screensaver on the internet, but I was completely unsuccessful. It is as if all traces of it have disappeared besides the memories within my mind. That is why I decided to recreate this screensaver and attempt to invoke in others the same sense of wonder that it had produced in me as a child.
Portrait of Montreal - November 2025
Interactive artwork made on p5.js using JavaScript
This “portrait” of the largest city in the province of Quebec is a fun, humorous and relatable interactive collage.
A squirrel, controlled with the mouse, explores a busy street in Montreal. It can walk in front of traffic, which causes a loud disturbance, find nuts inside a compost bin, accidentally create a sinkhole, and even control the wind and snowfall with its movements.
The concept behind this work is largely inspired by a snow globe. It is as if the people interacting with the work catch a small glimpse of Montreal within a whimsical snow globe.
I was born in Montreal and have spent my entire life as resident of this city. As such, I have grown well accustomed with common clichés of the city, such as the orange cones and the terrible road quality. Through this artwork, I wanted to represent a collection of these clichés in a funny way that is immediately relatable for others like me who call the city home. In this way, this artwork unites residents together though a shared vision of their home city.
Funny image randomizer - May 2025
Interactive program made on Max MSP
This interactive program invokes randomness to generate humor.
Toggling the audio randomizer plays one of the 6 uploaded silly sounds at random at an interval of 3.5 seconds. There is also an optional frequency shift feature that can be toggled, which adds some extra pitch distortion to the audios. Toggling the image randomizer displays one of the 20 funny images at an interval of 5 seconds.
Instead of displaying an image and playing a sound at intervals, it is possible to decide to physically trigger a new image and sound using the movement tracker that reacts to movement done by your right hand every time you wave.
What drove me to create this project was simply my love for funny things. I enjoy a certain type of humor that comes from something so unexpected and nonsensical, because it makes me question why humans find certain things funny in the first place. The art of humoring people can be extremely complicated. No everyone is able to become a successful stand up comedian and entertain an entire crowd, so it is very fascinating to me how something completely randomized at times can achieve the effect of being extremely hilarious.
I generally dislike Max MSP as a programing language because I struggle with wrapping my head around the way it is structured in comparison to traditional code. Making each component of this randomizer was a struggle of its own, which made me feel even more proud and relieved to see everything finally click in the end.
I discovered this video after already creating this program, but I find it interesting because it showcases a very similar concept to my project, with the addition of reinforcement learning. I recommend sparing a watch !
Footage from the project before I lost my image files