Three.js explained

Three.js
Author:Ricardo Cabello (Mr.doob)
Developer:Three.js Authors[1]
Released:[2]
Programming Language:JavaScript, GLSL
Discontinued:no
Genre:JavaScript library
License:MIT

Three.js is a cross-browser JavaScript library and application programming interface (API) used to create and display animated 3D computer graphics in a web browser using WebGL. The source code is hosted in a repository on GitHub.

Overview

Three.js allows the creation of graphical processing unit (GPU)-accelerated 3D animations using the JavaScript language as part of a website without relying on proprietary browser plugins.[3] [4] This is possible due to the advent of WebGL,[5] a low-level graphics API created specifically for the web.[6]

High-level libraries such as Three.js or GLGE, Scene.js, PhiloGL, and many more make it possible to author complex 3D computer animations for display in the browser without the effort required for a traditional standalone application or a plugin.[7]

History

Three.js was first released by Ricardo Cabello on GitHub in April 2010. The origins of the library can be traced back to his involvement with the demoscene in the early 2000s.[8] The code was originally developed in the ActionScript language used by Adobe Flash, later being ported to JavaScript in 2009. In Cabello's mind, there were two strong points that justified the shift away from ActionScript: Firstly, JavaScript provided greater platform independence. Secondly, applications written in JavaScript would not need to be compiled by the developer beforehand, unlike Flash applications.

Additional contributions by Cabello include API design, CanvasRenderer, SVGRenderer, and being responsible for merging the commits by the various contributors into the project.

With the advent of WebGL, Paul Brunt was able to implement the new rendering technology quite easily as Three.js was designed with the rendering code as a module rather than in the core itself.[9] Branislav Uličný, an early contributor, started with Three.js in 2010 after having posted a number of WebGL demos on his own site. He wanted WebGL renderer capabilities in Three.js to exceed those of CanvasRenderer or SVGRenderer. His major contributions generally involve materials, shaders, and post-processing.

Soon after the introduction of WebGL 1.0 on Firefox 4 in March 2011, Joshua Koo came on board. He built his first Three.js demo for 3D text in September 2011. His contributions frequently relate to geometry generation.

Starting from version 118, Three.js uses WebGL 2.0 by default. Older version of the standard is still available via WebGL1Renderer class.[10]

Three.js has over 1700 contributors on GitHub.

Features

Three.js includes the following features:[11]

Three.js runs in all browsers supported by WebGL 1.0.

Three.js is made available under the MIT License.

See also

Further reading

Notes and References

  1. Web site: Three.js/license. github.com/mrdoob. 20 May 2012.
  2. Web site: First commit . github.com/mrdoob. 20 May 2012.
  3. [O3D]
  4. [Unity (game engine)]
  5. News: Khronos Releases Final WebGL 1.0 Specification. 2 June 2012. Khronos Group. March 3, 2011.
  6. Web site: 2011-07-19. WebGL. 2022-01-22. The Khronos Group. en.
  7. Web site: Crossley. Rob. Study: Average dev costs as high as $28m. https://web.archive.org/web/20100113144801/http://www.develop-online.net/news/33625/Study-Average-dev-cost-as-high-as-28m. dead. 13 January 2010. Intent Media Ltd. 2 June 2012. 11 January 2010.
  8. Web site: NVScene 2015 Session: Reinventing The Wheel - One Last Time (Ricardo Cabello). NVScene. YouTube.
  9. Web site: 2012-05-21. Three.js White Paper. Github.com. 2013-05-09.
  10. Release r118 · mrdoob/three.js . 2023-05-24.
  11. Web site: mrdoob . Features mrdoob/three.js Wiki GitHub . Github.com . 2012-11-26 . 2013-05-09.
  12. Web site: Stats.js . Github.com . 2013-05-09.
  13. Web site: WebGL Inspector . Benvanik.github.com . 2013-05-09.
  14. Web site: Three.js Inspector Labs . Zz85.github.com . 2013-05-09.
  15. Web site: three.js examples. threejs.org.