IP Library › Granted Patent US 12,682,518
Granted Patent B2
US 12,682,518 · App. 18/484,373 · Granted Jul 14, 2026

Systems and methods for 3D data visualization and network extraction

Inventors: Aakash Indurkhya (Charlotte, NC); Ciro Donalek (Pasadena, CA); Michael Amori (Pasadena, CA); Sarthak Sahu (Pasadena, CA); Vaibhav Anand (Austin, TX); Justin Gantenberg (Temecula, CA)
Assignee: Virtualitics, Inc.
G06T11/26G06F16/9024G06F16/904G06T1/20G06T1/60
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,682,518
App. No.
18/484,373
Filed
Oct 10, 2023
Granted
Jul 14, 2026
Kind
B2
Art Unit
2618
USPC
345/419
Abstract

Systems and methods for data visualization and network extraction in accordance with embodiments of the invention are illustrated. One embodiment includes a method including obtaining a graph comprising a plurality of nodes and a plurality of edges, identifying a plurality of communities in the graph, where each community includes nodes from the plurality of nodes, generating a community graph structure based on the identified communities, where the community graph includes a plurality of supernodes and a plurality of superedges, spatializing the community graph structure, unpacking the spatialized community graph structure into an unpacked graph structure comprising the plurality of nodes and the plurality of edges, where each node in the plurality of nodes is located at approximately the position of the supernode that represented it, spatializing the unpacked graph structure, and providing the spatialized unpacked graph structure.

Claims (59)

1 . A system for spatializing data in a virtual space, comprising:

a processor; and

a memory containing a data visualization application that directs the processor to:

obtain a network graph comprising of a first plurality of nodes and a first plurality of edges;

identify communities of nodes in the network graph structure;

label each node in the first plurality of nodes with the community in which said node is a member;

generate a community graph representation of the network graph, where the community graph representation comprises:

a second plurality of nodes; and

a second plurality of edges;

where each node in the second plurality of nodes represents nodes in the first plurality of nodes having the same community label; and

where each given edge in the second plurality of edges connects two nodes in the second plurality of nodes, and represents edges in the first plurality of edges that connect pairs of nodes in the first plurality of nodes having community labels equal to the two community labels associated with the nodes connected by the given edge;

spatialize the community graph representation;

unpack the spatialized community graph representation into an intermediate network graph structure, where the intermediate network graph structure comprises the first plurality of nodes and the first plurality of edges, and where the locations of the first plurality of nodes in the intermediate network graph structure approximate the location in the community graph representation of the node representing the same community label in the second plurality of nodes;

spatialize the intermediate network graph structure;

provide the spatialized intermediate network graph structure as a spatialized network graph;

generate a list of all node pairs in the first plurality of nodes;

randomly subsample the list;

calculate centrality for each of the subsampled node pairs using Dijkstra's algorithm;

identify the most central node from the subsampled nodes:

repeat the random subsampling, centrality calculation, and identification of the most central node until the most central node does not change between iterations to identify the most central community in the spatialized network.

2 . The system of claim 1 , wherein to identify communities, the data visualization application directs the processor to apply Markov Clustering to nodes in the first plurality of nodes to generate community labels.

3 . The system of claim 2 , wherein to identify communities, the data visualization application further directs the processor to refine the generated community labels using Louvain Modularity.

4 . The system of claim 2 , wherein the processor comprises at least one graphics processing unit, wherein a pruning threshold for the Markov Clustering is the number of nodes in the first plurality of nodes.

5 . The system of claim 1 , wherein to provide the spatialized network graph, the data visualization application directs the processor to display the spatialized network graph in a virtual 3D environment via a display device.

6 . The system of claim 1 , wherein to obtain the network graph, the data visualization application further directs the processor to extract the network graph from a tabular database.

7 . The system of claim 1 , wherein the data visualization application further directs the processor to identify a community leader node for each community in the spatialized network graph.

8 . The system of claim 1 , wherein to identify the most central community, the data visualization application directs the processor to:

randomly subsample nodes in the first plurality of nodes without replacement until a predetermined threshold is reached;

for each subsampled node, calculate the graph distance between the subsampled node and all nodes in the first plurality of nodes in the spatialized network graph; and

approximate centrality based on the calculated distances.

9 . A method for spatializing data in a virtual space, comprising:

obtaining a network graph comprising of a first plurality of nodes and a first plurality of edges;

identifying communities of nodes in the network graph structure;

labeling each node in the first plurality of nodes with the community in which said node is a member;

generating a community graph representation of the network graph, where the community graph representation comprises:

a second plurality of nodes; and

a second plurality of edges;

where each node in the second plurality of nodes represents nodes in the first plurality of nodes having the same community label; and

where each given edge in the second plurality of edges connects two nodes in the second plurality of nodes, and represents edges in the first plurality of edges that connect pairs of nodes in the first plurality of nodes having community labels equal to the two community labels associated with the nodes connected by the given edge;

spatializing the community graph representation;

unpacking the spatialized community graph representation into an intermediate network graph structure, where the intermediate network graph structure comprises the first plurality of nodes and the first plurality of edges, and where the locations of the first plurality of nodes in the intermediate network graph structure approximate the location in the community graph representation of the node representing the same community label in the second plurality of nodes;

spatializing the intermediate network graph structure;

providing the spatialized intermediate network graph structure as a spatialized network graph; and

identifying the most central community in the spatialized network graph by:

generating a list of all node pairs in the first plurality of nodes;

randomly subsampling the list;

calculating centrality for each of the subsampled node pairs using Dijkstra's algorithm;

identifying the most central node from the subsampled nodes;

repeating the random subsampling, centrality calculation, and identification of the most central node until the most central node does not change between iterations.

10 . The method of claim 9 , wherein identifying communities comprises applying Markov Clustering to nodes in the first plurality of nodes to generate community labels.

11 . The method of claim 10 , wherein identifying communities comprises refining the generated community labels using Louvain Modularity.

12 . The method of claim 10 , wherein the processor comprises at least one graphics processing unit, wherein a pruning threshold for the Markov Clustering is the number of nodes in the first plurality of nodes.

13 . The method of claim 9 , wherein providing the spatialized network graph comprises displaying the spatialized network graph in a virtual 3D environment via a display device.

14 . The method of claim 9 , wherein obtaining the network graph comprises extracting the network graph from a tabular database.

15 . The method of claim 9 , further comprising identifying a community leader node for each community in the spatialized network graph.

16 . The method of claim 9 , wherein identifying the most central community comprises:

randomly subsampling nodes in the first plurality of nodes without replacement until a predetermined threshold is reached;

for each subsampled node, calculating the graph distance between the subsampled node and all nodes in the first plurality of nodes in the spatialized network graph; and

approximating centrality based on the calculated distances.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2023
From: INDURKHYA, AAKASH; DONALEK, CIRO; AMORI, MICHAEL; SAHU, SARTHAK; ANAND, VAIBHAV; GANTENBERG, JUSTIN
To: VIRTUALITICS, INC.
Reel/Frame 065475/0078 →
Continuity (4)
Continuation 18049240 · Oct 24, 2022
Continuation 17157819 · Jan 25, 2021
Provisional Application 62965112 · Jan 23, 2020
Related Publication 20240119649A1 · Apr 11, 2024
References Cited (32)
US 10621762B2 · Donalek et al. · 2020 [cited by applicant]
US 11481939B2 · Indurkhya et al. · 2022 [cited by applicant]
US 20170242957A1 · Han · 2017 [cited by examiner]
US 20190221039A1 · Korkin · 2019 [cited by examiner]
US 20190272479A1 · Mars et al. · 2019 [cited by applicant]
US 20210200797A1 · Otaki et al. · 2021 [cited by applicant]
US 20210233295A1 · Indurkhya et al. · 2021 [cited by applicant]
US 20210326652A1 · Hazard et al. · 2021 [cited by applicant]
US 20230137890A1 · Indurkhya et al. · 2023 [cited by applicant]
US 20230306044A1 · Indurkhya et al. · 2023 [cited by applicant]
WO WO2021108305A1 · 2021 [cited by examiner]
Lima et al., “Graph-Based Relational Data Visualization,” 2013 17th International Conference on Information Visualisation, London, UK, 2013, pp. 210-219, doi: 10.1109/IV.2013.28. (Year: 2013). [cited by examiner]
Liu et al., “Learning Markov Clustering Networks for Scene Text Detection,” Computer Vision and Pattern Recognition, Cornell University, May 22, 2018. (Year: 2018). [cited by examiner]
“Force Atlas 2”, printed Jan. 18, 2021 from https://github.com/gephi/dephi/wiki/Force-Atlas-2, 3 pgs. [cited by applicant]
“Jaccard index”, Wikipedia, Retrieved from: https://en.wikipedia.org/wiki/Jaccard_index, Last updated Jun. 7, 2020, 9 pgs. [cited by applicant]
“Louvain modularity”, Wikipedia, Retrieved from: https://en.wikipedia.org/wiki/Louvain_modularity, Last updated Jun. 3, 2020, 5 pgs. [cited by applicant]
“MCL—a cluster algorithm for graphs”, Retrieved as of Jul. 3, 2013 from https://web.archive.org/web/20130703110235/https://micans.org/mcl/, 1 pg. [cited by applicant]
“Modularity (networks)”, Wikipedia, Retrieved from: https://en.wikipedia.org/wiki/Modularity_(networks), Last updated May 19, 2020, 4 pgs. [cited by applicant]
Blondel et al., “Fast unfolding of communities in large networks”, Journal of Statistical Mechanics Theory and Experiment, Oct. 9, 2008 doi:10.1088/1742-5468/2008/10/P10008. [cited by applicant]
Jaccard, “The Distribution of the Flora in the Alpine Zone”, The New Phytologist, Feb. 29, 1912, vol. XI, No. 2, pp. 37-50. [cited by applicant]
Jacomy et al., “ForceAtlas2, a Continuous Graph Layout Algorithm for Handy Network Visualization Designed for the Gephi Software”, PLOS One, vol. 9, No. 6, Jun. 10, 2014, Retrieved from: ForceAtlas2, a Continuous Graph … [cited by applicant]
Lima et al., “Graph-based Relational Data Visualization”, IEEE 17th Intl. Conf. on Information Visualization, 2013, pp. 210-219. [cited by applicant]
Liu et al., “Learning Markov Clustering Networks for Scene Text Detection”, arXiv:1805.08365v1 [cs.CV]. (Year: 2018). [cited by applicant]
Minaei-Bidgoli et al., “A Comparison of Resampling Methods for Clustering Ensembles”, MLMTA'04. (Year: 2004). [cited by applicant]
Van Dongen, “Graph Clustering by Flow Simulation”, Thesis, Center for Math and Computer Science (CWI), 2000, 173 pgs. [cited by applicant]
Daitch et al., “Fitting a Graph to Vector Data”, Proceedings of the 26th International Conference on Machine Learning, Montreal, Canada, 2009, 8 pgs. [cited by applicant]
Jain et al., “Elkan's k-means algorithm for graphs”, 9th Mexican International Conference on Artificial Intelligence, Pachuca, Mexico, Nov. 8-13, 2010, pp. 22-32. [cited by applicant]
Mirkes et al., “Fractional norms and quasinorms do no help to overcome the curse of dimensionality”, arXiv: 2004.14230v1, Apr. 29, 2020, 13 pgs. [cited by applicant]
Shi et al., “Normalized cuts and image segmentation”, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 22, No. 8, Aug. 2000, pp. 88-905. [cited by applicant]
Sidorov et al., “Advances in Soft Computing”, 9th Mexican International Conference on Artificial Intelligence, Pachuca, Mexico, Nov. 8-13, 2010, 536 pgs. [cited by applicant]
Thirey et al., “Distribution of Euclidean Distances Between Randomly Distributed Gaussian Points in n-Space”, arXiv, 2015, 13 pgs. [cited by applicant]
Zhao et al., “Spectral Feature Selection for Supervised and Unsupervised Learning”, Proceedings of the 24th International Conference on Machine Learning, Corvallis, Oregon, 2007, 8 pgs. [cited by applicant]