anchor.diff:    
     scene.add(camera);
     
  -  drawTriangles();
  +  calculateLines();
  +  drawLineSegments();
  +  //drawTriangles();
     //drawLines();
   
     renderer = new WebGLRenderer();
  
positive.code:   scene.add(mesh);
  }
  
  void drawLines() {
    var material = new LineBasicMaterial(linewidth: 100.0, color: 0x0077dd);
    var geometry = new Geometry();
  
negative.code: 
    camera.lookAt(new Vector3(0.0, 0.0, 0.0));
    renderer.render(scene, camera);
  }
  
  // TODO: LineSegment?
  class LineSegment {
    Vector2 start;
    Vector2 end;
    LineSegment(this.start, this.end);
    // Might as well use Vector3s to get depth, this is just easier to work with for now
    int depth;
  }
  
  List<List<LineSegment>> Lines = new List<List<LineSegment>>();
  List<LineSegment> Horizon = new List<LineSegment>();
  void calculateLines() {
    // Start w/ two lines - set up manually
    List<LineSegment> a = new List<LineSegment>();
    a.add(new LineSegment(new Vector2(-2.0, 1.0), new Vector2(0.0, -1.0)));
    a.add(new LineSegment(new Vector2(0.0, -1.0), new Vector2(2.0, 1.0)));
    Lines.add(a);
    Horizon = a;
    
    List<LineSegment> b = new List<LineSegment>();
    b.add(new LineSegment(new Vector2(-2.0, -1.0), new Vector2(0.0, 1.0)));
    b.add(new LineSegment(new Vector2(0.0, 1.0), new Vector2(2.0, -1.0)));
    Lines.add(b);
  }
  
  void drawTriangles() {
  