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.
WebGL2 Text
An introduction to rendering text in WebGL, including a guide for rendering bitmap fonts with glyph textures.
WebGL2 Transparency
An introduction to transparency in WebGL. Covers blending (functions and equations), alpha premultiplication, order-independent transparency (OIT), and includes a guide for dual depth peeling.
WebGL2 Fog
An introduction to some techniques that are used to emulate distance fog (depth fog) in WebGL.
WebGL2 Shadows
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).
WebGL2 Cubemaps
An introduction to cubemaps in WebGL. Covers some of their most common uses, such as environment maps and skyboxes.
WebGL2 Lighting
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.
WebGL2 Framebuffers
An introduction to framebuffers in WebGL. Also covers renderbuffers, attachments, and rendering to textures.
WebGL2 Textures
An introduction to textures in WebGL, including texture atlases, data textures, sampling, and projection mapping.
WebGL2 3D
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.
WebGL2 Scene Graphs
An introduction to the scene graph data structure as it relates to OpenGL.
WebGL2 Transformation
An introduction to transformation in WebGL, including translation, rotation, scaling, orthographic projection, and the linear algebra necessary to perform transformations with matrices.
WebGL2 Varyings
An introduction to varyings in WebGL.
WebGL2 Uniforms
An introduction to uniforms in WebGL.
WebGL2 Attributes
An introduction to attributes, buffers, and vertex array objects in WebGL. Also covers locations and binding points.
WebGL2 Program Structure
A reference page for the typical structure of a program that uses OpenGL.
WebGL2 Shaders
An introduction to shaders (vertex and fragment), shader programs, rasterization, and GLSL.
WebGL2 Introduction
The introduction to my WebGL2 tutorial series.