Tech used: NodeJS/Express, websockets, Unity, GLSL
I was recently invited to perform at an audiovisual festival on campus, along with friends who make claymations and techno music. For the show, I developed a NodeJS web app that used websockets to allow people to control 'dancing' characters in the visuals. For the visuals themselves, I created a Unity app that served as the glue between a variety of visual effects:
1) the dancing characters (controlled by viewers' phones via websocket)
2) live-edited GLSL shaders that morphed in response to incoming audio
3) midi-triggered claymation loops and
4) live midi-controlled Unity camera effects.
Over the course of this project I learned how to use websockets to pass data between apps and demonstrated the ability to organize people with divergent talents (animation, music production, and programming) into a cohesive team that was able to produce a "brain-melting" performance.
[frame-rate on the video is crap because my poor computer couldn't handle running the software and screen-recording at the same time]
[screencaps below show what it looked like with people logged on and controlling the emoji characters]
Tech used: Typed Racket (Lisp-like functional programming lang)
Over the course of this intense project, I learned how to design data structures with specific operations in mind and how to think in the functional programming paradigm. It wasn't easy: my code was pretty broken at the penultimate checkpoint, but I stuck with it, worked out all the issues and got full points on the final project.
I thought it would be funny if people could text my mom right from my website, so I made an little web app for it. To build this, I taught myself Node, Express, MongoDB and some light form verification to make sure people could only send her emojis. [ Note: now just a static page- the gmail api I was using got removed, so you can't text her anymore :( ]
Tech used: Unity, ARCore
I wanted to put planets in my bedroom, so I did.
Followed an "intro to webassembly + Rust" book that showed how to implement Conway's game of life in a web page. Though the idea came from the book, I modified the original code heavily. This project made me really appreciate Rust's type checker and memory safety, especially when compared to a language like C.