graphics/systems programmer at Playdead
email, github, twitter
|14-Feb-2018||Efficient Rendering of Linear Brush Strokes - Journal of Computer Graphics Techniques|
|01-Feb-2019||Constructing a cubic Bezier that passes through four points|
|14-Feb-2018||Efficient Rendering of Linear Brush Strokes—my graphics paper explained|
|25-Sep-2017||Creating a modern OpenGL context|
|04-Mar-2017||Exploring bump mapping with WebGL|
|30-Nov-2016||Hitchhiker's Guide to the GDB|
|04-Sep-2016||Exploring calling conventions with x86 assembly|
|20-Aug-2016||Loading OpenGL without GLEW|
|13-Aug-2016||Native UI is dead, long live native UI|
|30-Dec-2015||Alpha Compositing, OpenGL Blending and Premultiplied Alpha|
|03-Jul-2015||Building a Fast, Modern Image Editor|
At Playdead, I work on graphics, GPU and CPU optimization, and tools targeted at artists.
At NVIDIA, I worked on CUDA profiling tools, including nvprof, the NVIDIA Visual Profiler, and the CUPTI library. This work involved working on the full GPU stack—silicon, drivers, profiling libraries, GUI.
My open-source work includes EasyTab, a single-header multiplatform library for drawing-tablet input, gl_lite, a single-header lightweight OpenGL loader, and tiny-jpeg-rs, a ported JPEG-encoding library written in the Rust language.
Papaya is a cross-platform image editor that I've been working on for a long time. It is built in OpenGL and C99. I've periodically spun out useful code from this project into smaller libraries and research.
Socioball was my first commercial game. I was the solo programmer on the two-person team that made the game. I began work on the shippable version—which is built in Unity—during my Bachelor's degree. Before this version, I had built a prototype of the same game in C# and XNA, including a custom deterministic game-specific physics engine.