code: function Mesh(options) {
    options = options || {};
    this.vertexBuffers = {};
    this.indexBuffers = {};
    this.addVertexBuffer('vertices', 'gl_Vertex');
    if (options.coords) this.addVertexBuffer('coords', 'gl_TexCoord');
    if (options.normals) this.addVertexBuffer('normals', 'gl_Normal');
    if (options.colors) this.addVertexBuffer('colors', 'gl_Color');
    if (!('triangles' in options) || options.triangles) this.addIndexBuffer('triangles');
    if (options.lines) this.addIndexBuffer('lines');
  }
docs: ### new GL.Mesh([options])  Represents a collection of vertex buffers and index buffers. Each vertex buffer maps to one attribute in GLSL and has a corresponding property set on the Mesh instance. There is one vertex buffer by default: `vertices`, which maps to `gl_Vertex`. The `coords`, `normals`, and `colors` vertex buffers map to `gl_TexCoord`, `gl_Normal`, and `gl_Color` respectively, and can be enabled by setting the corresponding options to true. There are two index buffers, `triangles` and `lines`, which are used for rendering `gl.TRIANGLES` and `gl.LINES`, respectively. Only `triangles` is enabled by default, although `computeWireframe()` will add a normal buffer if it wasn't initially enabled.