Awesome WebGL
This is a curated list of awesome WebGL libraries, resources and much
more.
What is WebGL
WebGL (Web Graphics Library) is a JavaScript API for rendering interactive
3D computer graphics and 2D graphics within any compatible web browser
without the use of plug-ins. WebGL is integrated completely into all the
web standards of the browser allowing GPU accelerated usage of physics and
image processing and effects as part of the web page canvas.
WebGL elements can be mixed with other HTML elements and composited with
other parts of the page or page background. WebGL programs consist of
control code written in JavaScript and shader code that is executed on a
computer’s Graphics Processing Unit (GPU).
Contents
WebGL
All things dealing with WebGL
WebGL sub-categories
Articles
WebGL articles and/or blog posts (non-tutorials)
Blog Series
Blog series of WebGL topics
Books
Popular books about WebGL
-
Interactive Computer Graphics: A Top-Down Approach with WebGL
by Edward Angel and Dave Shreiner -
Suitable for undergraduate students in computer science and engineering,
for students in other disciplines who have good programming skills, and
for professionals interested in computer animation and graphics using
the latest version of WebGL.
-
Professional WebGL Programming
by Andreas Anyuru - Everything you need to know about
developing hardware-accelerated 3D graphics with WebGL.
-
Programming 3D Applications with HTML5 and WebGL
by Tony Parisi - Create high-performance, visually
stunning 3D applications for the Web, using HTML5 and related
technologies such as CSS3 and WebGL—the emerging web graphics standard.
-
WebGL Beginner’s guide
by Diego Cantor and Brandon Jones -
For JavaScript developer who wants to take the plunge into 3D web
development via WebGL.
-
WebGL Hotshot
by Mitch Williams - For web designer looking to expand
your knowledge of 3D graphics concepts and broaden your existing skill
set.
-
WebGL Insights
by Patrick Cozzi - Presents real-world techniques for
intermediate and advanced WebGL developers by assembling contributions
from experienced WebGL engine and application developers, GPU vendors,
browser developers, researchers, and educators.
-
WebGL Programming Guide: Interactive 3D Graphics Programming with
WebGL
by Kouichi Matsuda and Rodger Lea -
WebGL Programming Guide will help you get started quickly with
interactive WebGL 3D programming, even if you have no prior knowledge of
HTML5, JavaScript, 3D graphics, mathematics, or OpenGL.
Bug Reporting
Reporting bugs helps everyone in long run
GLSL Editors
Online GLSL Editors
NOTE:
WebGL must conform to The OpenGL ES Shading Language, Version 1.00
Official Specs for GLSL Version 1.00
Official Specs for Open ES Version 2.0.25
-
Fractal Lab - Online
fractal explorer allowing you to explore 2D and 2D fractal.
-
GLSL Sandbox - Online live editor
for fragment shaders.
-
GLSLbin - Fragment shader sandbox
supporting glslify.
-
Shader Toy - Most popular live
editor for fragment shaders.
-
ShaderFrog - WebGL Shader Editor
and Composer.
-
SHDR Editor - Live GLSL shader
editor, viewer and validator.
-
ShaderExpo -
Dependency free shader editor featuring inline error logs, auto
completions, models and textures loading.
References
WebGL references
Talks
WebGL related talks
Tools for development and debugging WebGL
-
Khronos Dev Tools
- Useful WebGL developer tools, intended to be used as an ES6 module.
-
Spector.js - Agnostic
JavaScript framework for exploring and troubleshooting your WebGL
scenes.
-
WebGL Inspector
- Tool inspired by gDEBugger and PIX with the goal of making the
development of advanced WebGL applications easier.
-
WebGl Playground -
The editor lets you work on the JavaScript code and the GLSL
vertex/fragment shaders (if you have any) at the same time in a
convenient way. Everything is organized, formatted and highlighted
properly, just as you would like.
-
WebGL Report - Way to view the
details of what your browser supports for WebGL.
-
WebGL Support Stats - Interactive
dashboard showing the support for WebGL features in different browsers
and devices.
-
WebGL Texture Tester
- Attempts to load one of every texture format supported by WebGL,
intended to quickly show which formats your browser/device supports.
-
Web Tracing Framework
- Set of libraries, tools, and visualizers for the tracing and
investigation of complex web applications.
-
Canvas Debugger
- Quick tutorial how to use Firefox’s developer tools to debug WebGL
Shaders.
-
Firefox Developer Tools
- The official list of all of Firefox’s debugger tools.
-
Shader Editor
- Quick tutorial how to use Firefox’s developer tools to debug WebGL
Shaders.
Tutorials
Online WebGL Tutorials (non-video)
Videos
WebGL Related Videos
WebGL 2
Information about the upcoming WebGL 2 specs
Anything pertaining to WebGL in general is found in the
WebGL section
WebGL 2 sub-categories
Articles
WebGL 2 articles and/or blog posts (non-tutorials)
References
WebGL 2 references
Tutorials
Videos
WebGL related Videos
WebVR
Information about different parts of the new and upcoming WebVR
ecosystem
All items related to more developers and less on where to find WebVR
content as entertainment
WebVR sub-categories
Articles
WebVR articles and/or blog posts (non-tutorials)
Blog Series
Maintained blog series of WebVR focused topics
WebVR designed platforms to experience
-
JanusVR - Webpages as collaborative
3D webspaces interconnected by portals.
References
WebVR references
Libraries
More detailed information about the different libraries can be found
in the Libraries directory.
2D
-
p2.js - 2D rigid body
physics engine written in JavaScript.
-
Phaser - Open source HTML5 2D game
framework for Canvas and WebGL, supports mobile web browsers.
-
PixiJS - powerful 2D Javascript
renderer based on WebGL.
-
Planck.js - 2D
physics engine for cross-platform HTML5 game development.
-
Stage.js - 2D Library
for cross-platform HTML5 game development.
Compute (GPGPU)
Computer Vision
-
GammaCV - WebGL accelerated Computer
Vision library for browser.
Particles
-
Phenomenon - Very
small, low-level WebGL library that provides the essentials to deliver a
high performance experience.
Maps and Visualizations
-
Cesium - Open-source library for
world-class 3D globes and maps.
-
Deck.gl - WebGL overlay suite for React
providing a set of highly performant data visualization overlays.
-
Luma.gl - WebGL2 powered framework for
GPU-powered data visualization and computation.
-
xeogl - Data-driven 3D visualization
engine on WebGL.
Math
-
glMatrix - Javascript matrix and
vector library for high performance WebGL apps.
-
Sylvester - Sylvester is a
vector, matrix and geometry library for JavaScript.
-
TWGL - Sole purpose is to make using
the WebGL API less verbose.
Rendering
-
GLBoost - Rendering
library for 3D graphic geeks.
-
GrimoireGL - Bridge between Web
engineers and CG engineers.
-
Hilo3d - WebGL
rendering engine for 3D games.
Physics
-
Ammo.js - Direct port
of the Bullet physics engine to JavaScript using Emscripten.
-
Cannon.js -
Lightweight and simple 3D physics engine for the web.
WebGL 2
-
PicoGL.js - Minimal
WebGL 2-only rendering library.
WebVR
-
A-Frame - Web framework for building
virtual reality experiences.
-
Hologram - Desktop app that let you
create and prototype WebVR in interactive way needing no previous coding
knowledge.
-
LÖVR - Simple framework for creating VR
with Lua.
-
React 360 - Build VR
websites and interactive 360 experiences with React.
-
Primrose -
Rapidly prototype VR applications in your browser.
Others
-
Babylon.js - Complete
JavaScript framework for building 3D games with HTML5, WebGL and Web
Audio.
-
Blend4Web - Tool for
interactive 3D visualization on the Internet.
-
ClayGL - WebGL graphic Library for
building scalable Web3D applications.
-
CopperLicht
- JavaScript library and WebGL 3D engine for creating games and 3D
applications.
-
GLGE - Javascript library intended to
ease the use of WebGL.
-
Lightgl.js -
Lightweight and explict library to help prototype.
-
OSG.js -
WebGL framework based on OpenSceneGraph concepts to interact with WebGL.
-
Pex-gl - JavaScript libraries
for computational thinking in Plask/Node.js and WebGL.
-
PlayCanvas - Game engine platform
to build interactive experiences.
-
Pocket.gl - Fully
customizable webgl shader sandbox to embed in your pages.
-
Regl - Light declarative and stateless
library, functional abstraction for WebGL.
-
Scene.js - Extensible WebGL-based
engine for high-detail 3D visualisation.
-
Three.js - Aimed to create an easy to
use, lightweight, 3D library.
-
Turbulenz -
Modular 3D and 2D game framework for making HTML5 powered games for
browsers, desktops and mobile devices.
-
Verge3D - an
artist-friendly toolkit for creating 3D web experiences.
-
Whitestorm.js - Framework for developing
3D web apps with physics.
Similar awesome lists
-
awesome - Curated
list of awesome lists.
-
awesome-opengl -
Curated list of awesome OpenGL libraries, debuggers and resources.
Inspired by awesome-… stuff.
-
awesome-vulkan -
Curated list of awesome Vulkan projects and ecosystem.
-
gamedev -
Awesome list about game development.
-
glTF - Runtime 3D
Asset Delivery designed for the web.
-
graphics-resources
- List of graphic programming resources.
Contributing
Please see
CONTRIBUTING
for details.
Testing
Travis CI testing automation thanks to
awesome_bot!
License
To the extent possible under law,
Spencer Fricke has waived all
copyright and related or neighboring rights to this work.