Skip to content

News

SocNetV v3.5 Released

SocNetV v3.5 released! 🎉

We are excited to announce the release of SocNetV v3.5, the most feature-rich release in the project’s history!

This release introduces graph exploration filters, a new ego-centered radial layout, a complete node/edge attribute system, a live data table dock with inline editing, and structured CSV/JSON export and import — unlocking a full roundtrip workflow between SocNetV and external spreadsheet tools.

🔍 What’s New in SocNetV v3.5?

🔎 Graph Exploration Filters

A new set of non-destructive, snapshot/restore filters lets you focus on the parts of the network that matter:

  • Focus on Node (Ego Network): hides all nodes except the selected node and its direct neighbors, and all non-incident edges. Available in the Filter menu and node right-click context menu.
  • Focus on Selection: hides all nodes not in the current selection and all edges whose endpoints are not both selected (Ctrl+X, Ctrl+S).
  • Restore All Nodes: restores all nodes hidden by any filter (ego network, selection, or centrality). Available in Filter menu and right-click context menu.
  • Restore All Edges: re-enables all edges hidden by the weight filter (Ctrl+E, Ctrl+R).
  • All node-visibility filters share a unified non-destructive snapshot/restore history stack — Restore All works across all filter types.

🌐 Ego-centered Radial Layout

A new layout places a selected node at the canvas center, its 1-hop out-neighbors on an inner ring, and all remaining nodes on an outer ring. Available via the Layout menu (Ctrl+Alt+E) and node right-click context menu.

🏷 Node/Edge Attribute System

SocNetV now supports arbitrary custom attributes on both nodes and edges:

  • Set and remove custom key/value pairs on any node or edge via the Properties dialogs.
  • Edge Properties dialog: edit label, weight, color, and arbitrary custom key/value pairs — accessible from the toolbar and edge right-click context menu.
  • GraphML roundtrip: custom node and edge attributes are fully saved and reloaded when working with GraphML files.
  • Filter Nodes By Attribute: a non-destructive filter available in the Filter menu (Ctrl+X, Ctrl+A) lets you show only nodes matching a key/value condition.

⚙️ Attribute-based Filtering

  • Filter conditions support scope (Nodes, Edges, or Both), key, operator (= > < contains), and value.
  • A dedicated dialog lets you select a scope, pick from existing attribute keys, choose an operator, and enter a value.
  • Edges can also be filtered by attribute, using the same snapshot/restore stack as node filters. Numeric values are compared numerically; text values are compared lexicographically.
  • A filter combo in the Control Panel and a dedicated toolbar filter group give one-click access to all filter actions.

🏷 Filter Bar with Chips

  • A persistent Filter Bar strip sits between the toolbar and canvas; it is hidden when no filter is active and appears automatically when any filter is applied.
  • Each active filter condition is shown as a labelled chip (e.g. Nodes: ego network, Edges: weight filter, Nodes: type = investor).
  • Clicking × on the most recently applied chip removes it and reverts that one filter step.
  • The “Clear all” button removes all active filters in one click.
  • All five filter actions produce chips: centrality, ego network, selection, attribute, and edge weight.

📋 Node/Edge Data Table Dock

  • A new dockable Data Table panel (Ctrl+T, also in Options and Edit menus) with two tabs — Nodes and Edges.
  • Nodes tab: columns for number, label, visibility, shape, size, and color — plus one column per custom attribute key. Label, size, color, and custom attribute cells are inline-editable (double-click).
  • Edges tab: columns for source, target, relation, weight, label, and color — plus custom attributes. Weight, label, color, and custom attribute cells are editable.
  • All edits write back to the graph immediately.
  • Live search bar filters all columns (case-insensitive); column headers are sortable; a Refresh button reloads data from the current graph.
  • The panel auto-refreshes on file load and graph reset when it is open.

📤 Structured CSV/JSON Export

  • Each tab in the Data Table dock has Export CSV and Export JSON buttons — they export the currently visible (search-filtered) rows.
  • Network → Export to other... gains four new actions: Nodes as CSV, Edges as CSV, Nodes as JSON, Edges as JSON — these always export all rows.

📥 Structured CSV/JSON Attribute Import

  • Import node or edge attributes from a CSV or JSON file via the Import buttons in the Data Table dock.
  • A preview dialog shows the first rows of the file and lets you map columns: choose which column holds the node ID (or the source/target for edges).
  • Standard columns (Label, Size, Color for nodes; Weight, Label, Color for edges) are routed to their proper fields; all other columns become custom attributes.
  • The table auto-refreshes after import.
  • Supports a full lossless export→import roundtrip: re-importing an exported file produces no duplicate columns and no data loss.

📊 Spreadsheet-based Bulk Attribute Editing

Export the data table to CSV or JSON, edit it freely in any spreadsheet tool (Excel, LibreOffice, Google Sheets), and re-import to update attributes in bulk. Each node or edge can carry different values — unlike in-app bulk operations which assign one value to many.

⚡ Improvements

  • Fruchterman-Reingold layout: significantly faster on large graphs thanks to pre-cached adjacency lookups, better initial placement, and early convergence detection.
  • Kamada-Kawai layout: particles that drift out of bounds are now clamped to the canvas instead of being teleported randomly.

🐛 Bug Fixes

  • Fixed Kamada-Kawai crash when node filters are active.
  • Fixed crash on graph reset when an edge had already been removed.
  • Fixed filter history stack not being cleared on graph clear / application reset.
  • Fixed custom node attribute key/id mismatch in GraphML export.
  • Fixed Pajek parser: use default node shape as fallback when no Pajek shape keyword is present.
  • Fixed hierarchical clustering dialog signal/slot mismatch.
  • Fixed Node Properties dialog UX issues for custom attributes.
  • Fixed triad census appending stale zeros on repeated runs.

We’d like to thank our contributors and users for reporting issues, testing fixes, and helping SocNetV improve with every release. 🙏

Download SocNetV v3.5 from our Download page and let us know what you think!

Happy analyzing!
— The SocNetV Team

SocNetV v3.4 Released

SocNetV v3.4 Screenshot

SocNetV v3.4 released! 🎉

We are happy to announce the release of SocNetV v3.4, the latest version of our cross-platform social network analysis and visualization software.

This release focuses on stability and correctness, with a comprehensive overhaul of progress/cancel handling across all computation paths, significant parser and layout fixes, and the completion of the IO/Parser architectural refactor started in v3.3.

🔍 What’s New in SocNetV v3.4?

⏹ Comprehensive Cancel support in progress dialogs (#52)

This has been one of the longest-standing issues in SocNetV. In v3.4, the Cancel button in progress dialogs now works correctly and consistently across all computation paths:

  • Centrality and prestige computations
  • Reachability and walks
  • Matrix and report generation
  • Layout algorithms (including Kamada-Kawai)
  • Clique census and subgraph construction
  • All random network generators (Erdős–Rényi, Small-World, Scale-Free, Regular, Lattice, Ring-Lattice)

📐 Force-directed layout fixes

  • Fixed division-by-zero, NaN/Inf, and logic errors in the Kamada-Kawai layout (#198)
  • Fixed Fruchterman-Reingold simmering temperature derivation from canvas size (#199)
  • Faithful reimplementation of the Eades (1984) Spring Embedder (#207)
  • Batched node position emissions in all force-directed layouts for smoother rendering (#205, #206)

📥 Parser and IO fixes

Many import/export edge cases resolved:

  • Pajek *Matrix header parsing for relation labels (#188)
  • Pajek multirelational export as *Matrix blocks (#184)
  • Normalized quoted relation names in Pajek headers (#185)
  • Inline GML node/edge block parsing (#186)
  • Arc doubling when loading undirected DOT graphs (#187)
  • Platform-dependent weighted=true from uninitialized variable in DOT parser (#189)
  • Two-mode sociomatrix import now correctly handled in the parser (#15)

📊 Centrality fixes

  • Fixed eigenvector centrality isolate reset and N==0 handling (#202)
  • Fixed Information Centrality isolate handling and degenerate cases (#201)
  • Fixed clustering coefficient computation for directed networks (#58)
  • Fixed wrong weighted flag when switching relations (#82)

🏗 Completed IO/Parser refactor (WS4)

The architectural refactor of the IO/Parser layer, started in v3.3, is now complete:

  • The monolithic parser.cpp (~5500 LOC) has been split into focused per-format modules: edgelist, adjacency, UCINET DL, DOT, GML, Pajek, GraphML
  • An explicit IGraphParseSink mutation surface replaces the old Qt signal fan-out
  • GUI and headless (socnetv-cli) loading paths now share an identical, deterministic mutation pipeline

🧪 Expanded regression harness

  • New io_roundtrip kernel (schema v5) for IO/parser regression protection
  • Many new golden comparison cases and small deterministic test networks
  • New helper scripts: run_io_roundtrip_shipped_datasets.sh, run_golden_io_roundtrip.sh

🌐 i18n

  • Added update_translations.sh script for maintainers
  • Updated DE and ES translation files

🛠 Build and packaging

  • Debian packaging switched to CMake build system
  • RPM spec updated for CMake (Fedora, openSUSE, Mageia)
  • CMake now generates .qm translation files via qt_add_lrelease

We’d like to thank our contributors and users for reporting issues, testing fixes, and helping SocNetV improve with every release. 🙏

Download SocNetV v3.4 from our Download page and let us know what you think!

Happy analyzing!
— The SocNetV Team

SocNetV v3.3 Released

SocNetV v3.3 Screenshot

SocNetV v3.3 released! 🎉

We are excited to announce the release of SocNetV v3.3, the latest version of our cross-platform social network analysis and visualization software.

This release focuses on robustness and long-term maintainability, with major improvements under the hood — while also adding a useful new feature for researchers working with centrality and prestige.

🔍 What’s New in SocNetV v3.3?

🧱 Major internal refactor: Graph is now a façade SocNetV’s Graph has been refactored into a façade/coordinator, with functionality split into focused modules under src/graph/*.
This makes the codebase easier to extend and safer to evolve without breaking behavior.

📏 DistanceEngine stabilized + deterministic regression guardrails We extracted and stabilized DistanceEngine, and added:

  • deterministic “golden” regression outputs
  • performance benchmark guardrails to help keep refactors honest over time

🧪 New headless regression harness: SocNetV v3.3 introduces socnetv-cli, a modular regression harness designed to protect algorithmic correctness during refactors. It supports schema-versioned JSON outputs and committed baselines, with kernels for:

  • distance (v1)
  • reachability (v2)
  • walks matrix (v3)
  • prominence (v4)

🎯 New feature: filter vertices by centrality & prestige indices You can now filter vertices based on their centrality and prestige scores — a great way to focus analysis on the most important actors in your networks.

filter vertices by centrality

📥 Import / parsing fixes A lot of edge cases were fixed to make importing more reliable:

  • Pajek mixed files with overlapping *Arcs/*Edges blocks
  • UCINET/DL edge cases (line wrapping, diagonal handling)

🧮 Walks computation fixes Fixes in walksBetween() and walks-matrix parameters improve correctness and consistency of walk-based measures.

🛠 Build, packaging, and UI polish

  • cross-platform build & packaging fixes (Qt6/CMake, Debian packaging updates, openSUSE spec fixes, macOS arm64 linker fix)
  • UI polish for disabled widgets and checkbox/radio styling

We’d like to thank our contributors and users for reporting issues, suggesting features, and helping SocNetV improve with every release. 🙏

Download SocNetV v3.3 from our Download page and let us know what you think!

Happy analyzing!
— The SocNetV Team

SocNetV v3.2 Released

SocNetV v3.2 Screenshot

SocNetV v3.2 released! 🎉

We are excited to announce the release of SocNetV v3.2, the latest version of our cross-platform social network analysis and visualization software.

This new release introduces some powerful features and important improvements aimed at enhancing your research workflows and making network modeling even easier.

🔍 What’s New in SocNetV v3.2?

🧩 Custom node attributes (metadata)
You can now define and manage custom metadata for nodes directly through the Node Properties dialog. This allows for a more flexible and descriptive representation of your network data — great for researchers who want to attach additional information to each actor.

📊 Node labels in adjacency matrix files
SocNetV v3.2 introduces support for node labels when reading adjacency matrix-formatted files. That means better interoperability with external tools and datasets, and no more guessing who node “3” is supposed to be.

🔧 A modernized build system
We’ve moved to a CMake-based build system, which simplifies compilation and packaging across platforms. Whether you’re building from source on Linux, macOS, or Windows, the process is now more standard and maintainable.

🎯 Updated Filter Edges by Weight
The Filter Edges by Weight functionality has been revamped for improved usability and consistency. It’s now easier to focus on the strongest (or weakest) connections in your networks.

🐛 Tons of bug fixes
From UI tweaks to core algorithm improvements, v3.2 resolves numerous bugs reported by our users. You can explore the full list of closed issues in the GitHub milestone.


We’d like to thank our contributors and users for reporting issues, suggesting features, and helping us improve SocNetV with every release. 🙏

Download SocNetV v3.2 from our Download page and let us know what you think!

Happy analyzing!
— The SocNetV Team

SocNetV v3.1 Released

SocNetV v3.1 Screenshot

Description

The Social Network Visualizer project announces a new version of our favorite SNA application. SocNetV v3.1 is the first Qt6-only release and brings many improvements and bug fixes.

What’s New in v3.1

  • Improved Performance: Faster large file loading and quicker responsiveness with large nets (greater than 20,000 edges), while having a reduced memory footprint.
  • Bug Fixes: Edge filtering now works as intended.

Availability

The new version is available for Windows, macOS, and Linux. Go to the SocNetV Downloads page to get it.