     @flycam.update()
 
 
+  updateNodes : ->
+
+    activeNodeId = @cellTracing.getActiveNodeId()
+
+    for i in [0...@nodes.length]
+
+      tree = @cellTracing.getTree( @ids[i] )
+
+      @nodesColorBuffers[i].clear()
+      for node in tree.nodes
+        if node.id == activeNodeId
+          @nodesColorBuffers[i].push( @invertHexToRGB( 0xffff00 ))
+        else
+          @nodesColorBuffers[i].push( @invertHexToRGB( 0xff0000 ))
+
+      @nodes[i].geometry.__colorArray = @nodesColorBuffers[i].getBuffer()
+      console.log @nodes[i].geometry.__colorArray
+      @nodes[i].geometry.colorsNeedUpdate = true
+
+      @updateGeometries( i )
+      @flycam.update()
+
+
   getIndexFromTreeId : (treeId) ->
 
     unless treeId

        threeParticleSystem.geometry.dispose()
        threeParticleSystem.material.dispose()

    @edges         = []
    @nodes         = []
    @ids           = []
    @edgesBuffers  = []
    @nodesBuffers  = []

    for tree in @cellTracing.getTrees()
      @createNewTree(tree.treeId, tree.color)

      mergeTree : (lastTreeID, lastNode, activeNode) => 
        @mergeTree(lastTreeID, lastNode, activeNode)
        @updateBranches()
        @updateNodes()
      newNode : (centered) => @setWaypoint(centered)
      setBranch : (isBranchPoint, nodeID) => 
        @setBranchPoint(isBranchPoint, nodeID)
        @updateBranches()
        @updateNodes()
      deleteBranch : =>
        @updateBranches()
        @updateNodes()
      reloadTrees : (trees, finishedDeferred) =>
        @cellTracing.one("finishedRender", =>
          @cellTracing.one("finishedRender", =>
