Computer graphics research, education, and personal projects by Morgan McGuire and colleagues.
linkedin bluesky mastodon email game jams industry blog research


Markdeep

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.



Quadplay✜

Fantasy console in a web browser

A free and open source fantasy console and development environment for hobby programming, game jams, and teaching. Quadplay✜ uses a Python-like scripting language, supports up to four players, and provides hundreds of built-in sprites, sounds, and fonts to get you started.



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.



G3D Innovation Engine

Graphics research and rapid prototyping in OpenGL and C++

An open source engine used for research and development throughout academia and industry for 20 years on Windows, Linux, and MacOS. The primary code library for the Graphics Codex and Computer Graphics Principles and Practice.



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.



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.



The Sailing Codex

A friendly guide to daysailing, racing, and cruising

A clear and friendly guide to sailboats for beginners and intermediate sailors from lakes to oceans.



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.



TurtleScript

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.



Project Rocket Golfing

A 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.


jschat Peer-to-Peer WebRTC MediaStream video chat entirely in browser
Darwin Java AI programming game challenge assignment I developed at Williams College
include.js Adds client-side <include> tags to HTML
treelist.js Lightweight selectable and scrollable tree list UI for JavaScript
LoadManager.js Recursive asset tree loader
maze.js Perfect maze generator
vectorify.js Vector operations and operator overloading for JavaScript
menu.js Lightweight HTML5 dropdown menus
codeheart.js Learn to program web and mobile games in JavaScript
nano JAMMER The 64x64 tweetjam fantasy console
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
Rasterizer.java Software rasterizer written in Java as a teaching example
RedBlack.java Red black tree implementation and demo in Java
SplayTree.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

Mini Mecha
Turn Based Strategy
Drop Bloq
MIDI Pad Puzzler
Black Firmament
Epic fleet battles
Gravity
Orbital dogfight
Duality
Dual-space Duel
Rescue Roguelike
Tactical adventure
Across the Lake
Cozy infinite runner
Beyond Control
Wonky robot racing
R.P.S.
RPS battle royale
Serpitron
1-4 player Snake
Ice Time
1-4P hockey
quadpaddle
1-4P coop Breakout
Top★Burn 1k
A 3D game in 1024 chars
Tiny Earth
Implicit surface shadertoy
Tiny Vulcan
Implicit surface shadertoy
Baby Bat Becomes A Hero
Kid-friendly metroidvania
PICO-8 Brick Breaker
Clone for teaching P8
LEGO
Implicit surface bricks
Brick Room VR
Real props & virtual physics
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
Operatives
Espionage virtual board game
Starlight
Tactical space adventure
A Thousand Moonlit Seas
Tron in the age of sail
Airburner: Vengeance
Dystopian top gun

blog posts

Video Lectures
Research
Film Criticism
Computational Art
Game Criticism and Design
Board Game Mods
Computer Science

industry experience

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

research