Difference between revisions of "Tools:Visualization"

From Forensics Wiki
Jump to: navigation, search
m
m (Processing.org)
 
(40 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
Although not strictly for forensic purposes, '''visualization tools''' such as the ones discussed here can be very useful for visualizing large data sets. As forensic practitioners need to process more and more data, it is likely that some of the techniques implemented by these tools will need to be adopted.
 
Although not strictly for forensic purposes, '''visualization tools''' such as the ones discussed here can be very useful for visualizing large data sets. As forensic practitioners need to process more and more data, it is likely that some of the techniques implemented by these tools will need to be adopted.
  
== Open Source ==
+
==Programming Languages and Developer Toolkits==
=== Visualization Toolkits and Libraries ===
+
If you are building forensic tools, you probably want to start with one of these:
 +
===Java===
 +
Advantage: Portable and lots of good documentation out there.
 +
 
 +
Disadvantage: Programs are a bit verbose, and only offers about 1/2 the performance of C
 
* [http://csbi.sourceforge.net/index.html Graph Interface Library (GINY)] - Java
 
* [http://csbi.sourceforge.net/index.html Graph Interface Library (GINY)] - Java
* [http://www.gravisto.org/ Gravisto: Graph Visualization Toolkit] - An editor and toolkit for developing graph visualization algorithms.
+
* [http://hypergraph.sourceforge.net/ HyperGraph] - Hyperbolic trees, in Java. Check out the home page. Try clicking on the logo...
[http://hypergraph.sourceforge.net/ HyperGraph] - Hyperbolic trees, in Java. Check out the home page. Try clicking on the logo...
+
 
* [http://ivtk.sourceforge.net/ InfoViz Toolkit] - Java, originally developed at [[INRA]].
 
* [http://ivtk.sourceforge.net/ InfoViz Toolkit] - Java, originally developed at [[INRA]].
 
* [https://jdigraph.dev.java.net/ Jdigrah] - Java Directed Graphs.
 
* [https://jdigraph.dev.java.net/ Jdigrah] - Java Directed Graphs.
 
* [http://jgrapht.sourceforge.net/ JGraphT] - A Java visualization kit designed to be simple and extensible.  
 
* [http://jgrapht.sourceforge.net/ JGraphT] - A Java visualization kit designed to be simple and extensible.  
* [http://www.softwaresecretweapons.com/jspwiki/Wiki.jsp?page=LinguineMaps Linguine Maps] - An open-source Java-based system for visualizing software call maps.
 
 
* [http://prefuse.sourceforge.net/ Perfuse] - A Java-based toolkit for building interactive information visualization applications
 
* [http://prefuse.sourceforge.net/ Perfuse] - A Java-based toolkit for building interactive information visualization applications
* [http://www.gnu.frb.br:8080/rox Rox Graph Theory Framework] - An open-source plug-in framework for graph theory visualization.
 
* [http://touchgraph.sourceforge.net/ TouchGraph] - Library for building graph-based interfaces.
 
 
* [http://www.ssec.wisc.edu/~billh/visad.html#intro VisAD] - A Java component library for interactive and collaborative visualization.
 
* [http://www.ssec.wisc.edu/~billh/visad.html#intro VisAD] - A Java component library for interactive and collaborative visualization.
* [http://public.kitware.com/VTK/ The Visualization Toolkit] - C++ multi-platform with interfaces available for Tcl/Tk, Java and Python. Professional support provided by [http://www.kitware.com/ Kitware].
+
* [http://www.softwaresecretweapons.com/jspwiki/Wiki.jsp?page=LinguineMaps Linguine Maps] - An open-source Java-based system for visualizing software call maps.
 
* [http://zvtm.sourceforge.net/index.html Zoomable Visual Transformation Machine] - Java. Originally started at Xerox Research Europe.
 
* [http://zvtm.sourceforge.net/index.html Zoomable Visual Transformation Machine] - Java. Originally started at Xerox Research Europe.
* [http://processing.org/ Processing.org] - A new language for doing graphics and visualization.
+
* [http://openmap.bbn.com/ OpenMap] A Java-based Geographical Information System framework, from [[BBN]].
  
====Tree Maps====
+
===Python===
[http://www.cs.umd.edu/hcil/treemap-history/index.shtml Treemaps] are a visualization technique developed at the University of Maryland for visualizing large amounts of multi-dimensional data. There is a GPLed implementation of treemaps written in C. You can find a copy of in it:
+
Advantage: Portable
* [http://www.derlien.com/ Disk Inventory X]
+
* [http://kdirstat.sourceforge.net/ KDirStat]
+
  
===Graph Drawing Applications===
+
Disadvantage: Python is one of the slowest modern languages around and doesn't work well with big data sets.
 +
* Python with Tk
 +
* Python with matplotlib
 +
* Python with wxWidgets (not installed by default)
 +
* [http://networkx.lanl.gov/ NetworkX], a pure Python network layout program which uses matplotlib to do the actual graphing.
 +
 
 +
===Processing.org===
 +
Advantage: Programming language specifically developed for visualization; compiles to java byte code
 +
 
 +
Disadvantage: Very oddball
 +
*  [http://processing.org processing.org] and
 +
 
 +
===JavaScript===
 +
Browsers are now very fast and there are a large number of data plotting systems built on JavaScript. Check out:
 +
* [http://processingjs.org processingjs.org]
 +
* [http://highcharts.com/ Highcharts JS]
 +
* [http://mbostock.github.com/d3/ D3 - Data Driven Documents] - A visualization library for the Web.
 +
* [http://key-lines.com KeyLines] - Commercially licensed visualization library for networks/graphs.
 +
 
 +
===C/C++===
 +
* [http://www.vtk.org/ The Visualization Toolkit] - C++ multi-platform with interfaces available for Tcl/Tk, Java and Python.
 +
 
 +
== Applications ==
 +
Most of these applications can be used to do visualization
 +
 
 +
; Crystal Space 3D
 +
 
 +
; Panda#D
 +
 
 +
===Data Plotting Applications===
 +
* http://ploticus.sourceforge.net
 +
* http://www.gnuplot.info/
 +
* http://tulip.labri.fr/TulipDrupal/
 +
 
 +
===Graph and (Social) Network Visualization===
 +
* [http://www.cytoscape.org/ Cytoscape] - Cytoscape is an open source software platform for visualizing complex networks and integrating these with any type of attribute data.
 
* [http://www.graphviz.org/ Graphviz] - Originally developed by the [http://public.research.att.com/areas/visualization/ AT&T Information Visualization Gorup], designed for drawing connected graphs of nodes and edges. Neato is a similar system but does layout based on a spring model. Can produce output as [[PostScript]], [[PNG]], [[GIF]], or as an annotated graph file with the locations of all of the objects — ideal for drawing in a GUI. Runs from the command line on [[Unix]], [[Windows]] and [[Mac]], although there is also a [http://www.pixelglow.com/graphviz/ MacOS GUI version].
 
* [http://www.graphviz.org/ Graphviz] - Originally developed by the [http://public.research.att.com/areas/visualization/ AT&T Information Visualization Gorup], designed for drawing connected graphs of nodes and edges. Neato is a similar system but does layout based on a spring model. Can produce output as [[PostScript]], [[PNG]], [[GIF]], or as an annotated graph file with the locations of all of the objects — ideal for drawing in a GUI. Runs from the command line on [[Unix]], [[Windows]] and [[Mac]], although there is also a [http://www.pixelglow.com/graphviz/ MacOS GUI version].
* [http://graphexploration.cond.org/ Guess: The Graph Exploration System] - Originally developed at HP, this is a large Jython/Java-based system that you can use for building your own applications. Distributed under GPL.
+
* [http://www.codeplex.com/nodexl NodeXL] - Free/open excel add-in extends the spreadsheet with network metrics and visualizations. (Only runs on Windows)
* [http://sourceforge.net/projects/ivc/ InfoVis Cyberinfrastructure] - Another graph drawing system written in Java.
+
* [http://gephi.org/ Gephi] -Gephi is an interactive visualization and exploration platform for all kinds of networks and complex systems, dynamic and hierarchical graphs
* [http://jung.sourceforge.net/ Java Universal Network/Graph Framework (JUNG)] - Graphing, [[data mining]], [[social network]] analysis, and other stuff.
+
 
* [http://www.andrew.cmu.edu/user/krack/krackplot.shtml Krackplot] - "KrackPlot is a program for network visualization designed for social network analysts."
+
* http://projects.skewed.de/graph-tool/ - graph-tool is an efficient python module for manipulation and statistical analysis of graphs (a.k.a. networks).
* [http://bioinformatics.icmb.utexas.edu/lgl/ Large Graph Layout (LGL)] - A bioinformatics system from University of Texas. They really mean Large.
+
* http://igraph.sourceforge.net/ - Integrates with R.
* [http://www.sfu.ca/~richards/Multinet/Pages/multinet.htm MultiNet] - A data analysis package for drawing conventional data and graph data.  
+
* http://socnetv.sourceforge.net/ - "Social Networks Visualizer (SocNetV) is a flexible and user-friendly tool for the analysis and visualization of Social Networks."
* [http://www.analytictech.com/netdraw.htm NetDraw] - "a free program written by Steve Borgatti for visualizing both 1-mode and 2-mode social network data."
+
* [https://sites.google.com/site/netdrawsoftware/home NetDraw] - "a free program written by Steve Borgatti for visualizing both 1-mode and 2-mode social network data."
* [http://web.mit.edu/bshi/Public/nv2d/ NetVis 2D] - Another graph visualization and layout tool written in Java.
+
* [http://pajek.imfm.si/doku.php Pajek] - Windows program for drawing large networks.
* [http://www.opendx.org/ OpenDX] - Based on [[IBM]]'s Visualization Data Explorer, runs on [[Unix]]/X11/Motif.
+
* [http://vlado.fmf.uni-lj.si/pub/networks/pajek/ Pajek] - Windows program for drawing large networks.
+
 
* [http://sourceforge.net/projects/sonia/ Social Network Image Animator (SoNIA)] - Originally developed at Stanford. Written in Java. Makes movies.  
 
* [http://sourceforge.net/projects/sonia/ Social Network Image Animator (SoNIA)] - Originally developed at Stanford. Written in Java. Makes movies.  
* [http://www.informatik.uni-bremen.de/uDrawGraph/en/uDrawGraph/uDrawGraph.html uDrawGraph]
 
* [http://wilma.sourceforge.net/ WilmaScope] - Real-time animations of dynamic graph structures. Written in Java. Sophisticated force model with strings and attraction.
 
 
* [http://www.caida.org/tools/visualization/walrus/ Walrus] - A 3-d graph network exploration tool. Employs 3D hyperbolic displays and layout based on a user-supplied spanning tree.
 
* [http://www.caida.org/tools/visualization/walrus/ Walrus] - A 3-d graph network exploration tool. Employs 3D hyperbolic displays and layout based on a user-supplied spanning tree.
 +
* [http://afterglow.sf.net AfterGlow] - A tool to simplify the generation of network graphs in GraphViz, Gephi, etc.  Designed for security visualizations.
 +
* http://tulip.labri.fr/TulipDrupal/ - Tulip is an information visualization framework dedicated to the analysis and visualization of relational data.
  
== Geographical Drawing Programs ==
+
See also: http://en.wikipedia.org/wiki/Social_network_analysis_software
  
* [http://openmap.bbn.com/ OpenMap] -- From [[BBN]].
+
Reas govisual diagram editor
 +
reas.com
 +
gdf.net
  
== Commercial Tools ==
+
 
 +
=== Commercial Graphic Applications and Tools===
  
 
* [http://www.aisee.com/ aiSee Graph Layout Software] - Supports 15 layout algorithms, recursive graph nesting, and easy printing. Runs on [[Windows]], [[Linux]], [[Solaris]], [[NetBSD]], and [[MacOS]]. 30-day trial and free registered versions available. Academic pricing available.
 
* [http://www.aisee.com/ aiSee Graph Layout Software] - Supports 15 layout algorithms, recursive graph nesting, and easy printing. Runs on [[Windows]], [[Linux]], [[Solaris]], [[NetBSD]], and [[MacOS]]. 30-day trial and free registered versions available. Academic pricing available.
Line 51: Line 85:
 
* [http://www.openviz.com/ OpenViz] and  [http://www.powerviz.com/ PowerViz] - Both from Advanced Visual Systems, super high-end visualization toolkits. $$$$
 
* [http://www.openviz.com/ OpenViz] and  [http://www.powerviz.com/ PowerViz] - Both from Advanced Visual Systems, super high-end visualization toolkits. $$$$
 
* [http://www.tomsawyer.com/ Tom Sawyer Software] Analysis, Visualizaiton, and Layout programs. - Heavy support for drawing graphs. Beautiful gallery. ActiveX, Java, C++ and .NET editions.
 
* [http://www.tomsawyer.com/ Tom Sawyer Software] Analysis, Visualizaiton, and Layout programs. - Heavy support for drawing graphs. Beautiful gallery. ActiveX, Java, C++ and .NET editions.
* [http://www.netminer.com/ NetMiner] - "One of the most comprehensive and usable software tools for Social Network Analysis in the world." Runs on Winodws, with a Linux version under development. $35 for "Express" student version, $250 for "Professional" student version, $950 for "Normal" "Professional" version.
+
* [http://www.netminer.com/ NetMiner] - A comprehensive tool for Social Network Analysis. Runs on Windows, with a Linux version under development. $35 for "Express" student version, $250 for "Professional" student version, $950 for "Normal" "Professional" version.
 
* [http://www.analytictech.com/ucinet.htm UCINET] - A comprehensive package for the analysis of social network data as well as other 1-mode and 2-mode data.
 
* [http://www.analytictech.com/ucinet.htm UCINET] - A comprehensive package for the analysis of social network data as well as other 1-mode and 2-mode data.
 +
* [http://www.clarifiednetworks.com/logster Logster] - an ultra-easy software tool to visualize Apache-style logs on a world map.
 +
* [http://www.clarifiednetworks.com/Clarified%20Analyzer Clarified Analyzer] - Visualizes Network Traffic and allows to drill down from visualizations to the packet level.
  
= Other Resources =
+
===Unclassified===
==Journals and Conferences==
+
* [http://gravisto.fim.uni-passau.de/ Gravisto: Graph Visualization Toolkit] - An editor and toolkit for developing graph visualization algorithms.
* [http://www.palgrave-journals.com/ivs/index.html Information Visualization Journal]
+
* [http://www.gnu.frb.br:8080/rox Rox Graph Theory Framework] - An open-source plug-in framework for graph theory visualization.
* [http://rw4.cs.uni-sb.de/~diehl/softvis/seminar/index.php?goto=seminar ACM Symposium on Software Visualization]
+
* [http://touchgraph.sourceforge.net/ TouchGraph] - Library for building graph-based interfaces.
==Link Farms==
+
 
 +
==See Also==
 +
* [[Network Data Visualizations]]
 
* [http://www-static.cc.gatech.edu/gvu/ii/resources/infovis.html GVU's Information Visualization Resources link farm]
 
* [http://www-static.cc.gatech.edu/gvu/ii/resources/infovis.html GVU's Information Visualization Resources link farm]
 
* [http://directory.google.com/Top/Science/Math/Combinatorics/Software/Graph_Drawing/ Google Directory of Graph Drawing Software]
 
* [http://directory.google.com/Top/Science/Math/Combinatorics/Software/Graph_Drawing/ Google Directory of Graph Drawing Software]
Line 64: Line 102:
 
* [http://www.manageability.org/blog/stuff/open-source-graph-network-visualization-in-java/view Open Source Graph Network Visualization in Java]
 
* [http://www.manageability.org/blog/stuff/open-source-graph-network-visualization-in-java/view Open Source Graph Network Visualization in Java]
 
* [http://www.insna.org/INSNA/soft_inf.html INSNA's web page of Computer Programs for Social Network Analysis]
 
* [http://www.insna.org/INSNA/soft_inf.html INSNA's web page of Computer Programs for Social Network Analysis]
==Research Groups==
+
* http://www.dmoz.org/Science/Math/Combinatorics/Software/Graph_Drawing/
* [http://www.msi.umn.edu/user_support/scivis/scivis-list.html Scientific Visualization at the Supercomputing Institute]
+
* http://www.ontopia.net/omnigator/models/index.jsp
* [http://www.cs.brown.edu/people/rt/gd.html Roberto Tamassia's resources on Graph Drawing]
+
* http://visant.bu.edu/
* [http://bailando.sims.berkeley.edu/infovis.html Bailando Visualization at UC Berkeley]
+
* http://sourceforge.net/projects/touchgraph/
* [http://vis.berkeley.edu/ Berkeley Visualization Lab]
+
* [http://www.informatik.uni-rostock.de/~ct/ Christian Tominski]
 +
 
 +
CAIDA has 15+ years of work visualizing Internet topologies. You may find their tools to be useful:
 +
* http://www.caida.org/tools/visualization/
 +
* http://www.caida.org/publications/visualizations/
 +
* http://www.caida.org/tools/visualization/walrus/gallery1/
 +
* http://www.caida.org/research/topology/as_core_network/

Latest revision as of 15:41, 6 April 2013

Although not strictly for forensic purposes, visualization tools such as the ones discussed here can be very useful for visualizing large data sets. As forensic practitioners need to process more and more data, it is likely that some of the techniques implemented by these tools will need to be adopted.

Contents

Programming Languages and Developer Toolkits

If you are building forensic tools, you probably want to start with one of these:

Java

Advantage: Portable and lots of good documentation out there.

Disadvantage: Programs are a bit verbose, and only offers about 1/2 the performance of C

Python

Advantage: Portable

Disadvantage: Python is one of the slowest modern languages around and doesn't work well with big data sets.

  • Python with Tk
  • Python with matplotlib
  • Python with wxWidgets (not installed by default)
  • NetworkX, a pure Python network layout program which uses matplotlib to do the actual graphing.

Processing.org

Advantage: Programming language specifically developed for visualization; compiles to java byte code

Disadvantage: Very oddball

JavaScript

Browsers are now very fast and there are a large number of data plotting systems built on JavaScript. Check out:

C/C++

Applications

Most of these applications can be used to do visualization

Crystal Space 3D
Panda#D

Data Plotting Applications

Graph and (Social) Network Visualization

  • Cytoscape - Cytoscape is an open source software platform for visualizing complex networks and integrating these with any type of attribute data.
  • Graphviz - Originally developed by the AT&T Information Visualization Gorup, designed for drawing connected graphs of nodes and edges. Neato is a similar system but does layout based on a spring model. Can produce output as PostScript, PNG, GIF, or as an annotated graph file with the locations of all of the objects — ideal for drawing in a GUI. Runs from the command line on Unix, Windows and Mac, although there is also a MacOS GUI version.
  • NodeXL - Free/open excel add-in extends the spreadsheet with network metrics and visualizations. (Only runs on Windows)
  • Gephi -Gephi is an interactive visualization and exploration platform for all kinds of networks and complex systems, dynamic and hierarchical graphs
  • http://projects.skewed.de/graph-tool/ - graph-tool is an efficient python module for manipulation and statistical analysis of graphs (a.k.a. networks).
  • http://igraph.sourceforge.net/ - Integrates with R.
  • http://socnetv.sourceforge.net/ - "Social Networks Visualizer (SocNetV) is a flexible and user-friendly tool for the analysis and visualization of Social Networks."
  • NetDraw - "a free program written by Steve Borgatti for visualizing both 1-mode and 2-mode social network data."
  • Pajek - Windows program for drawing large networks.
  • Social Network Image Animator (SoNIA) - Originally developed at Stanford. Written in Java. Makes movies.
  • Walrus - A 3-d graph network exploration tool. Employs 3D hyperbolic displays and layout based on a user-supplied spanning tree.
  • AfterGlow - A tool to simplify the generation of network graphs in GraphViz, Gephi, etc. Designed for security visualizations.
  • http://tulip.labri.fr/TulipDrupal/ - Tulip is an information visualization framework dedicated to the analysis and visualization of relational data.

See also: http://en.wikipedia.org/wiki/Social_network_analysis_software

Reas govisual diagram editor reas.com gdf.net


Commercial Graphic Applications and Tools

  • aiSee Graph Layout Software - Supports 15 layout algorithms, recursive graph nesting, and easy printing. Runs on Windows, Linux, Solaris, NetBSD, and MacOS. 30-day trial and free registered versions available. Academic pricing available.
  • Geomantics - Geographical, Visualization and Graphics software. Runs on Windows.
  • Graphis 2D and 3D graphing software - Runs on Windows. Free 30-day evaluation copy available.
  • OpenViz and PowerViz - Both from Advanced Visual Systems, super high-end visualization toolkits. $$$$
  • Tom Sawyer Software Analysis, Visualizaiton, and Layout programs. - Heavy support for drawing graphs. Beautiful gallery. ActiveX, Java, C++ and .NET editions.
  • NetMiner - A comprehensive tool for Social Network Analysis. Runs on Windows, with a Linux version under development. $35 for "Express" student version, $250 for "Professional" student version, $950 for "Normal" "Professional" version.
  • UCINET - A comprehensive package for the analysis of social network data as well as other 1-mode and 2-mode data.
  • Logster - an ultra-easy software tool to visualize Apache-style logs on a world map.
  • Clarified Analyzer - Visualizes Network Traffic and allows to drill down from visualizations to the packet level.

Unclassified

See Also

CAIDA has 15+ years of work visualizing Internet topologies. You may find their tools to be useful: