|Original author(s)||Mozilla Foundation|
|Developer(s)||Khronos WebGL Working Group|
|Initial release||March 3, 2011|
2.0 / January 17, 2017
Shaders in WebGL are expressed directly in GLSL and passed to the WebGL API as textual strings. The WebGL implementation compiles these shader instructions to GPU code. This code is executed for each and every vertex sent through the API and for each pixel rasterized to the screen.
WebGL evolved out of the Canvas 3D experiments started by Vladimir Vukićević at Mozilla. Vukićević first demonstrated a Canvas 3D prototype in 2006. By the end of 2007, both Mozilla and Opera had made their own separate implementations.
In early 2009, the non-profit technology consortium Khronos Group started the WebGL Working Group, with initial participation from Apple, Google, Mozilla, Opera, and others. Version 1.0 of the WebGL specification was released March 2011. As of March 2012, the chair of the working group is Ken Russell.
Early applications of WebGL include Zygote Body. In November 2012 Autodesk announced that they ported most of their applications to the cloud running on local WebGL clients. These applications included Fusion 360 and AutoCAD 360.
Development of the WebGL 2 specification started in 2013 with final in January 2017. This specification is based on OpenGL ES 3.0. First implementations are in Firefox 51, Chrome 56 and Opera 43.
WebGL is widely supported in modern browsers. However its availability is dependent on other factors like the GPU supporting it. The official WebGL website offers a simple test page. More detailed information (like what renderer the browser uses, and what extensions are available) is provided at third-party websites.
There also has been a rapid emergence of game engines for WebGL, both 2D and 3D, including Unreal Engine 4 and Unity. The Stage3D/Flash-based Away3D high-level library also has a port to WebGL via TypeScript. A more light-weight utility library that provides just the vector and matrix math utilities for shaders is sylvester.js. It is sometimes used in conjunction with a WebGL specific extension called glUtils.js.
There are also some 2D libraries built on top of WebGL like Cocos2d-x or Pixi.js, which were implemented this way for performance reasons, in a move that parallels what happened with the Starling Framework over Stage3D in the Flash world. The WebGL-based 2D libraries fall back to HTML5 canvas when WebGL is not available.
Like for any other graphics API creating content for WebGL scenes requires using a regular 3D content creation tool and exporting the scene to a format that is readable by the viewer or helper library. Desktop 3D authoring software such as Blender, Autodesk Maya or SimLab Composer can be used for this purpose. Particularly, Blend4Web allows a WebGL scene to be authored entirely in Blender and exported to a browser with a single click, even as a standalone web page. There are also some WebGL-specific software such as CopperCube and the online WebGL-based editor Clara.io. Online platforms such as Sketchfab and Clara.io allow users to directly upload their 3D models and display them using a hosted WebGL viewer.
Additionally, Mozilla Foundation, in its Firefox browser, has implemented built-in WebGL tools starting with version 27 that allow editing vertex and fragment shaders. A number of other debugging and profiling tools have also emerged.
Adobe Animate (formerly Adobe Flash Professional, Macromedia Flash, and FutureSplash Animator) is a multimedia authoring and computer animation program developed by Adobe Systems.Animate is used to design vector graphics and animation for television programs, online video, websites, web applications, rich internet applications, and video games. The program also offers support for raster graphics, rich text, audio and video embedding, and ActionScript scripting. Animations may be published for HTML5, WebGL, Scalable Vector Graphics (SVG) animation and spritesheets, and legacy Flash Player (SWF) and Adobe AIR formats.It was first released in 1996 as FutureSplash Animator, and then renamed Macromedia Flash upon its acquisition by Macromedia. It was created to serve as the main authoring environment for the Adobe Flash platform, vector-based software for creating animated and interactive content. It was renamed Adobe Animate in 2013 to more accurately reflect its market position then, since over a third of all content created in Animate uses HTML5.Babylon.js
Blend4Web is a free and open source framework for creating and displaying interactive 3D computer graphics in web browsers.Browser game
A browser game is a video game that is played via the World Wide Web using a web browser. Browser games can be run using standard web technologies or browser plug-ins. The creation of such games usually involves use of standard web technologies as a frontend and other technologies to provide a backend. Browser games include all video game genres and can be single-player or multiplayer. Browser games are also portable and can be played on multiple different devices, web browsers, and operating systems.
Browser games come in many genres and themes that appeal to both regular and casual players. Multiple browser games have developed beyond the online platform to become large titles or franchises sold physically in stores, in online marketplaces like Steam or XBLA, or in decentralized distribution platforms such as itch.io. Some notable titles are Transformice, Alien Hominid, Bejeweled, Bloons, Club Penguin, Cookie Clicker, and Meat Boy.Canvas element
The canvas element is part of HTML5 and allows for dynamic, scriptable rendering of 2D shapes and bitmap images. It is a low level, procedural model that updates a bitmap and does not have a built-in scene graph; however through WebGL allows 3D shapes and images and so-on. HTML5 Canvas also helps in making 2D games.Clara.io
Clara.io is a web-based freemium 3D computer graphics software developed by Exocortex, a Canadian software company. Clara.io was announced in July 2013 and first presented as part of the official SIGGRAPH 2013 program later that month. By November 2013 when the open beta period started, Clara.io had 14,000 registered users. Clara.io claimed to have 26,000 registered users in January 2014, which grew to 85,000 by December 2014.Freeciv
Freeciv is a single- and multiplayer, turn-based strategy game for workstations and personal computers inspired by the proprietary Sid Meier's Civilization series. It is available for most desktop computer operating systems and available in an online browser based version. Released under the GNU General Public License, Freeciv is free and open source software. The game's default settings are closest to Civilization II, in both gameplay and graphics, including the units and the isometric grid.
Players take the role of tribal leaders in 4000 B.C. who must guide their peoples through the centuries. Over time, new technologies are discovered, which allow the construction of new city buildings and the deployment of new units. Players can wage war on one another or form diplomatic relationships.
The game ends when one civilization has eradicated all others or accomplished the goal of space colonization, or at a given deadline. If more than one civilization remains at the deadline, the player with the highest score wins. Points are awarded for the size of a civilization, its wealth, and cultural and scientific advances.GlTF
glTF (GL Transmission Format) is a file format for 3D scenes and models using the JSON standard. It is described by its creators as the "JPEG of 3D." It is an API-neutral runtime asset delivery format developed by the Khronos Group 3D Formats Working Group and announced at HTML5DevConf 2016. The intention is that glTF be an efficient, interoperable asset delivery format that compresses the size of 3D scenes and minimizes runtime processing by applications using WebGL and other APIs. glTF also defines a common publishing format for 3D content tools and services.Google Chrome Experiments
A graphics library is a program library designed to aid in rendering computer graphics to a monitor. This typically involves providing optimized versions of functions that handle common rendering tasks. This can be done purely in software and running on the CPU, common in embedded systems, or being hardware accelerated by a GPU, more common in PCs. By employing these functions, a program can assemble an image to be output to a monitor. This relieves the programmer of the task of creating and optimizing these functions, and allows them to focus on building the graphics program. Graphics libraries are mainly used in video games and simulations.
Some APIs use Graphics Library (GL) in their name, notably OpenGL and WebGL.Internet Explorer 11
Internet Explorer 11 (IE11) is the eleventh and final version of the Internet Explorer web browser by Microsoft. It was officially released on October 17, 2013 for Windows 8.1 and on November 7, 2013 for Windows 7. The browser was also shipped with Windows 10 on its release on July 29, 2015, but Microsoft Edge is the default browser in this version of Windows. It is the default browser shipped with Windows Server 2016 and Windows Server 2019. After January 12, 2016, only the most recent version of Internet Explorer to be offered for installation on any given Windows operating system will continue to be supported with security updates, lasting until the end of the support lifecycle for that Windows operating system. On Windows 7, 8.1, and 10, only Internet Explorer 11 will receive security updates for the remainder of those Windows versions' support lifecycles.While Internet Explorer 10 will reach end of support on January 31, 2020, IE 11 will be the only supported version of Internet Explorer on Windows Server 2012 and Windows Embedded 8 Standard. IE 11 will be available for piloting on Windows Server 2012 and Windows Embedded 8 Standard starting Spring of 2019.List of WebGL frameworks
Frameworks are available to create WebGL content quickly and easily without building from the ground up.
Note: the following list mixes WebGL libraries with game engines as well as cloud services without any distinctions.List of game engines
Game engines are tools available for game designers to code and plan out a game quickly and easily without building one from the ground up. Whether they are 2D or 3D based, they offer tools to aid in asset creation and placement.OpenFL
Visual Studio Code (with plugin)
HaxeDevelop (supports Code folding, code refactoring and interactive debugging)
Sublime Text (with plugin)
IntelliJ IDEA (with plugin)OpenFL contains Haxe ports of major graphical libraries such as Away3D, Starling, BabylonJS and DragonBones. Due to the multi-platform nature of OpenFL, such libraries usually run on multiple platforms such as HTML5, Adobe AIR and Android/iOS.
More than 500 video games have been developed with OpenFL, including the BAFTA-award-winning game Papers, Please, Rymdkapsel, Lightbot and Madden NFL Mobile.PlayCanvas
PlayCanvas is an open-source 3D game engine/interactive 3D application engine alongside a proprietary cloud-hosted creation platform that allows for simultaneous editing from multiple computers via a browser-based interface. It runs in modern browsers that support WebGL, including Mozilla Firefox and Google Chrome. The engine is capable of rigid-body physics simulation, handling three-dimensional audio and 3D animations.
PlayCanvas has gained the support of ARM, Activision and Mozilla.The PlayCanvas engine was open-sourced on June 4, 2014.In April 2019 BusinessInsider.com reported that the company was acquired by Snap Inc. in 2017Sketchfab
Sketchfab is a platform to publish, share, discover, buy and sell 3D, VR and AR content. It provides a viewer based on the WebGL and WebVR technologies that allows users to display 3D models on the web, to be viewed on any mobile browser, desktop browser or Virtual Reality headset.
The company behind it is today based in Paris and New York City. Sketchfab took part in the Spring 2013 TechStars New York City startup accelerator program, raised $2 million in December 2013 and $7 million in June 2015.Three.js
The virtual world framework (VWF) is a means to connect robust 3D, immersive, entities with other entities, virtual worlds, content and users via web browsers. It provides the ability for client-server programs to be delivered in a lightweight manner via web browsers, and provides synchronization for multiple users to interact with common objects and environments. For example, using VWF, a developer can take video lesson plans, component objects and avatars and successfully insert them into an existing virtual or created landscape (such as EDGE or Open Sim), interacting with the native objects and users via a VWF interface.VWF further opens the door to interface different training content, simulations, objects, users and locations; which will extend and expand the scope of training and education. (Imagine running a tank simulation with aviation assets, provided by two different simulations suites, but executed together and passing imagery and sensor data between them, working over a common landscape and feeding a constructive mapping simulation run on a third platform, all seamlessly and transparent to remote users via their browsers). The VWF is meant as a useful tool to interact with differing types of entities (objects, avatars, simulations, spaces). As an open-source tool protected under the Apache II license, VWF is free and accessible to any number of developers who can create content and expand its scope and functionality. The VWF delivers its interactivity using the web, creating an opportunity to align mismatched objects or environments. VWF is under development to work with Massively Multiplayer Online Role Playing Games (MMORPG) such as EDGE, and ideally will be developed to interface with the latest object encodings (such as Unity and MP4), environments (such as OpenSim MOSES) and other simulations platforms in order to create a truly agnostic interfacing tool.
Standards of the Khronos Group