Difference between revisions of "Tools:Visualization"

From ForensicsWiki
Jump to: navigation, search
m (Visualization Toolkits and Libraries)
m (Graph and Network Visualization)
(34 intermediate revisions by 5 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==
 +
If you are building forensic tools, you probably want to start with one of these:
 +
; Java and Swing
 +
: 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
  
==Visualization Toolkits and Libraries ==
+
; Python with tkinter
 +
: Advantage: Portable
 +
: Disadvantage: Python is one of the slowest modern languages around.
  
; [http://csbi.sourceforge.net/index.html Graph Interface Library (GINY)]
+
; Python with wxWidgets
: In Java. Stunning graphics with some layout smarts.
+
: Advantage: Portable and a better development environment than tkiner
 +
: Disadvantage: wxWidgets is not installed by default, so you'll need to get it installed. Not as well documented as Tkinter
  
; [http://www.gravisto.org/ Gravisto: Graph Visualization Toolkit]
+
; [http://processing.org processing.org]
: An editor and toolkit for developing graph visualization algorithms.
+
: Advantage: Programming language specifically developed for visualization; compiles to java byte code
 +
: Disadvantage: Very oddball
  
; [http://ivtk.sourceforge.net/ InfoViz Toolkit]
+
; JavaFX - Java's version of Flash
: Java, originally developed at [[INRA]].
+
  
; [http://jgrapht.sourceforge.net/ JGraphT]
+
; Flash
: A Java visualization kit designed to be simple and extensible.
+
  
; [http://www.softwaresecretweapons.com/jspwiki/Wiki.jsp?page=LinguineMaps Linguine Maps]
+
== Applications ==
: An open-source Java-based system for visualizing software call maps.
+
Most of these are scriptable.
 +
===Open Source===
 +
====Data Plotting====
 +
* http://ploticus.sourceforge.net
 +
* http://www.gnuplot.info/
 +
====Graph and Network Visualization====
 +
* [http://code.google.com/p/boomslang/ Boomslang] --- A thin layer of python over matplotlib that makes it easier to do common plots.
 +
* [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
 +
* [http://sourceforge.net/projects/ivc/ InfoVis Cyberinfrastructure] - Another graph drawing system written in Java.
 +
* [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://bioinformatics.icmb.utexas.edu/lgl/ Large Graph Layout (LGL)] - A bioinformatics system from University of Texas. They really mean Large.
 +
* [http://www.sfu.ca/~richards/Multinet/Pages/multinet.htm MultiNet] - A data analysis package for drawing conventional data and graph data.
 +
* [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."
 +
* [http://web.mit.edu/bshi/Public/nv2d/ NetVis 2D] - Another graph visualization and layout tool written in Java.
 +
* [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://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://prefuse.sourceforge.net/ Perfuse]
+
=== Commercial Graphic Applications and Tools===
: "A Java-based toolkit for building interactive information visualization applications."
+
  
; [http://www.gnu.frb.br:8080/rox Rox Graph Theory Framework]
+
* [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.
: An open-source plug-in framework for graph theory visualization.
+
*  [http://www.geomantics.com/ Geomantics] - Geographical, Visualization and Graphics software. Runs on [[Windows]].
 +
* [http://www.kylebank.com/ Graphis 2D and 3D graphing software] - Runs on [[Windows]]. Free 30-day evaluation copy available.
 +
* [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.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.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.
  
; [http://touchgraph.sourceforge.net/ TouchGraph]
+
== Visualization Toolkits and Libraries ==
: A library for building graph-based interfaces. Some systems that have been built with it include [http://kaon.semanticweb.org/Members/motik/oimodeller KAon AI Modeler], GraphLayout, WikiBrowser, and LinkBrowser
+
===C/C++===
 +
* [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://kdirstat.sourceforge.net/ KDirStat], an open source implementation of [http://www.cs.umd.edu/hcil/treemap-history/index.shtml Treemaps] written in C. (Treemaps are a visualization technique developed at the University of Maryland for visualizing large amounts of multi-dimensional data.)  You can find a copy of it in [http://www.derlien.com/ Disk Inventory X] and
 +
===Java===
 +
* [http://csbi.sourceforge.net/index.html Graph Interface Library (GINY)] - Java
 +
* [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]].
 +
* [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://prefuse.sourceforge.net/ Perfuse] - A Java-based toolkit for building interactive information visualization applications
 +
* [http://www.ssec.wisc.edu/~billh/visad.html#intro VisAD] - A Java component library for interactive and collaborative visualization.
 +
* [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://openmap.bbn.com/ OpenMap] A Java-based Geographical Information System framework, from [[BBN]].
  
; [http://www.ssec.wisc.edu/~billh/visad.html#intro VisAD]
+
===Unclassified===
: A Java component library for interactive and collaborative visualization.
+
* [http://gravisto.fim.uni-passau.de/ Gravisto: Graph Visualization Toolkit] - An editor and toolkit for developing graph visualization algorithms.
 +
* [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://public.kitware.com/VTK/ The Visualization Toolkit]
+
==Journals and Conferences==
: C++ multi-platform with interfaces available for Tcl/Tk, Java and Python. Professional support provided by [http://www.kitware.com/ Kitware].
+
* [http://www.palgrave-journals.com/ivs/index.html Information Visualization Journal]
 
+
* [http://rw4.cs.uni-sb.de/~diehl/softvis/seminar/index.php?goto=seminar ACM Symposium on Software Visualization]
; [http://zvtm.sourceforge.net/index.html ZVTM - Zoomable Visual Transformation Machine]
+
==Research Groups==
: Originally started at Xerox Research Europe, written in Java 2D.
+
===Berkeley===
 
+
* [http://bailando.sims.berkeley.edu/infovis.html Bailando Visualization]
==Graph Drawing Applications==
+
* [http://vis.berkeley.edu/ Berkeley Visualization Lab]
 
+
===Brown===
; [http://www.graphviz.org/ Graphviz]
+
* [http://www.cs.brown.edu/people/rt/gd.html Roberto Tamassia's resources on Graph Drawing]
: 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].
+
===Stanford===
 
+
* [http://window.stanford.edu/projects/rivet/ Rivet Project] (Visualization complex systems)
; [http://graphexploration.cond.org/ Guess: The Graph Exploration System]
+
===UNM===
: 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.msi.umn.edu/user_support/scivis/scivis-list.html Scientific Visualization at the Supercomputing Institute]
 
+
===Wattenberg===
; [http://hypergraph.sourceforge.net/ HyperGraph]
+
* [http://www.bewitched.com/ Bewitched], a one-man research group.
: Hyperbolic trees, in Java. Check out the home page. Try clicking on the logo...
+
==See Also==
 
+
* [http://www-static.cc.gatech.edu/gvu/ii/resources/infovis.html GVU's Information Visualization Resources link farm]
; [http://sourceforge.net/projects/ivc/ InfoVis Cyberinfrastructure]
+
* [http://directory.google.com/Top/Science/Math/Combinatorics/Software/Graph_Drawing/ Google Directory of Graph Drawing Software]
: Another graph drawing system written in Java.
+
* [http://directory.fsf.org/science/visual/ GNU Free Software directory of scientific visualization software]
 
+
* [http://www.manageability.org/blog/stuff/open-source-graph-network-visualization-in-java/view Open Source Graph Network Visualization in Java]
; [https://jdigraph.dev.java.net/ Jdigrah]
+
* [http://www.insna.org/INSNA/soft_inf.html INSNA's web page of Computer Programs for Social Network Analysis]
: Java Directed Graphs.
+
 
+
; [http://bioinformatics.icmb.utexas.edu/lgl/ Large Graph Layout (LGL)]
+
: A bioinformatics system from University of Texas. They really mean Large.
+
 
+
; [http://www.opendx.org/ OpenDX]
+
: Based on [[IBM]]'s Visualization Data Explorer, runs on [[Unix]]/X11/Motif.
+
 
+
; [http://jung.sourceforge.net/ Java Universal Network/Graph Framework (JUNG)]
+
: Graphing, [[data mining]], [[social network]] analysis, and other stuff.
+
 
+
; [http://web.mit.edu/bshi/Public/nv2d/ NetVis 2D]
+
: Another graph visualization and layout tool written in Java.
+
 
+
; [http://sourceforge.net/projects/sonia/ Social Network Image Automater (SoNIA)]
+
: Originally developed at Stanford. Written in Java.
+
 
+
; [http://www.informatik.uni-bremen.de/uDrawGraph/en/uDrawGraph/uDrawGraph.html uDrawGraph]
+
 
+
; [http://www.wilmascope.org/ 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.
+
 
+
== Geographical Drawing Programs ==
+
 
+
; [http://openmap.bbn.com/ OpenMap]
+
: From [[BBN]].
+
 
+
= Commercial 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.geomantics.com/ Geomantics]
+
: Geographical, Visualization and Graphics software. Runs on [[Windows]].
+
 
+
; [http://www.kylebank.com/ Graphis 2D and 3D graphing software]
+
: Runs on [[Windows]]. Free 30-day evaluation copy available.
+
 
+
; [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.
+
 
+
= Other Resources =
+
 
+
; [http://www.palgrave-journals.com/ivs/index.html Information Visualization Journal]
+
 
+
; [http://www-static.cc.gatech.edu/gvu/ii/resources/infovis.html GVU's Information Visualization Resources link farm]
+
 
+
; [http://www.msi.umn.edu/user_support/scivis/scivis-list.html Scientific Visualization at the Supercomputing Institute]
+
 
+
; [http://directory.google.com/Top/Science/Math/Combinatorics/Software/Graph_Drawing/ Google Directory of Graph Drawing Software]
+
 
+
; [http://rw4.cs.uni-sb.de/~diehl/softvis/seminar/index.php?goto=seminar ACM Symposium on Software Visualization]
+
: May give you some ideas.
+
 
+
; [http://directory.fsf.org/science/visual/ GNU Free Software directory of scientific visualization software]
+
 
+
; [http://www.cs.brown.edu/people/rt/gd.html Roberto Tamassia's resources on Graph Drawing]
+
 
+
; [http://www.manageability.org/blog/stuff/open-source-graph-network-visualization-in-java/view Open Source Graph Network Visualization in Java]
+

Revision as of 16:21, 28 October 2009

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.

Programming Languages and Developer Toolkits

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

Java and Swing
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 with tkinter
Advantage: Portable
Disadvantage: Python is one of the slowest modern languages around.
Python with wxWidgets
Advantage: Portable and a better development environment than tkiner
Disadvantage: wxWidgets is not installed by default, so you'll need to get it installed. Not as well documented as Tkinter
processing.org
Advantage: Programming language specifically developed for visualization; compiles to java byte code
Disadvantage: Very oddball
JavaFX - Java's version of Flash
Flash

Applications

Most of these are scriptable.

Open Source

Data Plotting

Graph and Network Visualization

  • Boomslang --- A thin layer of python over matplotlib that makes it easier to do common plots.
  • 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.
  • 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.
  • NodeXL - Free/open excel add-in extends the spreadsheet with network metrics and visualizations
  • InfoVis Cyberinfrastructure - Another graph drawing system written in Java.
  • Java Universal Network/Graph Framework (JUNG) - Graphing, data mining, social network analysis, and other stuff.
  • Krackplot - "KrackPlot is a program for network visualization designed for social network analysts."
  • Large Graph Layout (LGL) - A bioinformatics system from University of Texas. They really mean Large.
  • MultiNet - A data analysis package for drawing conventional data and graph data.
  • NetDraw - "a free program written by Steve Borgatti for visualizing both 1-mode and 2-mode social network data."
  • NetVis 2D - Another graph visualization and layout tool written in Java.
  • OpenDX - Based on IBM's Visualization Data Explorer, runs on Unix/X11/Motif.
  • Pajek - Windows program for drawing large networks.
  • Social Network Image Animator (SoNIA) - Originally developed at Stanford. Written in Java. Makes movies.
  • uDrawGraph
  • WilmaScope - Real-time animations of dynamic graph structures. Written in Java. Sophisticated force model with strings and attraction.
  • Walrus - A 3-d graph network exploration tool. Employs 3D hyperbolic displays and layout based on a user-supplied spanning tree.

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.

Visualization Toolkits and Libraries

C/C++

  • The Visualization Toolkit - C++ multi-platform with interfaces available for Tcl/Tk, Java and Python. Professional support provided by Kitware.
  • KDirStat, an open source implementation of Treemaps written in C. (Treemaps are a visualization technique developed at the University of Maryland for visualizing large amounts of multi-dimensional data.) You can find a copy of it in Disk Inventory X and

Java

Unclassified

Journals and Conferences

Research Groups

Berkeley

Brown

Stanford

UNM

Wattenberg

See Also