Blog
Crash Course: Computer Vision
The companion article for my presentation about computer vision and Lunabotics.
Includes an overview of common computer vision tasks such as scene reconstruction, object recognition, and pose estimation, an overview of the NASA Lunabotics competition, and a crash course in basic Python programming.

pedit5
A guide to beating the world's first CRPG.

Fast Inverse Square Root
An analysis of the famous fast multiplicative inverse square root algorithm as it is implemented in Quake III Arena, as well as the mathematics behind how it works (IEEE 754, bit manipulation, and Newton's method).
Esoteric JavaScript
A guide on how to write any JavaScript program with just six unique characters by abusing implicit type coercion and bracket notation.
WebGL2 Tutorial
The table of contents for my WebGL2 tutorial series. Also contains a link to the glossary for the tutorial series.
OpenGL Text
An introduction to rendering text in WebGL, including a tutorial for rendering bitmap fonts with glyph textures.
Transparency Emulation
An introduction to transparency in WebGL. Covers blending (functions and equations), alpha premultiplication, order-independent transparency (OIT), and includes a tutorial for dual depth peeling with WebGL2.
Fog Emulation
An introduction to some techniques that are used to emulate distance fog (depth fog) in WebGL.
Shadow Emulation
An introduction to some techniques that are used to emulate shadows in WebGL. Covers shadow maps, shadow acne, Peter Panning, and percentage-closer filtering (PCF).
OpenGL Cubemaps
An introduction to cubemaps in WebGL. Covers some of their most common uses, such as environment maps and skyboxes.
Lighting Emulation
An introduction to some techniques that are used to emulate lighting in WebGL. Covers normals, diffuse, ambient, point, specular, and spot lighting, and the Phong and Blinn-Phong lighting models.
OpenGL Framebuffers
An introduction to framebuffers in WebGL. Also covers renderbuffers, attachments, and rendering to textures.
OpenGL Textures
An introduction to textures in WebGL, including texture atlases, data textures, sampling, and projection mapping.
3D Emulation
An introduction to depth and the techniques that are used to render 3D scenes in WebGL. Covers depth testing, polygon culling, orthographic and perspective projections, cameras, and view matrices.
Scene Graphs
An introduction to the scene graph data structure as it relates to OpenGL.
Affine Transformation With Linear Algebra
An introduction to transformation in WebGL, including translation, rotation, scaling, orthographic projection, and the linear algebra necessary to perform transformations with matrices.
OpenGL Varyings
An introduction to varyings in WebGL.
OpenGL Uniforms
An introduction to uniforms in WebGL.
OpenGL Attributes
An introduction to attributes, buffers, and vertex array objects in WebGL. Also covers locations and binding points.
OpenGL Program Structure
A reference page for the typical structure of a program that uses OpenGL.
OpenGL Shaders
An introduction to shaders (vertex and fragment), shader programs, rasterization, and GLSL.
WebGL Introduction
The introduction to my WebGL2 tutorial series.
Magic: The Gathering Deck Building Compendium
A summary of my knowledge about deck building for Magic: The Gathering. Includes a built-in hypergeometric calculator.