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

2024 2023 2022 2021 2020 2019 2018 2017
  • Wyman and McGuire, Improved Alpha Testing Using Hashed Sampling, IEEE Transactions on Visualization and Computer Graphics, April 14, 2017, 12 pages
  • Mara, McGuire, Bitterli, and Jarosz, An Efficient Denoising Algorithm for Global Illumination, HPG 2017, ACM SIGGRAPH / Eurographics High Performance Graphics, July 27, 2017, 7 pages
  • McGuire, Mara, Nowrouzezahrai, and Luebke, Real-Time Global Illumination using Precomputed Light Field Probes, I3D 2017, ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games, February 25, 2017, 11 pages - Best Paper Award
  • Wyman and McGuire, Hashed Alpha Testing, I3D 2017, ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games, February 25, 2017, 11 pages
  • McGuire and Mara, Phenomenological Transparency, IEEE Transactions of Visualization and Computer Graphics, IEEE Transactions of Visualization and Computer Graphics, no. 5, May, 2017
2016 2015
  • Crassin, Luebke, Mara, McGuire, Oster, Sloan, and Wyman, CloudLight: A System for Amortizing Indirect Lighting in Real-Time Rendering, Journal of Computer Graphics Techniques (JCGT), vol. 4, no. 4, 1-27, 2015
  • Lesser, McGuire, and Lopes, Experimental Validation of Computer Graphics Microfacet Theory, Poster at the Grace Hopper Celebration of Women in Computing, Poster at the Grace Hopper Celebration of Women in Computing, October, 2015 - First place, GHC/ACM Undergraduate Research Competition
  • Crassin, McGuire, Fatahalian, and Lefohn, Aggregate G-Buffer Anti-Aliasing, Proceedings of the ACM Symposium on Interactive 3D Graphics and Games, in Proceedings of the ACM Symposium on Interactive 3D Graphics and Games 2015 (I3D'15), February, 2015, 11 pages - Best Paper Awards 2nd Place
2014 2013 2012
  • Bukowski, Hennessy, McGuire, and Osman, Scalable High-Quality Motion Blur and Ambient Occlusion, SIGGRAPH 2012 Courses, the Advances in Real-Time Rendering course at SIGGRAPH 2012, August, 2012
  • Enderton and McGuire, Stochastic Rasterization, Presentation at GTC 2012, GPU Technology Conference Talk, May, 2012, 65 pages
  • McGuire, Mara, and Luebke, Scalable Ambient Obscurance, High-Performance Graphics 2012, in Proceedings of ACM SIGGRAPH / Eurographics High-Performance Graphics 2012 (HPG '12), June, 2012
  • McGuire, Hennessy, Bukowski, and Osman, A Reconstruction Filter for Plausible Motion Blur, Proceedings of the ACM Symposium on Interactive 3D Graphics and Games, in Proceedings of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games 2012 (I3D'12), February, 2012
2011
  • McGuire, Efficient Triangle and Quadrilateral Clipping within Shaders, Journal of Graphics, GPU, and Game Tools, The Journal of Graphics, GPU, and Game Tools, vol. 15, no. To appear, 2011, TBD pages
  • Jimenez, Guiterrez, Yang, Reshetov, Demoreuille, Berghoff, Perthuis, Yu, McGuire, Lottes, Malan, Andreev, and Sousa, Filtering Approaches for Real-Time Anti-Aliasing, ACM SIGGRAPH 2011 Courses, August 2011
  • McGuire, Osman, Bukowski, and Hennessy, The Alchemy screen-space ambient obscurance algorithm, High-Performance Graphics 2011, in Proceedings of ACM SIGGRAPH / Eurographics High-Performance Graphics 2011 (HPG'11), August, 2011
  • McGuire and Enderton, Colored Stochastic Shadow Maps, Proceedings of the ACM Symposium on Interactive 3D Graphics and Games, in Proceedings of the ACM Symposium on Interactive 3D Graphics and Games 2011 (I3D'11), February 20, 2011
  • Chajdas, McGuire, and Luebke, Subpixel Reconstruction Antialiasing, Proceedings of the ACM Symposium on Interactive 3D Graphics and Games, in Proceedings of the ACM Symposium on Interactive 3D Graphics and Games 2011 (I3D'11), February 20, 2011
  • Shirley, Aila, Cohen, Enderton, Laine, Luebke, and McGuire, A Local Image Reconstruction Algorithm for Stochastic Rendering, Proceedings of the ACM Symposium on Interactive 3D Graphics and Games, in Proceedings of the ACM Symposium on Interactive 3D Graphics and Games 2011 (I3D'11), February 20, 2011
2010 2009 2008 2007
  • Chadwicke Jenkins, Wrotek, and McGuire, Dynamic humanoid balance through inertial control, IEEE-RAS 7th International Conference on Humanoid Robots (Humanoids 2007), IEEE-RAS 7th International Conference on Humanoid Robots, 2007
  • Lewis, McGuire, and Fox, Mapping the mental space of game genres, Sandbox '07: Proceedings of the 2007 ACM SIGGRAPH symposium on Video games, Presented at ACM SIGGRAPH Symposium on Video Games 2007., New York, NY, USA: ACM, 2007, pp. 103-108
  • McGuire, Single-pass Shadow Volumes for Arbitrary Meshes, SIGGRAPH '07: ACM SIGGRAPH 2007 posters, Poster presented at ACM SIGGRAPH 2007., New York, NY, USA: ACM, 2007, 177 pages
  • Barnes, Phillips, Coumans, McGuire, Bradski, and Roosendaal, Open Source Toolchains, in Proceedings of the 2007 ACM SIGGRAPH symposium on Video games, August 2007
  • McGuire, Matusik, Chen, F. Hughes, Pfister, and Nayar, Optical splitting trees for high-precision monocular imaging, IEEE Comput. Graph. Appl., Computer Graphics & Applications 2007, vol. 27, no. 2, 2007, pp. 32-42
2006
  • Wrotek, Chadwicke Jenkins, and McGuire, World space torques for character animation under simulation, SIGGRAPH '06: ACM SIGGRAPH 2006 Sketches}, The SIGGRAPH 2006 Sketches program, New York, NY, USA: ACM, 2006, 30 pages
  • McGuire and Matusik, Real-time triangulation matting using passive polarization, SIGGRAPH '06: ACM SIGGRAPH 2006 Sketches, Presented at the SIGGRAPH 2006 Sketches program, New York, NY, USA: ACM, 2006, 88 pages
  • Wrotek, Chadwicke Jenkins, and McGuire, Dynamo: Dynamic, data-driven character control with adjustable balance, sandbox '06: Proceedings of the 2006 ACM SIGGRAPH symposium on Videogames, ACM Sandbox Symposium on Video Games 2006, New York, NY, USA: ACM, 2006, pp. 61-70
  • McGuire, Matusik, and Yerazunis, Practical, real-time studio matting using dual imagers, Eurographics Symposium on Rendering 2006, 2006
  • McGuire and Fein, Real-time cartoon rendering of smoke and clouds, NPAR '06: Proceedings of the 4th international symposium on Non-photorealistic animation and rendering, in Proceedings of ACM SIGGRAPH Symposium on Non Photorealistic Animation and Rendering (NPAR'06), 2006, pp. 21-26
  • McGuire, Stathis, Pfister, and Krishnamurthi, Abstract Shade Trees, I3D '06: Proceedings of the 2006 symposium on Interactive 3D graphics and games, in Proceedings of ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games (I3D'06), New York, NY, USA: ACM, 2006, pp. 79-86 - Harvard Extension School '05 Best Thesis Award
  • McGuire, A real-time, controllable simulator for plausible smoke, Brown University, Brown University Technical Report 2006., March, 2006
2005
  • McGuire, Matusik, Pfister, F. Hughes, and Durand, Defocus Video Matting, ACM Trans. Graph., ACM SIGGRAPH 2005, vol. 24, no. 3, New York, NY, USA: ACM Press, 2005, pp. 567-576
  • McGuire, Computational Videography with a Single-Axis, Multi-Parameter Lens Camera, Brown University, Ph.D. Thesis at the Brown University Computer Science Department, August, 2005
  • McGuire and Sibley, A Heightfield on an Isometric Grid, Department of Computer Science at Brown University, ACM SIGGRAPH 2004 Sketch, Technical Report CS-05-14, October, 2006
  • Becker, Greenlee, Lemmerman, McGuire, Musurca, and Wardrip-Fruin, Cave Writing: Toward a Platform for Literary Immersive VR, ACM SIGGRAPH 2005 Sketch, August 2, 2005
  • McGuire, The SuperShader, ShaderX^4, Published in ShaderX4., 2005, pp. 485-498
  • McGuire and Matusik, Defocus difference matting, SIGGRAPH Sketch, ACM SIGGRAPH 2005 Sketch, August 2, 2005
  • McGuire, Hughes, Matusik, Pfister, Durand, and Nayar, A Configurable Single-Axis, Multi-Parameter Lens Camera, Poster at the Symposium on Computational Photography and Video, MIT, May 24, 2005
  • Wrotek, Rice, and McGuire, Real-Time Collision Deformations, Journal of Graphics Tools, Journal of Graphics Tools 2005 (JGT'05)., vol. 10, no. 5, 2005 - 1st place in ACM SIGGRAPH '04 Student Research Competition
  • Vetro, McGuire, Matusik, Behrens, Lee, and Pfister, Multiview video test sequences from MERL for the MPEG multiview working group. ISO/IEC JTC1/SC29/WG11 Document m12077, April 2005
  • McGuire and McGuire, Steep Parallax Mapping, I3D 2005 Poster, I3D 2005 Poster; Brown Web Report, April 1, 2005
2004 2003 2002 2001 2000 1999
  • S. Stone, Le Moigne, and McGuire, The Translation Sensitivity of Wavelet-Based Registration, IEEE Trans. Pattern Anal. Mach. Intell., IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 21, no. 10, Washington, DC, USA: IEEE Computer Society, 1999, pp. 1074-1081
1998 1997