WiFiViz

Configure and run ns-3 Wi-Fi simulations with visualization
Categories: Wireless, Visualization

WiFiViz

WiFiViz is a visualization and analysis module for ns-3 Wi-Fi simulations. It provides an interactive web-based dashboard that helps users explore simulation results, inspect protocol behavior, and analyze network performance through intuitive graphical visualizations.

Project Repository: WiFiViz

WiFiViz bridges the gap between raw simulation traces and human-readable insights. Instead of manually inspecting log files or processing large trace datasets, users can interactively navigate simulation events, correlate protocol activities across different layers, and observe network behavior through synchronized visual representations.

The module transforms ns-3 trace data into coordinated views of network topology, packet transmissions, protocol events, queue dynamics, and performance metrics, making complex simulation scenarios easier to understand, validate, and debug.

Key Features

Interactive Topology Visualization

  • Visualize node placement, mobility, wireless links, and network structure.
  • Observe changes in network connectivity and node movement during simulation execution.
  • Explore simulation scenarios through an intuitive graphical representation of the network.

PHY and MAC Layer Analysis

  • Inspect PPDU transmissions and receptions across devices.
  • Analyze PHY state transitions and channel occupancy.
  • Examine frame exchanges, retransmissions, acknowledgements, and medium-access behavior.
  • Understand protocol interactions through detailed event timelines.

Timeline-Based Exploration

  • Correlate events across multiple nodes and protocol layers using synchronized timelines.
  • Track packet lifecycles from transmission to acknowledgement.
  • Investigate protocol behavior at specific simulation times with fine-grained event inspection.

Performance Monitoring

  • Analyze throughput, packet delivery ratio, latency, queueing delay, and MAC service delay.
  • Compare network performance under different traffic loads and simulation configurations.
  • Monitor key performance indicators through continuously updated visual dashboards.

Statistical Dashboards

  • View distributions, cumulative distribution functions (CDFs), histograms, and time-series charts.
  • Explore trends and variability in simulation metrics.
  • Support performance evaluation and experimental analysis through graphical summaries.

Simulation Configuration Interface

  • Configure common network, mobility, and traffic parameters through a graphical interface.
  • Reduce the need for repetitive source-code modifications when exploring different simulation scenarios.
  • Improve usability for teaching, experimentation, and rapid prototyping.

Research and Educational Support

  • Facilitate debugging and validation of Wi-Fi simulation models.
  • Provide visual demonstrations of wireless networking concepts for educational use.
  • Assist researchers in understanding protocol behavior and interpreting experimental results.

Typical Use Cases

WiFiViz can be used for:

  • Investigating Wi-Fi protocol behavior and frame exchanges.
  • Debugging simulation scenarios and identifying unexpected network behavior.
  • Evaluating wireless network performance under varying traffic and mobility conditions.
  • Demonstrating networking concepts in classrooms and laboratory environments.
  • Supporting academic research involving IEEE 802.11 and wireless communication systems.
  • Rapidly exploring simulation outputs without manually processing trace files.

Intended Users

WiFiViz is designed for researchers, students, educators, and developers who want to better understand, analyze, validate, and debug ns-3 Wi-Fi simulations through interactive visual exploration. It is particularly useful for users working with complex wireless scenarios where traditional log-based analysis becomes difficult or time-consuming.

Compatibility

WiFiViz is distributed as an ns-3 contrib module and is currently compatible with ns-3.46 and newer releases.

v2.1.1

Works with ns-3.46

Latest Build :

Build History : WiFiViz v2.1.1

Release Notes

<h2>WiFiViz v2.1.1</h2> <p>Based on WiFiViz v2.1.0, this release focuses on improving build robustness, dependency handling, and compatibility with recent ns-3 releases.</p> <h3>Changes</h3> <ul> <li>Improved Qt version detection and compatibility handling to avoid unnecessary build warnings.</li> <li>Fixed Qt AutoGen warnings caused by empty source files.</li> <li>Updated the documented requirements to indicate support for ns-3.46 and newer releases.</li> </ul> <h3>Build Verification</h3> <ul> <li>Verified with ns-3.47.</li> <li>Successfully builds the <code>WiFiVizApp</code> GUI frontend and the <code>wifiviz-script-generator</code> utility.</li> </ul>

v2.1.0

Works with ns-3.46

Latest Build :

Build History : WiFiViz v2.1.0

Release Notes

<h2>WiFiViz v2.1.0</h2> <p>This release addresses the build robustness and portability issues identified in the WiFiViz module review.</p> <h3>Fixed</h3> <ul> <li>Added configure-time checks for required third-party dependencies:</li> <li><code>nlohmann_json &gt;= 3.2.0</code></li> <li>Boost.Interprocess headers</li> <li>Fixed missing dependency handling so <code>wifiviz</code> is skipped cleanly at configure time instead of failing later during compilation.</li> <li>Linked <code>nlohmann_json::nlohmann_json</code> explicitly and propagated the Boost include path to the module target.</li> <li> <p>Replaced the broken header-only JSON fallback in the script generator with a required <code>nlohmann_json</code> check.</p> </li> <li> <p>Removed the forced C++23 requirement.</p> </li> <li> <p>WiFiViz now inherits the ns-3 C++ standard instead of requiring a newer compiler unnecessarily.</p> </li> <li> <p>Fixed macOS GUI build behavior.</p> </li> <li>Removed <code>MACOSX_BUNDLE</code> so <code>WiFiVizApp</code> is built as a plain executable at the expected path.</li> <li> <p>Avoids macOS bundle-related CMake warnings and launcher path mismatch.</p> </li> <li> <p>Reduced shared-memory allocation from a fixed 1 GiB segment to <code>sizeof(RingBuffer) + 64 KiB</code>.</p> </li> <li>Prevents unnecessary memory pressure on macOS, containers, CI, and low-memory systems.</li> <li> <p>Shared-memory setup failures now disable visualization gracefully instead of aborting the simulation.</p> </li> <li> <p>Registered the GUI launcher as the ns-3 example target <code>wifiviz-visualizer</code>.</p> </li> <li>Users can now run <code>./ns3 run wifiviz-visualizer</code>.</li> <li> <p>No manual copy into <code>scratch/</code> is required.</p> </li> <li> <p>Made the Qt GUI front-end optional.</p> </li> <li>Missing Qt no longer breaks the whole ns-3 configure step.</li> <li> <p>The core <code>wifiviz</code> module can still build without the GUI.</p> </li> <li> <p>Fixed <code>stdc++fs</code> portability.</p> </li> <li><code>stdc++fs</code> is now linked only for older GNU compilers that need it.</li> <li>Avoids Clang/libc++ link failures on macOS.</li> </ul> <h3>UI and Runtime Polish</h3> <ul> <li>Removed leftover debug output from simulation and UI paths.</li> <li>Fixed stale timeline hover tooltips.</li> <li>Centered dialogs relative to the main WiFiViz window.</li> <li>Reworked the build-wait dialog so it has no OK/close controls and dismisses automatically when build completes.</li> <li>Updated UI branding:</li> <li>Window title: <code>WiFiViz</code></li> <li>Cover page title: <code>Wifi Visualizer</code></li> </ul>

v2.0.1

Works with ns-3.46

Latest Build :

Build History : WiFiViz v2.0.1

Release Notes

<p>Adding RX Outcome Timeline Address the zooming problem Enabling MLO analyzing</p>

# Installation * Clone this repository directly into the ns-3 `contrib/` directory. The clone destination **must** be named `wifiviz` so that ns-3 can discover the module correctly. ### HTTPS ``` cd /path/to/ns-3.46/contrib git clone --depth 1 https://github.com/z14212638-eng/WiFiViz.git wifiviz ``` ### SSH ``` cd /path/to/ns-3.46/contrib git clone --depth 1 git@github.com:z14212638-eng/WiFiViz.git wifiviz ``` * The final directory structure should be: ``` /path/to/ns-3.46/contrib/wifiviz ``` * If you would like to use a specific stable release instead of the latest development version, available releases can be found at: ``` https://github.com/z14212638-eng/WiFiViz/releases ```

WiFiViz is actively maintained by the project authors. **Maintainer** * Kevin Zhang ([z14212638@gmail.com](mailto:z14212638@gmail.com)) **Project Resources** * Source repository: https://github.com/z14212638-eng/WiFiViz * Issue tracker: https://github.com/z14212638-eng/WiFiViz/issues **Compatibility** * Compatible with ns-3.46. **Contributing** * Bug reports, feature requests, and pull requests are welcome through GitHub.

This development version currently corresponds to the latest public release of WiFiViz (v2.1.1). The source tree includes the stable codebase, documentation, examples, and tests required for use as an ns-3 contrib module. Future feature development and compatibility updates will be tracked through this branch until the next official release is published.

This ns-3 extension is one or more contributed modules.

Version v2.1.1

Released June 2, 2026

Works with ns-3.46