anchor.diff:  
   image:gephi-logo.png[width=200, float=left] link:http://gephi.github.io/[Gephi] is an interactive visualization, exploration, and analysis platform for graphs. The link:https://marketplace.gephi.org/plugin/graph-streaming/[Graph Streaming] plugin for Gephi provides an link:https://wiki.gephi.org/index.php/Graph_Streaming[API] that can be leveraged to stream graphs and visualize traversals interactively through the Gremlin Gephi Plugin.
   
  -First launch Gephi and ensure that you've installed the Graph Streaming plugin (Tools > Plugins). Then create a new project (File > New Project).  In the lower left view, click the "Streaming" tab, open the Master drop down, and right click "Master Server" > Start.  You've now started the Graph Streaming server in Gephi, which by default accepts requests at http://localhost:8080/workspace0 and can be modified in the Settings... window:
  +The following instructions assume that Gephi has been download and installed.  It further assumes that the Graph Streaming plugin has been installed (`Tools > Plugins`). The following instructions explain how to visualize a `Graph` and `Traversal`.
  +
  +In Gephi, create a new project with `File > New Project`.  In the lower left view, click the "Streaming" tab, open the Master drop down, and right click `Master Server > Start` which starts the Graph Streaming server in Gephi and by default accepts requests at `http://localhost:8080/workspace0`:
   
   image:gephi-start-server.png[width=800]
   
  -Now you can start the Gremlin console and activate the Gephi plugin:
  +Start the xref:gremlin-console[Gremlin Console] and activate the Gephi plugin:
   
   [source,groovy]
   gremlin> :plugin use gephi
  
positive.code: |port |The port number of the URL that the Graph Streaming server is listening on. |8080
  |stepDelay |The amount of time in milliseconds to pause between step visualizations. |1000
  |startRGBColor |A size 3 float array of RGB color values which define the starting color to update most recently visited nodes with.  |[0.0,1.0,0.5]
  |colorToFade |A single char from the set {r,g,b,R,G,B} determining which color to fade for vertices visited in prior steps |g
  |colorFadeRate |A float value in the range (0.0,1.0] which is multiplied against the current `colorToFade` value for prior vertices; a 1.0 value effectively turns off the color fading of prior step visited vertices |0.7
  |=========================================================
  
  [[server-plugin]]
  
negative.code: gremlin> :> g
  ==>tinkergraph[vertices:6 edges:6]
  
  The above Gremlin session activates the Gephi plugin, creates the classic `TinkerGraph`, uses the `:remote` command to setup a connection to the Graph Streaming server in Gephi (with default parameters that will be explained below), and then uses `:submit` which sends the vertices and edges of the graph to the Gephi Streaming Server. The resulting graph appears in Gephi:
  
  image:gephi-submit-graph.png[width=500]
  
  Now that the graph is visualized in Gephi, it is possible to link:https://gephi.github.io/users/tutorial-layouts/[apply a layout algorithm], change the size and/or color of vertices and edges, and display labels/properties of interest.  Further information can be found in Gephi's tutorial on link:https://gephi.github.io/users/tutorial-visualization/[Visualization].  After applying the Fruchterman Reingold layout, increasing the node size, decreasing the edge scale, and displaying the id, name, and weight attributes the graph looks like:
  
  image:gephi-labeled-graph.png[width=500]
  
  NOTE: It's recommended to choose a continously running layout algorithm like Fruchterman Reingold or Force Atlas, because ever update to color the visited vertices causes their positions to be reset, so these layouts will constantly adjust to account for these changes and make visualization of the traversals.  This also explains why the graph seems to rotate each store step in the screenshots below.
  
  Consider the following traversal:
  
  [source,groovy]
  g.v(2).in.out('knows')
        .filter{it.get().value('age') > 30}.outE('created')
        .filter{it.get().value('weight') > 0.5}.inV
  
  To visualize it insert the appropriately named `store.as("n")` steps where n is an integer, and the vertices will be highlighted in ascending store step order. 
  
  [source,groovy]
  gremlin> g.v(2).in('knows').out('knows').filter{it.get().value('age') > 30}
                 .outE('created').filter{it.get().value('weight') > 0.5}.inV.name
  ==>ripple
  gremlin> traversal = g.v(2).store.as('1')
                             .in('knows').store.as('2')
                             .out('knows').filter{it.get().value('age') > 30}.store.as('3')
                             .outE('created').filter{it.get().value('weight') > 0.5}.inV.store.as('4')
  ==>[v[5]]
  gremlin> traversal.memory().get('1')
  ==>Optional[[v[2]]]
  