Meteopolis

Case study

Interactive Corporate Ownership Graph

Visualize tens of thousands of corporate ownership relationships in a way that lets users explore subgraphs at human scale.

What was built

  • Cypher queries fetch on-demand subgraphs — root node + N-degree neighbors, capped at a node budget.
  • Custom Canvas/WebGL rendering for nodes (avoiding the default DOM-based renderer at scale).
  • Depth and edge-type filters: users toggle subsidiaries, suppliers, brands, customers independently.
  • Click-to-expand UX: each node click fetches and merges its neighbors into the live graph.
  • Performance budget enforced via a node-count cap; over-budget queries return a degraded result with a UI hint.
  • Hover tooltips with provenance: source registry + confidence score + last-confirmed date for every relationship.

Stack

React, react-force-graph-2d, Three.js (custom node rendering), Neo4j Cypher, Custom layout heuristics

Outcome

Renders a 65K-node graph with progressive subgraph expansion. Depth controls and node-count budgets keep the UI responsive at >2K visible nodes.

What was hard

Performance optimization for force-directed graphs at this scale — defaults thrash the simulation. Required custom WebGL node rendering, depth budgets that load the graph progressively, and a hybrid layout that pre-computes positions for the densest neighborhoods and lets the simulation handle only the on-screen subgraph.