One important development that has made 3D WebGL™ possible is the introduction of the canvas element in the HyperText Markup Language specification version 5 (HTML5). The canvas element allows low-level access to a viewport that can be drawn in and maintained in a style consistent with existing types of rendering APIs in other computer programming languages. The WebGL™ API works with this accelerated canvas to provide the ability to render complex scenes very quickly without having to rely on software emulation across different platforms or implementations.
The 3D WebGL™ API not only uses the canvas element, but also is based on the Open Graphics Library for Embedded Systems (OpenGL ES®). This is a portable version of the standard OpenGL® library that is designed to be portable not only between different computer operating systems, but also across any device that requires the use of low-level 3D graphics. This small footprint allows the library to be integrated into any browser for nearly any device.
The implementation of 3D WebGL™ permits the development of interactive programs that can be run directly from within a website or downloaded and run as a standalone application within the web browser. It can be used to create 3D video games, education software, simulations and 3D visualization software for business and scientific research. By using the browser as the wrapper application, the 3D environments can be developed without having to worry about repetitive boilerplate code for basic interfaces.
One of the largest drawbacks to using 3D WebGL™, and one that is preventing its widespread acceptance with certain software and hardware manufacturing companies, is the security risk it presents. The ability for a program to access the GPU can give a malicious program the ability to force the host computer system to execute harmful code. It also has been shown that denial of service (DOS) attacks are possible using the WebGL™ API. For this reason, there are some major computer companies that refuse to fully support WebGL™ in their products.