Major Experiments

[home] [rss]

Nov 20, 2021 - Show Mic

Used web audio api to capture microphone input and extract base frequency of signal. Turns out you can't just take an FFT and find the bin with the max mag in a certain range!


Dec 30, 2020 - Beat Match

Inspired by this YouTube video I set out to see if I could implement it and find the beats in various songs. Took this as a chance to learn more VueJS.


Dec 23, 2020 - Movie Lines

Visualized movie frames by computing average colors of frames. I compared using ffmpeg to resize to a 1x1 video as well as manually computing the average color in linear sRGB color space.


May 2020 - Driver B

Driving game. Along way I had to write some cool tools to visualize and check my 3D and math.


April 4, 2020 - Bikes!

Used browser audio api to match laser shots and bomb explosions to the drums in a music track. Learned about CSS animations to create simple cut scenes and transitions.


April 1, 2020 - Tile Editor

Fleshed out some of the map tools I ended up creating while working on Manstar. I wanted to add an urban environment with stairs and buildings for monsters to chase through.


March 13, 2020 - Manstar

Inspired by this blog post I wanted to make a simple game where monsters chased the player based on the shortest path to the player. I also ended up using 2D perlin noise to generate the terrain for the game.


Jan 2019 - NES Sound Emulator

Simulated the NES APU. This was a blast. I had to write a 6502 core interpreter. Though not cycle-accurate it was close enough to generate NES music from an NSF file. Code is on GitHub:


Feb 2016 - Manarms

Simple physics based game inspired by a running joke amongst friends. I ended up having to use a physics lib since I could not get the boxes to stack stably.


Jan 2016 - Voiceprint Test

Had an idea of a creating a rhythm-based JS game. This required learning about the browser audio API and learning some math. Took this as an oppurtunity to learn ReactJS and made a tool that generates, displays and looks for patterns in a song's spectrogram. The waveform visualization end up being more involved than I thought since I ended up pre-rendering various "zoom" levels so that it can run at a smooth 60fps.


Feb 2015 - Isomorphic Truck Bombs

Played with creating a simple isomorphic tile engine.


July 2013 - Path Tracing

Implemented path tracing in Java. Discovered 3 awesome renderers along the way: Mitsuba, LucRenderer and Sunflow.


Jan 2013 - Quasar Dog

Was inspired during a gamejam to try to make a basic Star Fox inspired game engine from the ground up in 24 hours. Tried to see what the limits of my simple and pure JS polygon engine would be. I also experimented with some nifty visual effects like motion blur and large pixels.


Feb 2011 - Chinese Flash Cards

Made some tools to help with my Mandarin vocab practice.