Tools visualization
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
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
- Graph Interface Library (GINY) - Java
- HyperGraph - Hyperbolic trees, in Java. Check out the home page. Try clicking on the logo...
- InfoViz Toolkit - Java, originally developed at INRA.
- JGraphT - A Java visualization kit designed to be simple and extensible.
- Perfuse - A Java-based toolkit for building interactive information visualization applications
- VisAD - A Java component library for interactive and collaborative visualization.
- Linguine Maps - An open-source Java-based system for visualizing software call maps.
- Zoomable Visual Transformation Machine - Java. Originally started at Xerox Research Europe.
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
JavaScript
Browsers are now very fast and there are a large number of data plotting systems built on JavaScript. Check out:
- processingjs.org
- Highcharts JS
- D3 - Data Driven Documents - A visualization library for the Web.
- KeyLines - Commercially licensed visualization library for networks/graphs.
C/C++
- The Visualization Toolkit - C++ multi-platform with interfaces available for Tcl/Tk, Java and Python.
Applications
Most of the following applications can be used to do visualization.
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 Group, 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
- graph-tool is an efficient Python module for manipulation and statistical analysis of graphs (a.k.a. networks).
- https://igraph.org/ - Integrates with R.
- https://socnetv.org/ - "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.
- https://tulip.labri.fr/site/ - Tulip is an information visualization framework dedicated to the analysis and visualization of relational data.
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.
Unclassified
- Gravisto: Graph Visualization Toolkit - An editor and toolkit for developing graph visualization algorithms.
- TouchGraph - Library for building graph-based interfaces.