anchor.diff:        new List<VM.Vector3>((xstrips + 1) * (ystrips + 1));
     List<VM.Vector3> normals =
         new List<VM.Vector3>((xstrips + 1) * (ystrips + 1));
  +  List<VM.Vector2> uvs = new List<VM.Vector2>((xstrips + 1) * (ystrips + 1));
   
     int index(int x, int y) {
       return x * (xstrips + 1) + y;
  
positive.code:           index(x, y), index(x + 1, y), index(x + 1, y + 1), index(x, y + 1));
      }
    }
    // TODO: add uv support
    //gb.EnableAttribute(aTextureCoordinates);
    //gb.AddAttributesVector2(aTextureCoordinates, uvs);
    gb.EnableAttribute(aNormal);
    gb.AddAttributesVector3(aNormal, normals);
    return gb;
  
negative.code: 
    for (int x = 0; x <= xstrips; ++x) {
      for (int y = 0; y <= ystrips; ++y) {
        final int ii = index(x, y);
        vertices[ii] =
            new VM.Vector3(x * xdelta - xoffset, y * ydelta - yoffset, 0.0);
        normals[ii] = normal;
        uvs[ii] = new VM.Vector2(x / xstrips, y / ystrips);
      }
    }
    GeometryBuilder gb = new GeometryBuilder();
  