User Tools

Site Tools


Table of Contents


Mycelia (plural of mycelium) is a network visualization tool for the Cave, as well as desktop systems. Networks can be loaded from Graphviz, XML, Chaco, or GraphML files, and graphs modified in the Cave can be saved in Graphviz format. Graph theory algorithms are provided by the Boost library.

Other features include dynamic graph creation and modification tools, dynamic generation of Barabasi-Albert/Erdos-Renyi/Strogatz-Watts graphs, subgraph focus, and edge bundling. Static node layout is provided by a force directed layout algorithm, including an optional CUDA-accelerated implementation. A physically accurate dynamic layout algorithm based on Newton's equations is also available. Scripts to plot network-theoretic quantities such as node degree distribution and centrality can be written in Python, and the resulting plots can be viewed in Caves where Matplotlib is installed.

Mycelia acts as a graph visualization server via an XML-RPC interface. This allows users to write programs that extend Mycelia in almost any language, or offer transparent visualization within existing applications. For example, bindings exist to automatically visualize NetworkX graphs by changing a single variable in existing Python scripts (see Using Mycelia). Current uses of this binding include visualization of e-machine reconstruction, a statistical inference method for creating optimal predictors from time series data.

Source Code

Mycelia is hosted on GitHub, and can be downloaded with the following command once git is installed:

git clone


  • Install Vrui
  • Install boost
  • Install ftgl
  • Install xmlrpc-c
  • Edit the Makefile: Change BASEDIR to the base directory where boost, ftgl, and xmlrpc-c are installed. This will typically be /usr on Linux systems, and /opt/local/ on OS X systems using MacPorts. You may also need to point VRUIDIR to your Vrui install.
  • Compile with make and run the mycelia binary

OS-specific instructions:

  • OS X users are recommended to install MacPorts and install the above libraries (except Vrui) via the Porticus GUI (Note from Dawn 6/11: Mycelia expects g++ in /opt/local but the above installs using Porticus did not install g++ there for me, so I edited the Makefile so CC = $ /usr/bin/g++ rather than $(BASEDIR)/g++)
  • Ubuntu users can install the above libraries (except Vrui) passing sudo apt-get install the following library names: libboost-dev libboost-system-dev libboost-regex-dev libftgl-dev libxmlrpc-c3-dev libcurl4-openssl-dev
keckcaves/mycelia.txt · Last modified: 2012/04/29 09:39 by sumner