Justin Michaud

Compiler Enthusiast & Open Source Aficionado @ Igalia

Github - Email

About Me

I am a software developer interested in graphics and compilers. I work on the ARMv7 port of WebKit/JavaScriptCore. In my free time, I roast coffee and collect old computers. You can contact me at hello@justinmichaud.com

Blog posts

Building WPEWebKit for 32‐bit Raspberry Pi 3 (Buildroot DRM config)
Random notes about building the WPE WebKit port
Read more... justinmichaud.com
A Tour of Inline Caching with Delete
Details of how JavaScriptCore's inline caching optimization works
Read more... webkit.org

Old Projects

NES Emulator

I made an NES emulator to learn rust while in my first year of university. 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. In 2022, I converted this into a WASM benchmark subtest. Source Play Now (game modifications) Benchmark your browser!

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 fighting issues. It is not compatible with low-level emulation (direct emulation of the N64 graphics chip), 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

PagerDOOM

This was a hack day project while interning at PagerDuty. This is a chocolate DOOM mod that spawns an enemy for each incident in your PD account. Resolve incidents by shooting them! Source