Huginn - Visualizing Network Simulation in 3D

This is the "under construction" homepage of huginn, a 3D visualizer for network simulation trace files, esp. those of the ns-2 network simulator. Huginn is a tool developed during the process of the 'Diplomarbeit' (something similar to a master thesis) of Björn Scheuermann.

This page is part of the Homepage of Computer Science IV at the University of Mannheim, Germany.

Contacts: Björn Scheuermann, Holger Füßler, and Matthias Transier


Download

Huginn is not yet available as a binary distribution. The sources can be found here: huginn-0.9.tar.bz2 (305 kB).

Installation

For the Huginn ns-2 simulation visualizer, you need the V-IDS discrete event visualization engine. V-IDS, in turn, uses the OpenSG scene graph library, which is, unfortunately, not readily available in the major Linux distributions. So what we need to do here is

The first part is probabily the hardest, so don't give up too early. ;-)

1. OpenSG

The OpenSG sources can be obtained from http://www.opensg.org. PNG, JPEG, GLUT and FreeType1 support need to be enabled (via configure options, for a list use "./configure --help" in the source directory). Thus, you'll need OpenGL, libjpeg, libpng, GLUT and freetype1 installed. I've used OpenSG 1.4 so far; 1.6 might also work, but this has not yet been verified -- feedback on this is highly welcome. :-)

OpenSG does a bad job when it comes to locating freetype.h, so you might have to give configure the --with-freetype1includedir option and tell it where to find freetype.h. Otherwise, compiling OpenSG (not configure, but make!) will fail. Carefully check the error messages, if that happens -- in particular, search for the first compile error! In order to avoid tons of debug symbols, you should use "make opt" and "make install opt" instead of "make" and "make install" for OpenSG.

If not all OpenSG libraries, but only libOSGBase is built, type "make opt" again and check for error messages. You'll simply notice this either by checking which files have been installed, or by compile errors later on. If libraries or headers are missing, OpenSG's configure script often doesn't notice, but the build process fails. As mentioned above, the *first* error message should tell you what's wrong.

When your new OpenSG libraries are installed using "make install opt" (as root),make sure your linker can find them. It often happens that they are installed in /usr/lib/opt or /usr/local/lib/opt, where they cannot be found. In that case, just move them to /usr/lib or /usr/local/lib, respectively, and call ldconfig.

2. V-IDS

Apart from OpenSG, you need the following software in order to compile V-IDS:

All these are typically readily available for the major distributions, or otherwise should be quite straightforward to obtain and install.

If you have all these installed, you can build and install V-IDS using the common configure, make, make install steps.

3. Huginn

For Huginn you will, apart from the dependencies mentioned above, additionally need the following:

As of my experience, these are typically distributions.

The installation is then quite easy, although it requires some manual work. First, merge the contents of the path usr in the archive into your system's /usr path -- everything exactly like it is kept here. Then, change to the gui directory from the tarball and run "make". This builds Huginn's GUI.

You may run the GUI binary "huginn" created by make directly, or you can copy it to some central location like /usr/bin or /usr/local/bin.

Have fun!

Any feedback is highly appreciated, so in case of problems, difficulties, doubts gratitude, or euphoria please come back to me. :-)

Björn

Screenshots

Movies1

Different unicast and broadcast packets from various sources in a random topology are transmitted. Different colors are configured for different packet types here. A value from the internal state of each node is mapped to the height of a bar chart floating above the nodes. What can also be seen in this movie is some basic 3D navigation within the scene, the selection of nodes and marking of two nodes with colored "flags".
In this movie an AODV route request is broadcasted through a static grid topology. Many packet collisions can be observed. When it arrives at the destination node near the far corner, a route reply is sent back to the source node using unicast transmissions. In each step the following sequence of frames occurs: ARP request (broadcast) - RTS - CTS - ARP reply - ACK - RTS - - CTS - AODV route reply - ACK. When this information in turn reaches the source node, two data packets are transmitted along the newly established route. Here, again, an RTS/CTS handshake occurs in every step: RTS - CTS - DATA - ACK. Different packet types (AODV, ARP, RTS, CTS, ACK, DATA) can be distinguished by the color of the transmission. The "sending activity" of each node in the recent past influences its color. Thus upon transmission of the route reply, the nodes on the route change their color from green to red, because they transmit many packets: The route becomes visible.
1: The movies are DIVX-encoded. To view them, you need the corresponding codec (e.g., from here).

Publications