3D computer graphics with Three.js

Three.js is the world’s most popular JavaScript library and API used for displaying 3D computer graphics in a web browser using WebGL. 

History of Three.js

Three.js was first released by Ricardo Cabello on GitHub in April 2010. It was originally developed in the ActionScript language used by Adobe Flash and later being ported to JavaScript in 2009. The benefits of javascript compared to actionscript is that JavaScript provided greater platform independence. Applications written in JavaScript would not need to be compiled by the developer beforehand, unlike Flash applications.

Branislav Uličný, an early contributor, wanted WebGL renderer capabilities in Three.js to exceed those of CanvasRenderer or SVGRenderer, therefore, his major contributions generally involve materials, shaders, and post-processing. After the introduction of WebGL 1.0 in March 2011. Joshua Koo built his first Three.js demo for 3D text in September 2011. His contributions frequently relate to geometry generation. 

Features

  • Effects: Anaglyph, cross-eyed, and parallax barrier
  • Scenes: Add or remove objects at run-time
  • Cameras: Perspective and orthographic. Controllers: trackball, FPS, path
  • Animation: Armatures, forward kinematics, inverse kinematics, morph, and keyframe
  • Lights: Ambient, direction, point, spot lights. Shadows: cast and receive
  • Materials: Lambert, Phong, smooth shading, textures
  • Shaders: access to full OpenGL Shading Language (GLSL) capabilities: lens flare, depth pass, and extensive post-processing library
  • Objects: meshes, particles, sprites, lines, ribbons, bones, and more – all with Level of detail
  • Geometry: plane, cube, sphere, torus, 3D text. Modifiers: lathe, extrude, and tube
  • Data loaders: binary, image, JSON, and scene
  • Utilities: full set of time and 3D math functions including frustum, matrix, quaternion, UVs, and more
  • Export and import: utilities to create Three.js-compatible JSON files from within: Blender, openCTM, FBX, Max, and OBJ
  • Support: API documentation is under construction. A public forum and wiki is in full operation
  • Examples: Over 150 files of coding examples plus fonts, models, textures, sounds, and other support files
  • Debugging: Stats.js, WebGL Inspector, Three.js Inspector