 
       transformMatrix = worldMatrix.multiply(viewMatrix).multiply(projectionMatrix)
 
-      for vertex in mesh.vertices
-        @drawPoint @project(vertex, transformMatrix)
-
+      ### Points only ###
+      # for vertex in mesh.vertices
+      #   @drawPoint @project(vertex, transformMatrix)
+
+      ### Naive line test ###
+      # for vertex, i in mesh.vertices[0...-1]
+      #   point0 = @project(mesh.vertices[i+0], transformMatrix)
+      #   point1 = @project(mesh.vertices[i+1], transformMatrix)
+      #   @drawLine(point0, point1)
+
+      for face in mesh.faces
+        vertexA = mesh.vertices[face.A]
+        vertexB = mesh.vertices[face.B]
+        vertexC = mesh.vertices[face.C]
+        pixelA = @project(vertexA, transformMatrix)
+        pixelB = @project(vertexB, transformMatrix)
+        pixelC = @project(vertexC, transformMatrix)
+        @drawBLine(pixelA, pixelB)
+        @drawBLine(pixelB, pixelC)
+        @drawBLine(pixelC, pixelA)
 
 
 canvas = document.getElementById('front-buffer')

      # draw yellow
      @putPixel point.x, point.y, new Color4(1, 1, 0, 1)


  # The main method of the engine that recomputes each vertex
  # projection on every frame

camera = new Camera()
meshes = []

mesh = new Mesh("Cube", 8, 12)
meshes.push mesh
mesh.vertices = [
  new Vector3(-1,  1,  1)
  new Vector3( 1,  1,  1)
  new Vector3(-1, -1,  1)
  new Vector3( 1, -1,  1)
  new Vector3(-1,  1, -1)
  new Vector3( 1,  1, -1)
  new Vector3( 1, -1, -1)
  new Vector3(-1, -1, -1)
]
mesh.faces = [
  { A: 0, B: 1, C: 2 }
  { A: 1, B: 2, C: 3 }
  { A: 1, B: 3, C: 6 }
  { A: 1, B: 5, C: 6 }
  { A: 0, B: 1, C: 4 }
  { A: 1, B: 4, C: 5 }
  { A: 2, B: 3, C: 7 }
  { A: 3, B: 6, C: 7 }
  { A: 0, B: 2, C: 7 }
  { A: 0, B: 4, C: 7 }
  { A: 4, B: 5, C: 6 }
  { A: 4, B: 6, C: 7 }
]

camera.position = new Vector3(0, 0, 20)
camera.target = new Vector3(0, 0, 0)
