Skip to content

Installing NetSimulyzer 3D Visualization Tool under Debian/Ubuntu

NetSimulyzer 3D Visualization Tool

In fact, ‘NetSimulyzer’ consists of two parts. One is the actual 3D visualization tool and the other is an ns-3 companion module. 

Both are named as NetSimulyzer — so it will make some confusion during installation.

This article will only explain the installation of the ‘NetSimulyzer 3D visualization tool’.

NetSimulyzer 3D visualization tool able to ‘play’ the 3D network scenario from different camera perspectives using a special trace output file (.json format) which was created during the ns-3 simulation (the simulation which uses ns-3 NetSimulyzer module).

The NetSimulyzer  3D visualization tool can be used to play/animate/visualize ns-3 network scenarios for better understanding, presenting and debugging them.

Note: In the following article, I explained the installation of ‘NetSimulyzer ns-3 companion module’ — which is used to generate 3D traces needed for recreating the 3D network scenarios.

Installing NetSimulyzer 3D Visualization Support Add-on Module in ns-3 under Debian/Ubuntu

The 3D Visualization Tool –

Installation Requirements 

  1. (Preferably) a Debian/Ubuntu or any Linux variant.
  2. A C++ 17 compliant compiler
    Minimum supported compilers:
    GCC 7.3.0
    or Clang 6.0.0
  3. CMake 3.13 or greater
  4. A graphics card supporting OpenGL 3.3
  5. Qt 5.12
  6. Optional: Doxygen
  7. And most preferably, a computer/laptop with a higher end CPU and a LOT of memory. (Because compiling NetSimulyzer will consume a lot of CPU and memory resources and may just ‘hang’ or ‘crash’ your machine  — particularly around at 85% of the ‘make’ process – So if your system is only having 8GB of memory, then better configure the swap partition or .swap file properly so that the ‘make’ process will logically end with NetSimulyzer binary)

Note: This part of the installation will not require a pre-installed ns-3. (For demonstration purposes, we will only need a sample .json output from a previous 3D simulation)

Installation

Step 1: Install the dependencies 

$ sudo apt install cmake pkg-config qt5-default libqt5charts5-dev

Note: Debian 11 and some latest Ubuntu distros will not have ‘qt5-default’ in their repositories.  So in that case,  there are some tricks to fake the ‘qt5-default’ installation so that the ‘make’ will succeed. In some cases, the installation of ‘libqt5charts5-dev’ will end with some package conflicts. So for a most successful installation, better use ‘Debian 10 Buster’ or equivalent Ubuntu or other Linux distros. (I will explain some tricky install to overcome these issues in another article)

Step 2: Install ‘git’ if needed

$ sudo apt install git

Step 3: Change to a folder under which you want to install NetSimulyzer and clone the NetSimulyzer project from github.

$ cd /home/yourname/

$ git clone –recursive https://github.com/usnistgov/NetSimulyzer.git

This will create a folder ‘NetSimulyzer’ under your home directory.

Step 4: Create a folder under /home/yourname/NetSimulyzer  for doing make from that folder

$ mkdir build

$ cd build

Step 5: Run cmake and specify the source directory, build type, and desired build options and then build.

$ cmake -DCMAKE_BUILD_TYPE=Release ..

$ cmake –build . –parallel

Step 5: Run the NetSimulyzer.

$ cd ..

$ ./build/netsimulyzer

This will open the NetSimulyzer user interface from which you can load and play  .jason format output 3D trace files.

 

Step 6: Load and visualize a 3D Network Scenario (that was previously created during a 3D  ns-3 Simulation)

In this example, the output file of the ns-3 example simulation ‘netsimulyzer-mobility-buildings-example.cc’ –  ‘netsimulyzer-mobility-buildings-example.json’ has been loaded in the NetSimulyzer visualization tool. By clicking Node 0, we can ‘look’ the scenario from that node’s camera perspective.

 

The following posts show the use of NetSimulyzer.

References:

  1. https://github.com/usnistgov/NetSimulyzer
  2. https://dl.acm.org/doi/10.1145/3460797.3460806
WhatsApp Discuss Through WhatsApp