#### The issues section is for bug reports and feature requests only. If you need help, please use [stackoverflow](http://stackoverflow.com/questions/tagged/three.js).
---
# Bugs
#### Before reporting a bug
1. Search issue tracker for similar issues.
2. Try the latest dev branch version of three.js.
3. Refer to the [Migration Guide](https://github.com/mrdoob/three.js/wiki/Migration) when upgrading to the dev version.
#### How to report a bug
1. Specify the revision number of the three.js library where the bug occurred.
2. Specify your browser version, operating system, and graphics card. (for example, Chrome 23.0.1271.95, Windows 7, Nvidia Quadro 2000M)
3. Describe the problem in detail. Explain what happened, and what you expected would happen.
4. Provide a small test-case (http://jsfiddle.net). [Here is a fiddle](http://jsfiddle.net/akmcv7Lh/) you can edit that runs the current version. [And here is a fiddle](http://jsfiddle.net/hw9rcLL8/) that uses the dev branch. If a test-case is not possible, provide a link to a live version of your application.
5. If helpful, include a screenshot. Annotate the screenshot for clarity.
---
# Contribution
#### How to contribute to three.js
1. Make sure you have a GitHub account.
2. Fork the repository on GitHub.
3. Check the [Contribution Guidelines](https://github.com/mrdoob/three.js/wiki/How-to-contribute-to-three.js).
4. Make changes to your clone of the repository.
5. Submit a pull request. Don't include build files in the PR.
# Help
#### The issues section is for bug reports and feature requests only. If you need help, please use [stackoverflow](http://stackoverflow.com/questions/tagged/three.js).
---
# Bugs
#### Before reporting a bug
1. Search issue tracker for similar issues.
2. Try the latest dev branch version of three.js.
3. Refer to the [Migration Guide](https://github.com/mrdoob/three.js/wiki/Migration) when upgrading to the dev version.
#### How to report a bug
1. Specify the revision number of the three.js library where the bug occurred.
2. Specify your browser version, operating system, and graphics card. (for example, Chrome 23.0.1271.95, Windows 7, Nvidia Quadro 2000M)
3. Describe the problem in detail. Explain what happened, and what you expected would happen.
4. Provide a small test-case (http://jsfiddle.net). [Here is a fiddle](http://jsfiddle.net/akmcv7Lh/) you can edit that runs the current version. [And here is a fiddle](http://jsfiddle.net/hw9rcLL8/) that uses the dev branch. If a test-case is not possible, provide a link to a live version of your application.
5. If helpful, include a screenshot. Annotate the screenshot for clarity.
---
# Contribution
#### How to contribute to three.js
1. Make sure you have a GitHub account.
2. Fork the repository on GitHub.
3. Check the [Contribution Guidelines](https://github.com/mrdoob/three.js/wiki/How-to-contribute-to-three.js).
4. Make changes to your clone of the repository.
5. Submit a pull request. Don't include build files in the PR.
These constants define properties common to all material types,
with the exception of Texture Combine Operations which only apply to [page:MeshBasicMaterial.combine MeshBasicMaterial], [page:MeshLambertMaterial.combine MeshLambertMaterial] and [page:MeshPhongMaterial.combine MeshPhongMaterial].<br/>
</div>
<h2>Side</h2>
<code>
THREE.FrontSide
THREE.BackSide
THREE.DoubleSide
</code>
<div>
Defines which side of faces will be rendered - front, back or both.
Default is [page:Constant FrontSide].
</div>
<h2>Colors</h2>
<code>
THREE.NoColors
THREE.FaceColors
THREE.VertexColors
</code>
<div>
[page:Constant NoColors] is the default and applies the material's color to all faces.<br/>
[page:Constant FaceColors] colors faces according to each [page:Face3 Face3][property:Color color] value.<br/>
[page:Constant VertexColors] colors faces according to each [page:Face3 Face3][property:Array vertexColors] value. This is an array of three [page:Color Color]s, one for each vertex in the face.<br/>
See the [example:webgl_geometry_colors geometry / colors] example.
</div>
<h2>Blending Mode</h2>
<code>
THREE.NoBlending
THREE.NormalBlending
THREE.AdditiveBlending
THREE.SubtractiveBlending
THREE.MultiplyBlending
THREE.CustomBlending
</code>
<div>
These control the source and destination blending equations for the material's RGB and Alpha sent to the WebGLRenderer for use by WebGL.<br/>
[page:Constant NormalBlending] is the default.<br/>
Note that [page:Constant CustomBlending] must be set to use [page:CustomBlendingEquation Custom Blending Equations].<br/>
See the [example:webgl_materials_blending materials / blending] example.<br/>
</div>
<h2>Depth Mode</h2>
<code>
THREE.NeverDepth
THREE.AlwaysDepth
THREE.LessDepth
THREE.LessEqualDepth
THREE.GreaterEqualDepth
THREE.GreaterDepth
THREE.NotEqualDepth
</code>
<div>
Which depth function the material uses to compare incoming pixels Z-depth against the current Z-depth buffer value. If the result of the comparison is true, the pixel will be drawn.<br/>
[page:Materials NeverDepth] will never return true.<br/>
[page:Materials AlwaysDepth] will always return true.<br/>
[page:Materials LessDepth] will return true if the incoming pixel Z-depth is less than the current buffer Z-depth.<br/>
[page:Materials LessEqualDepth] is the default and will return true if the incoming pixel Z-depth is less than or equal to the current buffer Z-depth.<br/>
[page:Materials GreaterEqualDepth] will return true if the incoming pixel Z-depth is greater than or equal to the current buffer Z-depth.<br/>
[page:Materials GreaterDepth] will return true if the incoming pixel Z-depth is greater than the current buffer Z-depth.<br/>
[page:Materials NotEqualDepth] will return true if the incoming pixel Z-depth is not equal to the current buffer Z-depth.<br/>
</div>
<h2>Texture Combine Operations</h2>
<code>
THREE.MultiplyOperation
THREE.MixOperation
THREE.AddOperation
</code>
These define how the result of the surface's color is combined with the environment map (if present), for [page:MeshBasicMaterial.combine MeshBasicMaterial], [page:MeshLambertMaterial.combine MeshLambertMaterial] and [page:MeshPhongMaterial.combine MeshPhongMaterial]. <br/>
[page:Constant MultiplyOperation] is the default and multiplies the environment map color with the surface color.<br/>
[page:Constant MixOperation] uses reflectivity to blend between the two colors.<br/>
These constants define properties common to all material types,
with the exception of Texture Combine Operations which only apply to [page:MeshBasicMaterial.combine MeshBasicMaterial], [page:MeshLambertMaterial.combine MeshLambertMaterial] and [page:MeshPhongMaterial.combine MeshPhongMaterial].<br/>
</div>
<h2>Side</h2>
<code>
THREE.FrontSide
THREE.BackSide
THREE.DoubleSide
</code>
<div>
Defines which side of faces will be rendered - front, back or both.
Default is [page:Constant FrontSide].
</div>
<h2>Colors</h2>
<code>
THREE.NoColors
THREE.FaceColors
THREE.VertexColors
</code>
<div>
[page:Constant NoColors] is the default and applies the material's color to all faces.<br/>
[page:Constant FaceColors] colors faces according to each [page:Face3 Face3][property:Color color] value.<br/>
[page:Constant VertexColors] colors faces according to each [page:Face3 Face3][property:Array vertexColors] value. This is an array of three [page:Color Color]s, one for each vertex in the face.<br/>
See the [example:webgl_geometry_colors geometry / colors] example.
</div>
<h2>Blending Mode</h2>
<code>
THREE.NoBlending
THREE.NormalBlending
THREE.AdditiveBlending
THREE.SubtractiveBlending
THREE.MultiplyBlending
THREE.CustomBlending
</code>
<div>
These control the source and destination blending equations for the material's RGB and Alpha sent to the WebGLRenderer for use by WebGL.<br/>
[page:Constant NormalBlending] is the default.<br/>
Note that [page:Constant CustomBlending] must be set to use [page:CustomBlendingEquation Custom Blending Equations].<br/>
See the [example:webgl_materials_blending materials / blending] example.<br/>
</div>
<h2>Depth Mode</h2>
<code>
THREE.NeverDepth
THREE.AlwaysDepth
THREE.LessDepth
THREE.LessEqualDepth
THREE.GreaterEqualDepth
THREE.GreaterDepth
THREE.NotEqualDepth
</code>
<div>
Which depth function the material uses to compare incoming pixels Z-depth against the current Z-depth buffer value. If the result of the comparison is true, the pixel will be drawn.<br/>
[page:Materials NeverDepth] will never return true.<br/>
[page:Materials AlwaysDepth] will always return true.<br/>
[page:Materials LessDepth] will return true if the incoming pixel Z-depth is less than the current buffer Z-depth.<br/>
[page:Materials LessEqualDepth] is the default and will return true if the incoming pixel Z-depth is less than or equal to the current buffer Z-depth.<br/>
[page:Materials GreaterEqualDepth] will return true if the incoming pixel Z-depth is greater than or equal to the current buffer Z-depth.<br/>
[page:Materials GreaterDepth] will return true if the incoming pixel Z-depth is greater than the current buffer Z-depth.<br/>
[page:Materials NotEqualDepth] will return true if the incoming pixel Z-depth is not equal to the current buffer Z-depth.<br/>
</div>
<h2>Texture Combine Operations</h2>
<code>
THREE.MultiplyOperation
THREE.MixOperation
THREE.AddOperation
</code>
These define how the result of the surface's color is combined with the environment map (if present), for [page:MeshBasicMaterial.combine MeshBasicMaterial], [page:MeshLambertMaterial.combine MeshLambertMaterial] and [page:MeshPhongMaterial.combine MeshPhongMaterial]. <br/>
[page:Constant MultiplyOperation] is the default and multiplies the environment map color with the surface color.<br/>
[page:Constant MixOperation] uses reflectivity to blend between the two colors.<br/>
points -- (optional) array of [page:Vector2 Vector2s].<br/><br/>
Creates a Shape from the points. The first point defines the offset, then successive points
are added to the [page:CurvePath.curves curves] array as [page:LineCurve LineCurves].<br/><br/>
If no points are specified, an empty shape is created and the [page:.currentPoint] is set to
the origin.
</div>
<h2>Properties</h2>
<div>See the base [page:Path] class for common properties.</div>
<h3>[property:String uuid]</h3>
<div>
[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this instance. This gets automatically assigned, so this shouldn't be edited.
</div>
<h3>[property:array holes]</h3>
<div>An array of [page:Path paths] that define the holes in the shape.</div>
<h2>Methods</h2>
<div>See the base [page:Path] class for common methods.</div>
points -- (optional) array of [page:Vector2 Vector2s].<br/><br/>
Creates a Shape from the points. The first point defines the offset, then successive points
are added to the [page:CurvePath.curves curves] array as [page:LineCurve LineCurves].<br/><br/>
If no points are specified, an empty shape is created and the [page:.currentPoint] is set to
the origin.
</div>
<h2>Properties</h2>
<div>See the base [page:Path] class for common properties.</div>
<h3>[property:String uuid]</h3>
<div>
[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this instance. This gets automatically assigned, so this shouldn't be edited.
</div>
<h3>[property:array holes]</h3>
<div>An array of [page:Path paths] that define the holes in the shape.</div>
<h2>Methods</h2>
<div>See the base [page:Path] class for common methods.</div>
width — Width along the X axis. Default is 1.<br/>
height — Height along the Y axis. Default is 1.<br/>
widthSegments — Optional. Default is 1. <br/>
heightSegments — Optional. Default is 1.
</div>
<h2>Properties</h2>
<div>
Each of the contructor parameters is accessible in the parameters property of the object. Any modification of these properties after instantiation does not change the geometry.
width — Width along the X axis. Default is 1.<br/>
height — Height along the Y axis. Default is 1.<br/>
widthSegments — Optional. Default is 1. <br/>
heightSegments — Optional. Default is 1.
</div>
<h2>Properties</h2>
<div>
Each of the contructor parameters is accessible in the parameters property of the object. Any modification of these properties after instantiation does not change the geometry.
Renders [page:ArrowHelper arrows] to visualize an object's [page:Face3 face] normals.
Requires that face normals have been specified on all [page:Face3 faces] or calculated with [page:Geometry.computeFaceNormals computeFaceNormals].</div>
Note that this only works with the objects whose geometry is an instance of [page:Geometry].
For [page:BufferGeometry] use a [page:VertexNormalsHelper] instead.
Renders [page:ArrowHelper arrows] to visualize an object's [page:Face3 face] normals.
Requires that face normals have been specified on all [page:Face3 faces] or calculated with [page:Geometry.computeFaceNormals computeFaceNormals].</div>
Note that this only works with the objects whose geometry is an instance of [page:Geometry].
For [page:BufferGeometry] use a [page:VertexNormalsHelper] instead.
[page:LoadingManager manager] — The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
</div>
<div>
Creates a new [name].
</div>
<h2>Properties</h2>
<h3>[property:LoadingManager manager]</h3>
<div>
The [page:LoadingManager loadingManager] the loader is using. Default is [page:DefaultLoadingManager].
[page:String url] — the path or URL to the file. This can also be a
[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI]..<br/>
[page:Function onLoad] — Will be called when load completes. The argument will be the loaded text response.<br/>
[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes.<br/>
[page:Function onError] — Will be called when load errors.<br/>
</div>
<div>
Begin loading from url and pass the <em>JSON</em> to onLoad.
[page:LoadingManager manager] — The [page:LoadingManager loadingManager] for the loader to use. Default is [page:LoadingManager THREE.DefaultLoadingManager].
</div>
<div>
Creates a new [name].
</div>
<h2>Properties</h2>
<h3>[property:LoadingManager manager]</h3>
<div>
The [page:LoadingManager loadingManager] the loader is using. Default is [page:DefaultLoadingManager].
[page:String url] — the path or URL to the file. This can also be a
[link:https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs Data URI]..<br/>
[page:Function onLoad] — Will be called when load completes. The argument will be the loaded text response.<br/>
[page:Function onProgress] — Will be called while load progresses. The argument will be the XMLHttpRequest instance, which contains .[page:Integer total] and .[page:Integer loaded] bytes.<br/>
[page:Function onError] — Will be called when load errors.<br/>
</div>
<div>
Begin loading from url and pass the <em>JSON</em> to onLoad.