Computer graphics projects by Morgan McGuire and friends.
twitter email game jams industry blog articles research nvidia williams

The Graphics Codex

An essential reference for 3D computer graphics.

I compiled the equations, diagrams, and code that I most reference into this app and then added 13 chapters of lecture notes from the graphics courses I taught. Available in iOS app and Windows, OS X, Android, and Linux web editions.


Markdown everywhere, with diagrams and equations

A free technology that magically makes plain text documents look great when viewed in a browser. No plugin, installation, document compiling or exporting...just start writing.

G3D Innovation Engine

Graphics research and rapid prototyping in OpenGL and C++

A platform-independent, open source engine used for research and development throughout academia and industry for 15 years. The primary code library for the Graphics Codex and Computer Graphics Principles and Practice.

Computer Graphics: Principles and Practice

The definitive, comprehensive textbook on computer graphics for over three decades

This third edition of the classic "Foley and van Dam" text is completely rewritten to cover all major topics in the field. It is both broad and deep, covering topics as diverse as including GPU architecture, path tracing, shader programming, matrix transformations, the physics of light, subdivision surfaces, spatial data structures, and animation.

McGuire Computer Graphics Archive

Computer graphics benchmarks

Free, standardized computer graphics models and test images for use in research and prototyping in OBJ and PNG format.

Creating Games: Mechanics, Content, and Technology

Game development, from world-building to coding to project management

A practical introduction to game development for indie developers, hobbyists, and students.


Learn to program web and mobile games in JavaScript

A framework and examples for learning game programming the fun and easy way, using JavaScript in a web browser.


A teaching environment for young programmers

A modern variant of the classic LOGO language with a simple web integrated development environment and extensibility to animations.


The tiny fantasy console

A complete environment for creating tiny arcade games for the emulator of a ridiculously constrained hand-held retro console...that never existed. I'm really happy with the mathy programming language.

Project Rocket Golfing

An game of exploration and discovery for all ages on iPad, iPhone, and iPod Touch.

An infinite, procedurally-generated universe filled with ice planets, wormholes, aliens, verdant worlds, binary star systems, lost civilizations, and more. The further you explore, the more that the game changes. You will encounter new game features as you reach more distant galaxies.

Darwin Java AI programming game challenge I developed as an assignment at Williams College
include.js Adds client-side <include> tags to HTML
treelist.js Lightweight selectable and scrollable tree list UI for JavaScript
maze.js Perfect maze generator
2DOBB.h 2D oriented-bounding box intersection detection in C++
cardgen.js Playing card generator in HTML + CSS + JavaScript
cgpp3-support Minimalist multi-platform c++ code for loading, saving, and displaying images and 3D models from Computer Graphics: Principles & Practice
infix.scm Infix math macro for PLT MzScheme and DrScheme
Raycaster DOOM-style raycaster written in Java as a teaching example Software rasterizer written in Java as a teaching example Red black tree implementation and demo in Java Splay tree implementation and demo in Java
sort.cpp Elegant reference implementations of common sorting algorithms in C++
Tachyon 3D-pong game demo in Unity C#
Terrain.cpp Continuous-LOD/clipmap GPU terrain with multi-scale texturing
Platformer PICO-8 Lua code for a full-featured 2D platformer player character simulation
Particle.p8 High-performance PICO-8 particle system optimized with bitwise tricks
Sort.p8 High-performance PICO-8 heapsort with profiling example
Pathfinder.p8 Optimized single-function PICO-8 pathfinding library
Controller.p8 Procedural controller graphic with zero sprite memory, for instruction screens
Lowercase Escape Online tool for encoding PICO-8 mixed-case strings using escape codes
sdl_controllers PICO-8 + SDL controller mapping for kid-sized PowerA Xbox 360 controllers

game jams

Topā˜…Burn 1k
A 3D game in 1024 chars
Tiny Earth
Implicit surface shadertoy
Tiny Vulcan
Implicit surface shadertoy
Brick Room VR
Real props & virtual physics
Baby Bat Becomes A Hero
Kid-friendly metroidvania
PICO-8 Brick Breaker
Clone for teaching P8
Implicit surface bricks
One Game A Day Arcade
6 games coded in two hours
Star Map
Procedural space sky shader
Show Me Colors
Augmented reality web toy
Mandelbulb Explained
3D fractal tutorial
Star Journey
3D web space shooter
Espionage virtual board game
Tactical space adventure
A Thousand Moonlit Seas
Tron in the age of sail
Airburner: Vengeance
Dystopian top gun
Rock Rebel
Guitar-controller synth

blog posts

industry work

Trademarks of the above are owned by their respective companies and publishers.