text: (function(Hypersolid) {
  
    /*
     * Hypercube
     */
  
    Hypersolid.Hypercube = function() {
      return new Hypercube();
    };
    function Hypercube() {}
    Hypercube.prototype = Hypersolid.Shape([
      { x:  1, y:  1, z:  1, w:  1 },
      { x:  1, y:  1, z:  1, w: -1 },
      { x:  1, y:  1, z: -1, w:  1 },
      { x:  1, y:  1, z: -1, w: -1 },
      { x:  1, y: -1, z:  1, w:  1 },
      { x:  1, y: -1, z:  1, w: -1 },
      { x:  1, y: -1, z: -1, w:  1 },
      { x:  1, y: -1, z: -1, w: -1 },
      { x: -1, y:  1, z:  1, w:  1 },
      { x: -1, y:  1, z:  1, w: -1 },
      { x: -1, y:  1, z: -1, w:  1 },
      { x: -1, y:  1, z: -1, w: -1 },
      { x: -1, y: -1, z:  1, w:  1 },
      { x: -1, y: -1, z:  1, w: -1 },
      { x: -1, y: -1, z: -1, w:  1 },
      { x: -1, y: -1, z: -1, w: -1 }
    ], [
      [ 0,  1], [ 0,  2], [ 0,  4], [ 0,  8],
                [ 1,  3], [ 1,  5], [ 1,  9],
                [ 2,  3], [ 2,  6], [ 2, 10],
                          [ 3,  7], [ 3, 11],
                [ 4,  5], [ 4,  6], [ 4, 12],
                          [ 5,  7], [ 5, 13],
                          [ 6,  7], [ 6, 14],
                                    [ 7, 15],
                [ 8,  9], [ 8, 10], [ 8, 12],
                          [ 9, 11], [ 9, 13],
                          [10, 11], [10, 14],
                                    [11, 15],
                          [12, 13], [12, 14],
                                    [13, 15],
                                    [14, 15]
    ]);
  
  })(window.Hypersolid = window.Hypersolid || {});
  