Justin Michaud

Student | Open Source Enthusiast

Github - Email - Resume

About Me

I am a Computer Science student at the University of Waterloo in Canada, interested in Free & Open Source software, browsers and compilers. In my free time, I play oboe and collect old computers. You can contact me at hello@justinmichaud.com

Blog posts

A Tour of Inline Caching with Delete
Details of how JavaScriptCore's inline caching optimization works
Read more... webkit.org

Projects

NES Emulator

I made an NES emulator to learn rust. It has partial support for Mapper 4 (SMB2 and SMB3) and audio. It also includes optional modifications to Super Mario Bros by hooking into memory reads/writes, allowing new levels to be loaded in and out. Source Play Now (ML-generated level) Play Now (game modifications)

GlideN64

I made a demo adding stereoscopic rendering support to GlideN64 Nintendo 64 graphics plugin. Every draw call that the game makes to the high-level emulation code is doubled. Then, after the game applies its projection matrix to vertices, the eye translation is applied. This avoids toe-in artifacts, but causes depth issues. It is not compatible with low-level emulation, and is too unstable to be merged. Source

VR Head Tracking Shooter

A shooter game for Google Cardboard that uses BoofCV to track the position of your head, allowing you to doge obstacles and shoot enemies. Using Bluetooth, a TCP connection allowed head tracking data to be sent to the android phone in the headset. Built using OpenGL and LibGDX for Mhacks 8. Source

What is a monad? (Lightning talk)

Lightning talk + Scala worksheets about Future, Try, and Option monads, plus some bonus worksheets on the IO monad and monad transformers. I gave this while interning at PagerDuty so that I could wrap my head around Monads. Source