Aqua-3D

From Zheng Peng's Wiki
Jump to: navigation, search

Overview

Motivation

Aqua3D is being developed at the University of Connecticut to be the counterpart to the Underwater Sensor Network (UWSN) lab's Aqua-Sim. Aqua-Sim was developed based on NS-2, a popular network simulator, and has the ability to simulate underwater acoustic networks. NS-2's animator NAM however, can only visalize traditional land-based networks (two-dimensional plane), whereas underwater networks are three-dimensional. So, Aqua3D is being developd to be Aqus-Sim's animator, with the ability to visualize three-dimensional underwater networks.

Features

  • Intuitive and easy to use GUI.
  • Robust controls to view the environment (controllable with mouse).
  • Many settings to customize the appearance of the environment.
  • Can jump to specific times in the animation easily.
  • Can adjust the speed of the animation.
  • Several windows to view various details about the environment and the animation.
  • Can save and load camera angles and environment appearances for later recall so that a “perfect view” won’t be lost.
  • Procedurally generated detection of packet collisions at nodes.


Media

Screenshots

425*425px
Basic appearance of nodes and transmission path lines


425*425px
An animation of a transmission signal


425*425px
Signal collisions (spiky red things in the middle nodes)

Video

Old version

Installation

please see KNOWN ISSUES for important information regarding installation/usage problems (specifically when trying to install/run Aqua3D on a virtual machine)

Download

Requirements

  • Linux operating system
    • Has been installed and tested successfully on the following:
      • Ubuntu 8.04, 10.04 LTS, 10.10
      • Debian 5.0.6
      • Fedora 14
    • Installing onto an OS run by a virtual machine (like VMWare) is not recommended because the animator's performance may be severely affected
  • g++ compiler
  • NVIDIA binary Xorg driver
    • If your machine is using an NVIDIA graphics card, it may already have the package nvidia-current (or something similar) installed, which contains the driver
    • If your machine is using an ATI graphics card, you may need to install the nvidia-glx package
  • freeglut-2.6.0 (http://freeglut.sourceforge.net) for the 3D rendering
    • Ubuntu/Debian: freeglut3-dev and its associated packages
    • Fedora: freeglut-devel-2.6.0-5.fc14 and its associated packages
  • GTK+ 2.0 (http://www.gtk.org/) for the GUI
    • Ubuntu/Debian: libgtk2.0-dev and its associated packages
    • Fedora: gtk2-devel-2.22.0-1.fc14.1 and its associated packages
  • wxGTK-2.8.11 (http://www.wxwidgets.org) for the GUI
    • Ubuntu/Debian: libwxgtk2.8-dev and its associated packages
    • Fedora: wxGTK-devel-2.8.11-2.fc14 and its associated packages

Steps

  1. Install freeglut-2.6.0 if not already installed
  2. Install nvidia-glx if necessary
  3. Install GTK+ 2.0 if not already installed
  4. Install wxGTK-2.8.11 with the following steps (if not installing from package manager):
    1. Extract the package with tar -xzf and cd into the folder
    2. Use ./configure --with-opengl --enable-shared --enable-unicode to configure the installation
    3. make
    4. sudo make install
  5. Extract the Aqua-Sim package with tar -xzf and cd into the folder
  6. Enter ./install and the install script will build the entire package (including Aqua3D)
  7. Try running the program by navigating into the Aqua3D directory and entering ./aqua3d
    • If it outputs an error such as "error while loading shared libraries... cannot open shared object file: No such file or directory":
      • Enter /sbin/ldconfig -v to set up the links for the shared binaries and rebuild the cache
    • If it still doesn't work you will also need to add the following line into your .bashrc file (located in your home directory):
      • export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  8. Aqua3D is now ready for use

Tutorials and Manuals

For users, please see Aqua-3D_manual
For developers, please see Aqua-3D_dev_manual


Design

Architecture and Implementation

Aqua-3D was written in a Linux environment in C++, using OpenGL (freeglut specifically) for the 3D rendering and wxWidgets for the GUI (wxGTK specifically). It was originally based on the widely used Network AniMator (NAM). It takes a .nam file generated by Aqua-Sim as input, where every line is a single network event with a specified time of occurrence, a source node, and various other attributes. Aqua-3D reads the file and visualizes the environment based on initial node positions and environment dimensions specified by the file. It then goes through the file line by line, interpreting and animating the event at the correct times and in the correct positions in the network.


People

  • Matthew Tran, United Health Group
  • Yibo Zhu, Google
  • Zheng Peng, Assistant Professor, Computer Science Department, Grove School of Engineering, City College, City University of New York
  • Jun-Hong Cui, Professor, Computer Science & Technology, Jilin University


Publications

Master's Thesis defense presentation (Spring 2011)

Honors Thesis (Spring 2009, very old version of the program)


Links

Aqua3D Source Code Documentation
Aqua3D Trac (SVN repository)

C++
wxWidgets
GTK+
OpenGL
Mesa3D
freeglut
NVIDIA binary Xorg driver
Doxygen
Trac
SVN
NS-2: Network Simulator
NAM: Network Animator
FLTK (no longer used) Link Wheel Лечение рака в Израиле