WebGL/three.js Resources

I run across WebGL resources and then tend to lose track of them, so I made this page. Feel free to send me suggestions at [email protected]


Does this browser support WebGL? Test here.
What WebGL extensions does this browser support? Test here, and here, and here, and here.
What browser versions support WebGL? Find out here.
What are the statistics on WebGL support for mobile devices and PCs? Find out here.
How do I start up my browser for local development? Chrome: --allow-file-access-from-files else check the three.js page or Udacity page.
What's my GPU info on Chrome? Paste in this URL: chrome://gpu/
How do I use native OpenGL instead of ANGLE for Windows Chrome and Firefox? Find out here.
What other command line options are there for Chrome? Find out here.
You just want eye candy? Try here for starters.

Reference Pages

Khronos Wiki.
Blacklist of GPUs that don't run WebGL.
OpenGL ES Shading Language functions, used for WebGL/Three.js shaders.


Spector.js for examining renders and state. Documentation.
Debuggers and profilers, browser editors, Cozzi's list (old)
Firefox Canvas Debugger
Shader compile/link performance
Chrome shader editor
Texture Format Tester
Analyzing traces

Courses and Tutorials

Ed Angel's Coursera course and reflections
Udacity three.js MOOC course signup, resources, and syllabus
Barcelona MOOC course homepage
WebGL Lessons: Three.js Shaders on github
David Scott Lyons' amazing slideset intro to Three.js
Steven Wittens' lovely computer graphics lessons using Three.js, and WebGL intro demofest
Tarek Sherif's tutorial slide presentation and repository.
SIGGRAPH University introduction to WebGL

Developer List

Google Groups WebGL Dev List


Homepage, Lee Stemkoski's demos, Yomotsu examples
Quick reference, alphabetical xref and API, wiki docs, object overview
Thumbnails of examples
useful links page
Demos: Google+, at Learning Three.js, curated gallery, lmv.rocks
Twitter news: #threejs, #webgl
Source code
Intro "live" slideset (and my own fork), basics article.

Other Frameworks

Shadertoy - play with, test, and share procedural shaders
OSG.JS - used by Sketchfab and others; examples
Goo Create - for game creation
WhitestormJS - add physics atop Three.js
A-FRAME - for VR, built atop three.js
Cesium - for globes and maps
deck.gl - by Uber, for large data set visualization
Still more options
Wikipedia list, game engine list

File Formats




WebGL 2

Does this browser support WebGL 2? Test here.
What percentage of various systems support WebGL 2 and its various extensions? Check here.
Specification, related OpenGL ES 3.0 specification
How to start using WebGL 2.
New features in WebGL 2.
Samples and examples, and bugs.

PicoGL.js - a minimal WebGL 2 rendering library; tutorial
SIGGRAPH 2016 Birds of a Feather video
Brandon Jones' blog
How Cesium creates a WebGL 2 context




cover Learning Three.js: The JavaScript 3D Library for WebGL - Second Edition, by Jos Dirksen, Packt Publishing, March 2015 (Table of Contents and samples, runnable code, Github, Google Books sample).
cover download for free WebGL Insights, edited by Patrick Cozzi, CRC Press, July 2015 (book's website, blog), download for free.
cover Three.js Cookbook, by Jos Dirksen, Packt Publishing, January 2015 (Table of Contents and samples, runnable code, Github, Google Books sample).
cover Three.js Essentials, by Jos Dirksen, Packt Publishing, July 2014 (Table of Contents and samples, Github, Google Books sample).
cover Interactive Computer Graphics with WebGL (Seventh Edition), by Edward Angel and Dave Shreiner, Addison-Wesley, March 2014 (more info, figures and source code).
cover Programming 3D Applications with HTML5 and WebGL: 3D Animation and Visualization for Web Pages, by Tony Parisi, O'Reilly, March 2014 (more info and sample, github code, Google Books sample).
cover WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL, by Kouichi Matsuda, Rodger Lea, Addison-Wesley, July 2013 (book's website, PDF of table of contents and sample, Google Books sample).

Thanks to Patrick Cozzi for collecting many of the links to tools.

Contact: Eric Haines