I write to help myself & others understand how the world works. Computer graphics just happens to involve a lot of learning about the natural world. I've also written on sound (Why does the same note sound different on a piano vs a violin?) and image compression (Unraveling the JPEG).
I write across Medium and Dev.to. I used to write for Envato Tuts+.
I explain how JPEG images work with interactive diagrams for each layer of compression.
The article allows you to edit the raw bytes of the image at various stages of compression and see the changes in real time.
See tweet thread with highlights. FastCompany wrote a feature on it. HN discussion.
See also my JPEG Sandbox, an interactive tool to see the individual DCT components in any JPEG image.
Explains how to render outlines as a post process. Includes a ThreeJS and a PlayCanvas implementation. See GitHub repo.
A step by step guide for building a rasterizer using WebGPU compute shaders.
I wrote this to serve as a template for exploring compute-based rendering techniques which can be much faster for certain use cases, like point cloud rendering. See GitHub repo.
An interactive article about finding patterns in high dimensional data by projecting it down to lower dimensions.
I wanted to guide the reader towards discovering the solution on their own. The article supports dragging & dropping CSV files into any diagram to explore your own examples. See teacher's guide.
This article clears up a common misconception about what causes gimbal lock and how to fix it.
It shows how to solve gimbal lock without using quaternions, and how it can be generalized to higher dimensions.
These are non technical articles reflecting on life. I write a lot of these in my "notebook". Below are some featured selections.
How to reconcile the excitement about pursuing too many things and the focus needed to finish anything.
About an incredible interactive ice breaker performance created by Lars Jan at the New-Public Festival.
Reflecting on what it takes to win a game jam.
My talk at !!Con 2019 in New York City, about what it means to look at a 4-dimensional cube.
I gave a chapel talk about how I see learning computer graphics as a form of worship in Islam, in that it encourages this deep appreciation of the awe-inspiring beauty & complexity of our world.