Package Exports
- three
- three/package.json
- three/three.js
- three/three.min
- three/three.min.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (three) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
three.js
JavaScript 3D library
The aim of the project is to create a lightweight 3D library with a very low level of complexity — in other words, for dummies. The library provides <canvas>, <svg>, CSS3D and WebGL renderers.
Examples — Documentation — Migrating — Help
Usage
Download the minified library and include it in your html. Alternatively see how to build the library yourself.
<script src="js/three.min.js"></script>This code creates a scene, then creates a camera, adds the camera and cube to the scene, creates a <canvas> renderer and adds its viewport in the document.body element.
<script>
var camera, scene, renderer;
var geometry, material, mesh;
init();
animate();
function init() {
camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.z = 1000;
scene = new THREE.Scene();
geometry = new THREE.CubeGeometry( 200, 200, 200 );
material = new THREE.MeshBasicMaterial( { color: 0xff0000, wireframe: true } );
mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
renderer = new THREE.CanvasRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
}
function animate() {
// note: three.js includes requestAnimationFrame shim
requestAnimationFrame( animate );
mesh.rotation.x += 0.01;
mesh.rotation.y += 0.02;
renderer.render( scene, camera );
}
</script>Change log
2013 02 15 - r56 (407,609 KB, gzip: 96,870 KB)
- Added
LineDashedMaterialsupport toCanvasRenderer. (sole) - Documentation improvements. (gero3, erich666, Stompfrog, morenoh149, chrmoritz and mrdoob)
- Added
Matrix3.getNormalMatrix()andVector3.transformDirection(). (WestLangley) - Added generator for Sublime Text 2 completion file. (mrdoob)
- Removed
Matrix4'sgetPosition()andgetColumn*(). (mrdoob and bhouston) - Blender exporter improvements. (migvel)
- Added
Vector*.toArray(). (mrdoob) - Added Maya exporter for JSON format. (etic)
- Improvements to
FlyControls. (WestLangley) - Improvements to
OBJLoaderandOBJMTLLoader. (edwardsp and Fktrcfylh) - Added
.reflect(),projectOnVector()andprojectOnPlane()toVector3. (bhouston) - Added
OculusRiftEffect. (troffmo5) - Fixed loading of JSON format 2.0 files in the editor. (mrdoob and drewnoakes)
- Added
setHSL()andgetHSL()toColor. (pksunkara and mrdoob) - Added binary files support to
STLLoader. (aleeper) - Removed
setHSV(),getHSV()fromColor. (mrdoob) - Replaced
ColorUtils.adjustHSV()withColor's.offsetHSL(). (mrdoob) - Added
Line3. (bhouston) - Addded
linewidthsupport toBufferGeometrylines. (arodic) - Renamed
Box3/Line3/Plane/Ray/Sphere's.transform()toapplyMatrix4(). (bhouston) - Added
smoothstepandsmoothersteptoMath. (bhouston) - Improvements to the editor. (drewnoakes)
- Added
.reset()toTrackballControls. (WestLangley) - Added two edge detection shader effects. (zz85)
- Unit conversion handling in
ColladaLoader. (jihoonl)
2013 01 15 - r55 (406,462 KB, gzip: 96,542 KB)
- Added
set(),identity(),copy(),multiplyScalar(),determinant(),getInverse()andclone()toMatrix3. (bhouston) - Added a refactored
WebGLRendererunder theWebGLRenderer2name (may becomeWebGLRenderernext release). (gero3) - Optimised
Matrix4'sdeterminant(). (bhouston) - Added
negate()toPlane. (bhouston) - Added
containsPoint()andintersectsObject()toFrustum. (bhouston) - Fixed
MeshNormalMaterialrendering inCanvasRendererandSVGRenderer. (mrdoob) - Moved
Matrix*/Quaternion'smultiply*toVector*'s.apply*. (mrdoob) - Added
MeshNormalMaterialwithSmoothShadingsupport toCanvasRenderer. (mrdoob) - Added
Edit / Cloneto the editor. (mrdoob) - Fixes to
ArrowHelper. (bhouston and WestLangley) - Improved
Geometry'smergeVertices(). (bhouston) - Improved
LatheGeometry. (bhouston and WestLangley) - Added
insertPasstoEffectComposer. (alteredq) - Added support for
BufferGeometrysupport toLine. (arodic) - Added
intersectsSpheretoSphere. (Fox32) - Added Tone Mapping to
WebGLDeferredRenderer. (alteredq) - Made
updateMorphTargetsa public method ofMesh. (jonobr1) - Added
add(),addColors(),addScalar(),multiply()andmultiplyScalar()toColor. (mrdoob) - Renamed
Vector*/Matrix*/Quaternion'sadd()/sub()/cross()...toaddVectors()/subVectors()/crossVectors().... (mrdoob) - Renamed
Vector*/Matrix*/Quaternion'saddSelf()/subSelf()/crossSelf()...toadd()/sub()/cross().... (mrdoob) - Moved
GeometryUtils'sexplode()andtessellate()toExplodeModifierandTessellateModifier. (mrdoob) - Moved
BinaryLoaderout of the lib to examples folder. (mrdoob) - Added
OBJExporter. (mrdoob) - Implemented pinch gesture to
TrackballControls. (ericnoble and mrdoob) - Firefox support in
OrbitControls.. (mrdoob) - Added zbuffer to
SoftwareRendererand started adding material handling. (rygorous and mrdoob) - Moved
CanvasRenderer/SVGRendererx/y clipping toProjector. (mrdoob) - Added
applyEuler()andapplyAxisAngle()inVector3. (WestLangley) - Improvements to
FirstPersonControls. (RommelVR)
2012 12 25 - r54 (411,352 KB, gzip: 98,639 KB)
- Added nodejs, perl, python and ruby based localhost server. (zz85)
- Added support for alphaTest to
Sprite. (alteredq) - Added
WebGLDeferredRendererwith all sorts of goodness. (mpanknin and alteredq) - Changed
Spriteto useSpriteMaterialinstead of custom object. (alteredq) - Added
sourcemapoption to python and nodejs build systems. (zz85 and gero3) - Non-indexed
BufferGeometry. (benaadams) - Added support for loading cubemap DDS textures. (MiiBond)
- Added manual mipmapping support to
TextureandDataTexture. (benaadams and alteredq) - Added style strings support
Color. (mrdoob) - Added new fbx converter. (zfedoran)
- Improvements to
SceneLoader. (RommelVR and alteredq) - Added
Planeclass and implemented inFrustum. (bhouston) - Added
Box3,Spheremath classes and implemented inGeometry. (bhouston) - Added bilinear filtered shadow map. (MiiBond)
- Added test framework. (bhouston)
- Replaced
UVwithVector2. (mrdoob) - Renamed
RaytoRaycasterand added newRaymath class. (bhouston) - Improvements to
CSS3DRenderer. (mrdoob, benaadams and zz85) - Implemented
.dispose()toGeometry,BufferGeometry,Texture,MaterialandWebGLRenderTargetfor deallocating from GPU. (mrdoob and alteredq) - Moved
SubdivisionModifierout of the build toexamples/js/modifiers. (mrdoob) - Improvements to
ColladaLoader. (dgossow) - Added Blender 2.65 exporter. (tapio)
- Added
.setMaterialIndex()toGeometryUtils. (gero3) - Added benchmark framework. (bhouston)
- Fixed Blender scene exporter rotations. (alteredq and WestLangley)
- Added
devicePixelRatiosupport toCanvasRendererandWebGLRenderer. (mrdoob)
2012 11 15 - r53 (392,799 KB, gzip: 96,044 KB)
- Lots of improvements to editor. Including possibility to export geometry and scene. (alteredq and mrdoob)
Spriteno longer gets its size from the texture. (alteredq and mrdoob)- Improved
CSS3DRenderer. (mrdoob and alteredq) - Added support for vertex normals in
Ribbon. (alteredq) Object3D's.clone()is now recursive. (mrdoob)- Added support for fog in
Sprite. (alteredq) - Scene format now supports nested lights, cameras and SkinnedMesh, OBJ, VTK, STL, UTF8 and Collada files. (alteredq)
Object3D's.lookAt()now working when using quaternions. (motin)- Added touch support to
TrackballControls. (mrdoob) - Object sorting in
WebGLRendereris now stable, regardless of browser implementation. (alteredq) MeshPhongMaterial'sperPixelis nottrueby default. (alteredq)- Added
LineDashedMaterial. (alteredq) - Added
.setContextStyletoColor. (greyscales) - Corrected normal matrix calculations. (WestLangley)
- Added
KaleidoShader,MirrorShaderandRGBShiftShader. (felixturner) - Added area weighted vertex normals computation to
Geometry. (alteredq) - Moved geometry.materials to
MeshFaceMaterial. (gero3, alteredq and mrdoob) - Removed
materialsandsidesfromCubeGeometry. (mrdoob) - Move
GeometryUtils's.clone()toGeometry. (mrdoob)
2012 10 15 - r52 (379,442 KB, gzip: 94,126 KB)
- New node.js build system. (gero3)
- Proper edge handling in
SubdivisionModifier. (zz85) - Added
definesparameter for adding preprocessor definitions toShaderMaterial. (alteredq) - Split
ShaderExtrasinto single files (BasicShader,BlendShader,ConvolutionShader, ... ). (mrdoob) - Added
HueSaturationShaderandBrightnessContrastShader. (tapio) - Fixed
ColladaLoadernot loading sometimes. (tapio) - Added
material.vertexColors = THREE.FaceColorsupport toCanvasRendererandSVGRenderer. (mrdoob) - Added
Object3D.defaultEulerOrder. (mrdoob) - Replaced
SceneUtils.traverseHierarchyandSceneUtils.showHierarchywithobject.traverse. (mrdoob) - Added
PointerLockControls. (mrdoob) - Completed more documentation pages. (sole)
- Split
SceneUtils.cloneObjectinto*.clone(). (mrdoob) - Simplified
AxisHelper. (mrdoob) - Added
GeometryExporter. (mrdoob) - Improved
OrbitControls. (WestLangley) - Added
GeometryLibrary,MaterialLibrary,TextureLibraryandObjectLibrary(bear in mind that you can't rely on the GC now. Call*.deallocate()for removing). (mrdoob) - Moved
*Controlsout of the lib. (mrdoob) - Fixed shadows getting animated when skinning / morphing was disabled. (alteredq)
- Added
Manualsection to the documentation pages. (oal) - Added
.angleTo()toVector3. (Wilt) - Many improvements to the editor. (mrdoob and alteredq)
2012 09 15 - r51 (405,491 KB, gzip: 99,389 KB)
- Added
STLLoader. (aleeper and mrdoob) - Optimised
Ray(2x faster). (gero3) - Added
.getDescendantsmethod toObject3D. (gero3 and mrdoob) SkinnedMeshcan now work withMorphAnimMesh. (apendua)- Changed
CameraHelper. Now it matches the camera independently of where it's in the scene graph. (mrdoob) - Removed the need for manually setting texture units with
ShaderMaterial. (alteredq) - Added
HemisphereLight. (alteredq) - Fixed
WebGLRendererhandling of flip sided materials. (WestLangley and alteredq) - Added support to normals maps in
MeshPhongMaterial. (crobi and alteredq) - Added handling of
BufferGeometryforParticleSystems. (alteredq) - Added support for compressed textures and cube maps to
WebGLRenderer. (alteredq) - Outliner and Material panel improvements to the editor. (mrdoob)
- Added material.emissive support to
CanvasRendererandSVGRenderer. (mrdoob) - Added handling of multiple UV layers and anisotropy to Blender exporter. (alteredq)
- Handling bump and anisotropy in
LoaderandSceneLoader. (alteredq) - Added mousewheel support to
TrackballControls. (jherrm) - Added
MTLLoaderandOBJMTLLoader. (angelxuanchang) - Updated
UTF8Loaderto latest version. (angelxuanchang and alteredq) - Pluginized
SceneLoader. (alteredq) - Added support of
object.renderDepthinProjector. (mrdoob) - Made build system more flexible. (mrdoob)
- Many enhancements to
SceneLoader. (alteredq) - Experimenting with
CSS3DRenderer. (mrdoob) - Added
ShapeGeometry. (jonobr1) - Fixes to
Vector3's.setEulerFromRotationMatrixmethod.(WestLangley)
2012 08 15 - r50 (391,250 KB, gzip: 96,143 KB)
- Experimenting with SoftwareRenderer. (mrdoob and rygorous)
- Improved rotation conversion routines. (WestLangley)
- Moved
DOMRendererandSVGRendererout of common build. (mrdoob) - Improvements to Morph targets. (alteredq and gero3)
- Added
.deallocateMaterialmethod toWebGLRenderer. (alteredq) - Added
.worldToLocaland.localToWorldmethods toObject3D. (zz85 and WestLangley) - Added
ConvexGeometry. (qiao) - Added node.js build system. (gero3)
- Improvements to Blender exporter. (timbot and alteredq)
- Added uvs and vertex colors support to
ImmediateRenderObjects. (alteredq) - Started implementing
LoadingMonitorandEventTargetin loaders. (mrdoob) - Added
Path.ellipse. (linzhp) - Added
nearandfarproperties toRay. (niklassa) - Added
OrbitControls. (qiao, mrdoob and alteredq) - Completed some more documentation pages. (mrdoob, phenomnomnominal, FuzzYspo0N, poeschko, wwwtyro, maximeq and alteredq)
- Completed lots more documentation pages. (sole)
- Started reworking GUI. (mrdoob)
- Improved python build system. (gero3)
- Made
VTKLoaderparsing more robust. (mrdoob) - Added
recursiveflag toRay. (mrdoob) - Handling resizes properly in controls and examples. (alteredq)
- Improvements to ColladaLoader. (spacecookies)
- Unflipped V coordinate across the whole library. (mrdoob and alteredq)
- Refactored
BufferGeometry. (alteredq) - Improved GL extensions initialisation in
WebGLRenderer. (alteredq) - Rescued
SkinnedMesh. (n3tfr34k and alteredq) - Made
OBJLoaderparsing more robust. (Dahie) - Implemented skinning via floating point textures. (alteredq)
- Improved documentation system. (mrdoob and alteredq)
- Added support for anisotropic texture filtering and standard derivatives in
WebGLRenderer. (alteredq) - Added support for
ParticleBasicMaterialwithoutmapinCanvasRenderer. (mrdoob) SceneLoadernow supports nested scene graphs and per object custom properties. (skfcz)Cameradoesn't need to be added to the scene anymore. (mrdoob)Object3D'sflipSidedanddoubleSidedproperties are nowMaterial'ssideproperty. (alteredq and mrdoob)- Added
.clonemethod to*Material. (gero3, mrdoob and alteredq) - IEWEBGL support. (iewebgl and mrdoob)
- Added
CircleGeometry. (hughes) - Added
bumpMaptoMeshPhongMaterial. (alteredq) - Added
specularMaptoMeshBasicMaterial,MeshLambertMaterialandMeshPhongMaterial. (alteredq) - Reworked python build system. (mrdoob)
2012 04 22 - r49 (364,242 KB, gzip: 89,057 KB)
- Yet more
ColladaLoaderimprovements. (ekitson, AddictArts and pblasco) - Created documentation system. (mrdoob)
- Added some documentation. (mrdoob and sole)
- Added
MorphBlendMesh. (alteredq) - Added
emissivecomponent to WebGL Materials. (alteredq) - Added
DepthPassPlugin. (alteredq) - Improvements to
Path. (asutherland) - Improvements to
Curve. (zz85) - Added
ArrowHelper. (zz85 and WestLangley) - Changed depth sorting in
WebGLRendererto use world positions. (alteredq) - Improved physically based shading in
WebGLRenderer. (WestLangley) - Changed depth sorting in
Projectorto use world positions. (mrdoob) - Added physical specular term also to normal map shader. (alteredq)
- Added
TubeGeometry. (zz85 and WestLangley) - Added
needsUpdateflag toMaterial. (alteredq) - Fixed
GeometryUtils.triangulateQuads. (alteredq) - Improvements to
GeometryUtils.tessellate. (alteredq) - Change
PlaneGeometryfrom XY to XZ. (mrdoob) WebGLRendererback tohighpshader precision. (mrdoob)- Added
deallocateRenderTargetto `WebGLRenderer. (kovleouf) - Support zIndex and scale into
DOMRenderer. (ajorkowski) - Improvements to
CameraHelper. (zz85) - Added 3D spline path extrusion support to
ExtrudeGeometry. (zz85) MarchingCubesmoved out of the lib into/examples/jsfolder. (alteredq)- Added
ImmediateRenderObject. (alteredq) - Renamed
__dirty*to*NeedUpdate. (valette and mrdoob) - Added
CustomBlendingtoMaterialandpremultiplyAlphatoTexture. (alteredq) - Improvements to
CubeCamera. (alteredq and mrdoob) CanvasRenderer.setClearColor()and.setClearColorHex()now setsopacityto 1 when null. (mrdoob)- Fixed broken UVs in
SubdivisionModifier. (zz85) - Renamed
Matrix4'ssetTranslation,setRotationX,setRotationY,setRotationZ,setRotationAxisandsetScaletomakeTranslation,makeRotationX,makeRotationY,makeRotationZ,makeRotationAxisandmakeScale. (mrdoob) Matrix4static methodsmakeFrustum,makePerspective,makeOrthoto non-static methods. (mrdoob)- Refactore handling of
Matrix4toMatrix3inversion. (alteredq) - Added
GodRayspostprocessing. (huwb) - Added
LinePiecessupport toProjector. (mrdoob) - Fixed UVs handling bug in
GeometryUtils.tessellate. (alteredq) - Serious performance improvements to
Matrix4,Matrix3andFrustum. (gero3) - Fixes to
LatheGeometry. (zz85) - Removed
Vertex. UseVector3instead. (mrdoob) - Implemented real
Spotlights. (alteredq) - Added
ParametricGeometry. (zz85) - Added basic
OBJLoaderin/examples/js/loadersfolder. (mrdoob) - Moved
ColladaLoaderandUTF8Loaderto/examples/js/loadersfolder. (mrdoob) - Added
VTKLoaderto/examples/js/loadersfolder. (valette and mrdoob) - Blender exporter now supports linked groups. (Druidhawk)
- Added
visibleproperty toMaterial. (mrdoob) - Removed Lamber+Texture support in
CanvasRenderer. (mrdoob) - Fixed normals in
CylinderGeometry. (qiao) - Added floating point textures support to
WebGLRenderer. (mrdoob) - Renamed
AnaglyphWebGLRendererand co. toAnaglyphEffect& co. and moved to/examples/js/effects. (mrdoob) - Improvements to documentation system. (mrdoob and codler)
- Added
AsciiEffect. (zz85)
2012 03 04 - r48 (393,626 KB, gzip: 99,395 KB)
- Added camera support to
ColladaLoader. (jbaicoianu) - More
ColladaLoaderimprovements. (mrdoob, AddictArts, kduong) - Updated
IcosahedronGeometryandOctahedronGeometrywith timothypratley'sPolyhedronGeometrycode which also bringsTetrahedronGeometry. (mrdoob) LODshould now behave as expected from anywhere in the scene graph. (mrdoob)- Added
THREE.REVISION. (mrdoob) - Fixed cancelRequestAnimationFrame polyfill. (also)
- Improvements to convert_obj_three.py. (alteredq)
- Fixes to
Geometry's.computeBoundingBoxand.computeBoundingSphere. (alteredq) - Refactored ShadowMap shader. (alteredq)
- Fixed handling of meshes with multiple materials in
SceneLoader. (alteredq) - Changed
Material's default ambient color to 0xffffff. (alteredq) - Added normals support to
MorphTarget. (alteredq) - Added
.setFrameRangeand.setAnimationLabeltoMorphAnimMesh. (alteredq) - Added handling of named animation sequences to
MorphAnimMesh. (alteredq) - Extended
MorphAnimMeshto be able to play animations backwards. (alteredq) - Added
.generateDataTexturetoImageUtils. (alteredq) - Removed hierarchy support and
.intersectScene()fromRay. (mrdoob) - Added
.triangulateQuadstoGeometryUtils. (alteredq) ProjectorandWebGLRenderernow handles doubleSided lighting properly. (mrdoob and alteredq)- Fixed
MorphAnimMeshplayback bug where the last frame didn't display. (alteredq) TrackballControlsimplementsEventTarget. (mrdoob)- Added
.clonetoVertex,Face3andFace4. (alteredq) - Added
.explodeand.tessellatetoGeometryUtils. (alteredq) - Added
.lerpSelftoVector2,Vector3andUV. (alteredq) - Fixed
DOMRendererby using single-materials. (ajorkowski ) - Added
.setPrecisiontoRay. (mrdoob) - Blender exporter now honors the "Flip YZ" option. (rectalogic)
- Added
NoBlendingtoMaterialandWebGLRenderer. (kovleouf) - Added
.applyMatrixtoObject3D. (mrdoob and alteredq) - Added
.attachand.detachtoSceneUtilsto retain position in space. (alteredq) - Added
.signtoMath. (alteredq) - Implemented sphinx based documentation. (ivankuzev)
- Documented part of the API. (ivankuzev and alteredq)
- Replaced sphinx based documentation with compilation-less sytem. (mrdoob)
- Added default material to
Mesh,LineandParticleSystem. (mrdoob)
2012 01 14 - r47 (378,169 KB, gzip: 96,015 KB)
- Resurrected lens flares as custom
WebGLRendererplugin. (alteredq) - Fixed typos in
Matrix4'stranspose()andgetInverse(). (ekitson) - "Pluginized" Sprites and ShadowMaps. (alteredq)
- Added
Frustumclass. (alteredq) ColladaLoaderimprovements. (ekitson, jterrace, mrdoob and alteredq)- Lights in a hierarchy are now supported when using
WebGLRenderer. (alteredq) - Included requestAnimationFrame shim in the lib. (mrdoob)
- Started documentation effort in
/doc(using sphinx). (jterrace) - Changed default shader precission to
mediump. (mrdoob) - Added support for the format OpenCTM. (alteredq)
- Added
BufferGeometryfor direct rendering from typed arrays. (alteredq) - Extended
Textureclass withformatandtypeparameters. (alteredq) - Automatically reducing texture to max size of WebGL hardware. (greggman and alteredq)
- Improved
WebGLRenderer's Shadow Map code. (alteredq) - Checking for
xhr.overrideMimeTypebefore using it (fixing IE support). (mrdoob and alteredq) - Improved ATI and ANGLE support in across
WebGLRenderershaders. (alteredq) - Added
generateMipmapsproperty toTextureandRenderTarget. (alteredq) Frustumproperly handling children with scaled parents. (avinoamr)- Fixed
Raywhen dealing with big polygons. (WestLangley) - Fixed
WebGLRendererbug where depth buffer was not cleared. (ekitson) - Added
CameraHelperobjects for visualising both Perspective and Orthographic cameras. (alteredq) - Improvements to
Path. (zz85) - Improvements to Postprocessing stack. (alteredq)
- Added shadows for
DirectionalLights. (alteredq) - Added
Gyroscopeobject. (alteredq) - Added
alphaandpremultipliedAlphaparameters toWebGLRenderer. (mrdoob) Rayproperly handling children with scaled parents. (mrdoob)- Renamed
Axesobject toAxisHelper. (mrdoob)
2011 11 17 - r46 (343.383 KB, gzip: 87.468 KB)
- Added reflections to Normal Mapping. (alteredq)
Raynow checks also object children. (mrdoob)*Loader.load( parameters )to*Loader( url, callback, texturePath ). (mrdoob and alteredq)- Reworked scene graph setup. (mrdoob and alteredq)
- Fixed
CanvasRenderer'sSphericalReflectionMappingrendering. (mrdoob) - Improved
SubdivisionModifier. (zz85) - Refactored
*Controlsto use externally supplied time delta. (alteredq) - Improvements to
CombinedCamera. (zz85) ColladaLoaderdoesn't create extraObject3D. (mrdoob)- Improvements to Lambert and Phong materials. (alteredq)
- Removed multi-materials for simplicity reasons. (Multi-materials will come back with MeshLayerMaterial hopefully soon) (alteredq)
- Fixed
Raynot considering edges. (mrdoob) - Massive cleanup to
WebGLRenderer. (alteredq) Rayoptimisations. (mrdoob and alteredq)- JSON file format is now worker-less (this was crashing Chrome/Firefox with dealing with many assets). (alteredq)
- Improved
CubeGeometry,PlaneGeometry,IcosahedronGeometryandSphereGeometry. (mrdoob) - Improvements to
Curve. (zz85) - Removed
Collisionscode and focusing onRay. (mrdoob) - Added
cloneObject()method toSceneUtils. (alteredq)
2011 10 06 - r45 (340.863 KB, gzip: 86.568 KB)
Object/Scene.add*()andObject/Scene.remove*()are nowObject/Scene.add()andObject/Scene.remove(). (mrdoob)LOD.add()is nowLOD.addLevel(). (mrdoob)- Reworked
CylinderGeometry. (mrdoob) - Added
.depthWriteand.fogtoMaterial. (alteredq) - Added
.applyMatrixtoGeometry. (mrdoob) - Improved postprocessing stack in
/examples/js/postprocessing. (alteredq) - Added a realistic skin shading example. (alteredq)
- Started of a GUI for composing scenes and autogenerate code. (mrdoob)
- Added
.center()toGeometryUtils. (alteredq) - Fixed buggy scenegraph manipulation (adding/removing objects). (jsermeno, alteredq and skython)
- Renamed
MeshShaderMaterialtoShaderMaterial. (alteredq) - Fixed
CanvasRendererignoring color ofSmoothShadingedMeshLambertMaterial. (mrdoob) - Renamed
renderer.datatorenderer.info. (mrdoob) - Fixed ShadowMap aspect ratio. (kig and alteredq)
- Fixed
Loader'sextractUrlbase()incorrect output for short urls. (rectalogic and alteredq) - Added
.colorand.visiblesupport toSprite. (alteredq) - Added
Face4, Vertex Colors and Maya support toColladaLoader. (mrdoob) - Rewrite of lighting shader code. (alteredq)
- Improved internal array concatenation approach. (pyrotechnick)
WebGLRendererperformance improvements. (alteredq)- Added lower level immediate rendering support to
WebGLRenderer. (NINE78 and alteredq) - Added
CubeCamerafor rendering cubemaps. (alteredq) - Improved
GeometryUtils's.mergeVertices()performance. (zz85) - Removed
Camera's.target. (mrdoob) WebGLRenderer's.clear()is now.clear( color, depth, stencil ). (mrdoob)- Added
.autoClearColor,.autoClearDepthand.autoClearStenciltoWebGLRenderer. (mrdoob and alteredq) - Added
OctahedronGeometry. (clockworkgeek) - Splitted
CameraintoPerspectiveCameraandOrthographicCamera. (mrdoob and alteredq) - Special cameras are now
*Controls. (alteredq and mrdoob) - Added
SubdivisionModifier. (zz85) Projector'sunprojectVector()now also works withOrthographicCamera. (jsermeno)- Added
.setLens()method toPerspectiveCamera. (zz85) - Added Shadow Maps,
Texture's.offsetand.repeatand reflections support to Normal Map shader. (alteredq)
2011 09 04 - r44 (330.356 KB, gzip: 84.039 KB)
- Added
ColladaLoader. (timknip2) - Improved
ExtrudeGeometry. (zz85) - Fixed
CylinderGeometrynormals. (alteredq) - Fixed issue with
WebGLRenderer.setTexture(rectalogic) - Fixed
TorusGeometrynormals. (mrdoob) - Fixed
Raybehind-ray intersects. (mrdoob) - Added
OrthoCamera. (alteredq) - Refactored postprocessing effects used in some examples. (alteredq)
- Added
.deallocateObject()and.deallocateTexture()methods toWebGLRenderer. (mrdoob) - Fixed a glitch in normal and phong shader. (evanw and alteredq)
- Added
.frustumCulledproperty toObject3D. (alteredq and mrdoob)
2011 08 14 - r43 (298.199 KB, gzip: 74.805 KB)
- Improved Blender exporter - 2.58 (and 2.59) support, normals maps, specular, ao maps... (alteredq)
- Added CORS to
ImageUtils. (mrdoob) - Refactored
TextGeometryand addedShape,Curve,Path,ExtrudeGeometry,TextPath. (zz85 and alteredq) - Added handling of custom attributes for
ParticleSystems. (alteredq) - Fixed
CanvasRenderer.setClearColor. (mrdoob, StephenHopkins and sebleedelisle) - Improved uniform handling in
WebGLRenderer. (alteredq) - Implemented Shadow Mapping in
WebGLRenderer. (alteredq) - Added
Spotlightlight type. (alteredq) - Fixed constructor-less prototypes. (pushmatrix)
- Added
DataTexture. (alteredq) WebGLRendereropaque pass now renders from front to back. (alteredq)- Simplified
Color. (mrdoob) - Added
preserveDrawingBufferoption toWebGLRenderer. (jeromeetienne) - Added
UTF8Loaderfor loading the new, uber compressed, UTF8 format. (alteredq) CanvasRenderernow supportsRepeatWrapping,texture.offsetandtexture.repeat. (mrdoob)- Removed Stencil Shadows and Lensflare code. (mrdoob)
2011 07 06 - r42 (277.852 KB, gzip: 69.469 KB)
- Added
AnaglypWebGLRendererandCrosseyedWebGLRenderer. (mrdoob, alteredq and marklundin) - Added
TextGeometry. (zz85 and alteredq) - Added
setViewOffsetmethod toCamera. (greggman) - Renamed geometries to
*Geometry. (mrdoob) - Improved Blender exporter. (alteredq, sweetfish and Jhonnyg)
- Added Blender 2.58 exporter. (georgik)
- Fixed
Matrix4.multiply(). (thanks lukem1) - Added support for additional Euler rotation orders in
Matrix4. (rectalogic) - Renamed
QuakeCameratoFirstPersonCamera. (chriskillpack) - Improved Normal Map Shader. (alteredq)
Collisionnow supportsObject3D.flipSidedandObject3D.doubleSided. (NINE78)- Removed most of
SceneUtilsmethods. (mrdoob) - Removed
Soundobject andSoundRenderer. (mrdoob)
2011 05 31 - r41/ROME (265.317 KB, gzip: 64.849 KB)
(Up to this point, some RO.ME specific features managed to get in the lib. The aim is to clean this up in next revisions.)
- Improved Blender Object and Scene exporters. (alteredq)
- Fixes on WebGL attributes. (alteredq and empaempa)
- Reduced overall memory footprint. (mrdoob)
- Added
Face4support toCollisionSystem. (NINE78) - Added Blender 2.57 exporter. (remoe)
- Added
Particlesupport toRay. (mrdoob and jaycrossler) - Improved
Ray.intersectObjectperformance by checking boundingSphere first. (mrdoob) - Added
TrackballCamera. (egraether) - Added
repeatandoffsetproperties toTexture. (mrdoob and alteredq) - Cleaned up
Vector2,Vector3andVector4. (egraether)
2011 04 24 - r40 (263.774 KB, gzip: 64.320 KB)
- Fixed
Object3D.lookAt. (mrdoob) - More and more Blender exporter goodness. (alteredq and mrdoob)
- Improved
CollisionSystem. (drojdjou and alteredq) - Fixes on WebGLRenderer. (empaempa)
- Added
Tridentobject. (sroucheray) - Added
dataobject to Renderers for getting number of vertices/faces/callDraws from last render. (mrdoob) - Fixed
Projectorhandling Particles with hierarchies. (mrdoob)
2011 04 09 - r39 (249.048 KB, gzip: 61.020 KB)
- Improved WebGLRenderer program cache. (alteredq)
- Added support for pre-computed edges in loaders and exporters. (alteredq)
- Added
Collisionsclasses. (drojdjou) - Added
Spriteobject. (empaempa) - Fixed
*Loaderissue where Workers were kept alive and next loads were delayed. (alteredq) - Added
THREEnamespace to all the classes that missed it. (mrdoob)
2011 03 31 - r38 (225.442 KB, gzip: 55.908 KB)
- Added
LensFlarelight. (empaempa) - Added
ShadowVolumeobject (stencil shadows). (empaempa) - Improved Blender Exporter plus added Scene support. (alteredq)
- Blender Importer for loading JSON files. (alteredq)
- Added load/complete callbacks to
Loader(mrdoob) - Minor WebGL blend mode clean up. (mrdoob)
- *Materials now extend Material (mrdoob)
material.transparentdefine whether material is transparent or not (before we were guessing). (mrdoob)- Added internal program cache to WebGLRenderer (reuse already available programs). (mrdoob)
2011 03 22 - r37 (208.495 KB, gzip: 51.376 KB)
- Changed JSON file format. (Re-exporting of models required) (alteredq and mrdoob)
- Updated Blender and 3DSMAX exporters for new format. (alteredq)
- Vertex colors are now per-face (alteredq)
Geometry.uvsis now a multidimensional array (allowing infinite uv sets) (alteredq)CanvasRendererrendersFace4again (without spliting to 2Face3) (mrdoob)ParticleCircleMaterial>ParticleCanvasMaterial. Allowing injecting anycanvas.contextcode! (mrdoob)
2011 03 14 - r36 (194.547 KB, gzip: 48.608 KB)
- Added 3DSMAX exporter. (alteredq)
- Fixed
WebGLRendereraspect ratio bug when scene had only one material. (mrdoob) - Added
sizeAttenuationproperty toParticleBasicMaterial. (mrdoob) - Added
PathCamera. (alteredq) - Fixed
WebGLRendererbug when Camera has a parent. CameraCamera.updateMatrixmethod. (empaempa) - Fixed
Camera.updateMatrixmethod andObject3D.updateMatrix. (mrdoob)
2011 03 06 - r35 (187.875 KB, gzip: 46.433 KB)
- Added methods
translate,translateX,translateY,translateZandlookAtmethods toObject3D. (mrdoob) - Added methods
setViewportandsetScissortoWebGLRenderer. (alteredq) - Added support for non-po2 textures. (mrdoob and alteredq)
- Minor API clean up. (mrdoob)
2011 03 02 - r34 (186.045 KB, gzip: 45.953 KB)
- Now using camera.matrixWorldInverse instead of camera.matrixWorld for projecting. (empaempa and mrdoob)
- Camel cased properties and object json format (Re-exporting of models required) (alteredq)
- Added
QuakeCamerafor easy fly-bys (alteredq) - Added
LODexample (alteredq)
2011 02 26 - r33 (184.483 KB, gzip: 45.580 KB)
- Changed build setup (build/Three.js now also include extras) (mrdoob)
- Added
ParticleSystemobject toWebGLRenderer(alteredq) - Added
Linesupport toWebGLRenderer(alteredq) - Added vertex colors support to
WebGLRenderer(alteredq) - Added
Ribbonobject. (alteredq) - Added updateable textures support to
WebGLRenderer(alteredq) - Added
Soundobject andSoundRenderer. (empaempa) LOD,Bone,SkinnedMeshobjects and hierarchy being developed. (empaempa)- Added hierarchies examples (mrdoob)
2010 12 31 - r32 (89.301 KB, gzip: 21.351 KB)
Scenenow supportsFogandFogExp2.WebGLRendereronly right now. (alteredq)- Added
setClearColor( hex, opacity )toWebGLRendererandCanvasRenderer(alteredq & mrdoob) WebGLRenderershader system refactored improving performance. (alteredq)Projectornow does frustum culling of all the objects using their sphereBoundingBox. (thx errynp)materialproperty changed tomaterialsglobaly.
2010 12 06 - r31 (79.479 KB, gzip: 18.788 KB)
- Minor Materials API change (mappings). (alteredq & mrdoob)
- Added Filters to
WebGLRenderer python build.py --includesgenerates includes string
2010 11 30 - r30 (77.809 KB, gzip: 18.336 KB)
- Reflection and Refraction materials support in
WebGLRenderer(alteredq) SmoothShadingsupport onCanvasRenderer/MeshLambertMaterialMeshShaderMaterialforWebGLRenderer(alteredq)- Removed
RenderableFace4fromProjector/CanvasRenderer(maybe just temporary). - Added extras folder with
GeometryUtils,ImageUtils,SceneUtilsandShaderUtils(alteredq & mrdoob) - Blender 2.5x Slim now the default exporter (old exporter removed).
2010 11 17 - r29 (69.563 KB)
- New materials API Still work in progress, but mostly there. (alteredq & mrdoob)
- Line clipping in
CanvasRenderer(julianwa) - Refactored
CanvasRendererandSVGRenderer. (mrdoob) - Switched to Closure compiler.
2010 11 04 - r28 (62.802 KB)
Loaderclass allows load geometry asynchronously at runtime. (alteredq)MeshPhongMaterialworking withWebGLRenderer. (alteredq)- Support for huge objects. Max 500k polys and counting. (alteredq)
Projector.unprojectVectorandRayclass to check intersections with faces (based on mindlapse work)- Fixed
Projectorz-sorting (not as jumpy anymore). - Fixed Orthographic projection (was y-inverted).
- Hmmm.. lib file size starting to get too big...
2010 10 28 - r25 (54.480 KB)
WebGLRenderernow up to date with other renderers! (alteredq)- .obj to .js python converter (alteredq)
- Blender 2.54 exporter
- Added
MeshFaceMaterial(multipass per face) - Reworked
CanvasRendererandSVGRenderermaterial handling
2010 10 06 - r18 (44.420 KB)
- Added
PointLight CanvasRendererandSVGRendererbasic lighting support (ColorStroke/ColorFill only)Renderer>Projector.CanvasRenderer,SVGRendererandDOMRendererdo not extend anymore- Added
computeCentroidsmethod toGeometry
2010 09 17 - r17 (39.487 KB)
- Added
Light,AmbientLightandDirectionalLight(philogb) WebGLRendererbasic lighting support (philogb)- Memory optimisations
2010 08 21 - r16 (35.592 KB)
- Workaround for Opera bug (clearRect not working with context with negative scale)
- Additional
Matrix4andVector3methods
2010 07 23 - r15 (32.440 KB)
- Using new object
UVinstead ofVector2where it should be used - Added
Mesh.flipSidedboolean (false by default) CanvasRendererwas handling UVs at 1,1 as bitmapWidth, bitmapHeight (instead of bitmapWidth - 1, bitmapHeight - 1)ParticleBitmapMaterial.offsetadded- Fixed gap when rendering
Face4withMeshBitmapUVMappingMaterial
2010 07 17 - r14 (32.144 KB)
- Refactored
CanvasRenderer(more duplicated code, but easier to handle) Face4now supportsMeshBitmapUVMappingMaterial- Changed order of
*StrokeMaterialparameters. Now it'scolor,opacity,lineWidth. BitmapUVMappingMaterial>MeshBitmapUVMappingMaterialColorFillMaterial>MeshColorFillMaterialColorStrokeMaterial>MeshColorStrokeMaterialFaceColorFillMaterial>MeshFaceColorFillMaterialFaceColorStrokeMaterial>MeshFaceColorStrokeMaterialColorStrokeMaterial>LineColorMaterialRectangle.instersectsreturned false with rectangles with 0px witdh or height
2010 07 12 - r13 (29.492 KB)
- Added
ParticleCircleMaterialandParticleBitmapMaterial Particlenow useParticleCircleMaterialinstead ofColorFillMaterialParticle.size>Particle.scale.xandParticle.scale.yParticle.rotation.zfor rotating the particleSVGRenderercurrently out of sync
2010 07 07 - r12 (28.494 KB)
- First version of the
WebGLRenderer(ColorFillMaterialandFaceColorFillMaterialby now) Matrix4.lookAtfix (CanvasRendererandSVGRenderernow handle the -Y)Colornow using 0-1 floats instead of 0-255 integers
2010 07 03 - r11 (23.541 KB)
- Blender 2.5 exporter (utils/export_threejs.py) now exports UV and normals (Thx kikko)
Scene.add>Scene.addObject- Enabled
Scene.removeObject
2010 06 22 - r10 (23.959 KB)
- Changed Camera system. (Thx Paul Brunt)
Object3D.overdraw = trueto enable CanvasRenderer screen space point expansion hack.
2010 06 20 - r9 (23.753 KB)
- JSLinted.
autoClearproperty for renderers.- Removed SVG rgba() workaround for WebKit. (WebKit now supports it)
- Fixed matrix bug. (transformed objects outside the x axis would get infinitely tall :S)
2010 06 06 - r8 (23.496 KB)
- Moved UVs to
Geometry. CanvasRendererexpands screen space points (workaround for antialias gaps).CanvasRenderersupportsBitmapUVMappingMaterial.
2010 06 05 - r7 (22.387 KB)
- Added Line Object.
- Workaround for WebKit not supporting rgba() in SVG yet.
- No need to call updateMatrix(). Use .autoUpdateMatrix = false if needed. (Thx Gregory Athons).
2010 05 17 - r6 (21.003 KB)
- 2d clipping on
CanvasRendererandSVGRenderer clearRectoptimisations onCanvasRenderer
2010 05 16 - r5 (19.026 KB)
- Removed Class.js dependency
- Added
THREEnamespace Camera.x->Camera.position.xCamera.target.x>Camera.target.position.xColorMaterial>ColorFillMaterialFaceColorMaterial>FaceColorFillMaterial- Materials are now multipass (use array)
- Added
ColorStrokeMaterialandFaceColorStrokeMaterial geometry.faces.aare now indexes instead of references
2010 04 26 - r4 (16.274 KB)
SVGRendererParticle renderingCanvasRendererusescontext.setTransformto avoid extra calculations
2010 04 24 - r3 (16.392 KB)
- Fixed incorrect rotation matrix transforms
- Added
PlaneandCubeprimitives
2010 04 24 - r2 (15.724 KB)
- Improved
Colorhandling
2010 04 24 - r1 (15.25 KB)
- First alpha release