Skip to content

About

Advanced graph visualization and real-time network simulation engine built with C++17, ImGui, GLFW, and OpenGL

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

graphCore v3.3

Advanced graph visualization and network simulation engine.

graphCore is an interactive application for creating, editing, visualizing, and analyzing graphs and networks. Built with C++17, ImGui, GLFW, and OpenGL.

Features

  • Graph Engine — directed/undirected weighted graphs, 15+ algorithms (Dijkstra, Kruskal, BFS, DFS, Cycle Detection, Coloring, Isomorphism, Planarity, Euler/Hamilton, and more)
  • Adjacency Highlighting — Gephi-style hover effect: highlights the hovered node and its direct neighbors, dimming the rest of the graph for intuitive local exploration
  • Network Simulation — real-time traffic simulation (HTTP, DNS, VOIP, DDOS) with latency, jitter, packet loss, failover, traceroute, and network storms
  • ForceAtlas2 Layout — Barnes-Hut physics simulation for large graphs (QuadTree-accelerated)
  • Graph Templates — Instant generators for classic structures (Complete, Cycle, Grids, Binary Trees, Star, Watts-Strogatz, Petersen, etc.)
  • Visualization — interactive canvas with zoom, pan, drag, real-time algorithm visualization with animated paths
  • Visual Ranking — map node degree to size and color for quick structural analysis
  • Audio — procedurally generated sound effects (no external samples)
  • Persistence — save/load in JSON and GEXF formats

Requirements

  • CMake ≥ 3.20
  • C++17 compiler (GCC, Clang, MSVC)
  • GLFW3, OpenGL (graphics)
  • ALSA or PulseAudio (audio, optional)

Linux (Debian/Ubuntu)

sudo apt-get install cmake g++ libgl1-mesa-dev libxrandr-dev \
  libxinerama-dev libxcursor-dev libxi-dev libxext-dev \
  libglfw3-dev libasound2-dev libpulse-dev

Linux (Arch)

sudo pacman -S cmake gcc glfw-x11 mesa

Quick Start

git clone <repo-url> graphCore
cd graphCore

# Build + test
make build

# Run
make run

Manual build

cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=ON
cmake --build build -j$(nproc)
ctest --test-dir build --output-on-failure
./build/graph-core

Scripts

./scripts/build.sh      # dev build with tests
./scripts/test.sh        # build + run tests
./scripts/package.sh     # release + packaging
./scripts/clean.sh       # remove build artifacts

Project Structure

src/
├── nucleo/              # Core — graph, algorithms, simulation
│   ├── Grafo.hpp/.cpp
│   ├── SimuladorRed.hpp/.cpp
│   ├── algoritmos/      # 15 graph algorithms
│   └── datos/           # data structures
├── interfaz/            # UI (ImGui)
│   ├── Interfaz.hpp/.cpp
│   ├── paneles/         # control panels
│   ├── lienzo/          # canvas rendering
│   ├── componentes/     # UI components (toolbar, status bar, dialogs)
│   ├── ventanas/        # encyclopedia / help window
│   └── estado/          # UI state
├── audio/               # procedural audio
└── persistencia/        # save/load JSON, GEXF
tests/                   # unit tests (GTest)
muestras/                # sample graphs (.json)

Tests

make test

Unit tests covering: graph CRUD, Dijkstra (with directed/undirected), BFS, cycle detection, Union-Find, and network simulation.

Sample Graphs

File Nodes Edges Description
Grafo_Dodecaedro.json 20 30 Dodecahedron graph — platonic solid structure
Grafo_Desargues.json 20 50 Desargues graph — symmetric transitive graph
Muestra_Arbol_BFS.json 40 39 BFS tree — hierarchical structure
Muestra_Dijkstra_Caminos.json 35 58 Grid graph — Dijkstra pathfinding demo
Muestra_Estrella_Doble.json 12 11 Double star graph — central hub topology
Muestra_Anillo_Enlazado.json 20 40 Linked ring — circular graph with long-range edges
Muestra_Fractal_Sierpinski.json 9 9 Sierpinski fractal triangle (depth 2)

Version History

  • v3.3 — Adjacency Highlighting (Gephi-style hover: highlights node neighbors, dims the rest). New encyclopedia sections (Graph Templates, Adjacency Highlighting). Version consistency fix across all UI windows.
  • v3.2 — Added Graph Templates (Grids, Trees, Watts-Strogatz), cleaned up UI, removed annotations and zoom bar.
  • v3.1 — Massive codebase refactor: all headers split into .hpp + .cpp, modular build, tests, CI pipeline, Dijkstra bugfixes, ForceAtlas2 reset fix
  • v3.0 — Network simulation, audio engine, algorithm animation, ForceAtlas2 layout
  • v2.0 — ImGui migration, graph editing, visualization
  • v1.0 — Initial console-based graph algorithms

License

MIT

About

Advanced graph visualization and real-time network simulation engine built with C++17, ImGui, GLFW, and OpenGL

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages