Morgan McGuire

Textbooks · Software · Course Materials · Student Information

I served as a Professor of Computer Science at Williams College from 2006 to 2019 and taught additional courses in Art, English, and Comparative Literature on Film and Media Studies. I am now working as:

NVIDIA Research

Adjunct Professor
Cheriton School of Computer Science
Mathematics Department
University of Waterloo

Adjunct Professor
Electrical and Computer Engineering Department
McGill University

This page currently hosts educational materials that I produced at Williams for use at schools everywhere. See for research publications and recent contributions. I am migrating all teaching materials off of to CasualEffects.

"Science is but a perversion of itself, unless it has as its ultimate goal the betterment of humanity." -- Nikola Tesla


The Graphics Codex
McGuire, Casual Effects, eBook on iTunes and Amazon. Quarterly editions since 2012
Computer Graphics: Principles and Practice (3rd Edition)
Hughes, van Dam, McGuire, Sklar, Foley, Feiner, and Akeley, Addison-Wesley Professional, 2013
Creating Games: Mechanics, Content, and Technology
McGuire and Jenkins, A K Peters, 2008


G3D Innovation Engine
C++ rasterization and ray tracing graphics library for Windows, Linux, and MacOS.
Markdeep Document System
Browser-based markdown with extensions for diagrams, calendars, bibliographies, and LaTeX mathematics.
McGuire Computer Graphics Archive
Standardized computer graphics models for use in teaching and research.
codeheart.js Framework
JavaScript framework suitable for teaching introductory CS through game programming.
Darwin 2.2
Java toolset and library for an agent programming video game assignment suitable for use in a first-year computer science course.

Also see my open source repositories with many small utilities and assignment support code frameworks at


CS/ARTS 107:Creating GamesF07, S11, S12, S13, S15, S17
CS 134:Introduction to Computer ScienceF06, F07, F11
CS 136:Data Structures & Advanced ProgrammingS08, S11, F11, F12, F14, F15, S17
COMP 258/ENGL 274:An Introduction to Film and Media StudiesF16
CS 205/ARTH 205/ENGL 203:Cinematography in the Digital AgeS16
CS 334:Principles of Programming LanguagesS09
CS 371:Computational GraphicsS07, F08, F10, F12, F14, F16
CS 372T:Visual Media RevolutionF15
SIGGRAPH:Stylized Rendering in GamesJul10
SIGGRAPH:Filtering Approaches for Real-Time Anti-AliasingAug11
Winter Study:CSCI 12: Creating Games 2007, CSCI/PHYS 12: 3D Printer Construction 2013

Information for Students

CS Majors
Prof. Albrecht's Class Planning Worksheet