Software
Below are various software tools that I have developed. Text in brackets indicates the main programming languages used. Note that CUDA implies C++.
Important: The software provided here is only available for research purposes (see disclaimer in side bar). Prior to any commercial use, contact me.
AFMM
Computes 2D Euclidean distance transforms, feature transforms, and skeletons (C++)
AFMM3D
Computes 3D Euclidean distance transforms, feature transforms, and skeletons (C++)
AreaView
Visualization of UML diagrams with code quality metrics (C++)
binvox
An enhanced (faster, more stable) version of the open-source binvox voxelizer (C/C++)
CUBu
CUDA Universal Bundling framework for huge graphs (CUDA)
CUDASkel2D
Computes 2D Euclidean distance transforms, feature transforms, and skeletons on the GPU (CUDA)
CUDASkelSalience
Computes 2D Euclidean distance transforms, feature transforms, and salience skeletons on the GPU (CUDA)
CUDASkelInteract
Interactive axis-based 3D rotation tool based on image skeletons (CUDA)
CVSgrab, CVSscan
Visualize evolution of CVS and SVN software repositories (C++, C#)
ClonEvol
Extract and visualize evolution of software clones from code repositories (C++)
DataVisualizationBook
Code samples from my data visualization book (C++, OpenGL)
DeepFA-labeling
Support manual labeling of classification training data using FastDBM (Python)
DeforestVis
Visually explore classifiers via simple AdaBoost surrogates (Python,JS)
DejaVu
Extract and refactor (eliminate) code clones in Visual Basic (VB)
DenseSkel
Encode grayscale and color images using dense multiscale skeleton descriptors (CUDA)
DenseSkel Benchmark
Benchmark for using dense skeletons for image compression
DepAnalyze
Extract and visualize evolution of software dependencies in code repositories (C#)
DigitalShave
Digitally remove hairs from dermatoscopic skin imagery (C++)
Drawing near-planar graphs
A spring-based heuristic to find and handle cluttering edges in drawing near-planar graphs (Python)
DreamCode
Visualize structure and metrics of software source code using cushion treemaps (C++)
DTIBundling
Simplification of DTI tracks with trail bundling (C++)
DynProjBenchmark
Benchmark for dynamic projections of time-dependent high-dimensional data (Python)
FastDBM
Fast implementation of the (S)DBM inverse projection algorithms (Python)
GD-2D3D
Finds good viewpoints to view 3D graph drawings, as ProjCompare2D3D but for graphs (Python)
GCCIE
Extract call and dependency graphs form any C/C++ code base (C++)
Guided Dynamic Projections
Two new methods for projecting high-dimensional time-dependent data (Python)
IBIX
Image-based inference explainer - explaining how deep learning regressors work on images (Python)
iMDS
Simple but effective inverse projection for MDS (Python)
KDEEB
Kernel density based edge bundling method (CPU and CPU, C#)
MemoView
Visualize dynamic memory allocations (C/C++)
MetaBalls
Render fluids using metaballs created via surface particles (C++)
Multiphase flow simulation
Simulate multiphase fluid flow real-time using SPH methods (C++)
NNInv
Invert a multidimensional projection (get nD points from 2D locations) (Python)
NNP
Deep learning multidimensional projections (Python)
NNPStability
Visualize the stability of the NNP deep-learning projection method (Python)
OptMap
Visualization of high-dimensional optimization methods (Python)
ProjCompare2D3D
Comparing the quality of 2D and 3D projections of high-dimensional data (Python)
ProjQualExplain
Compute and visualize quality metrics for multidimensional projections (CUDA)
ProjExplain
Dimension-centric explanation of 2D and 3D projections (Rust, OpenGL)
ProjectionExplorer
Same as ProjExplain but massively refined and with extra explanations (C++)
ProjQuantEval
Benchmark for computing and visualizing dimensionality-reduction quality (Python)
RTTI
Add run-time type information (RTTI) to a C++ program for any C++ compiler (C++)
Saliency Spline Skeletons for Image Compression (3S-DMD)
Compress images using spline-based skeletons and saliency maps (CUDA)
Supervised Decision Boundary Maps (SDBM)
Compute decision boundary maps for classifiers accurately in and near-real-time (Python)
Spline-based Dense Medial Descriptors (SDMD)
Spline-and-skeleton-based compression of images (CUDA)
SHARC: SHArpened Dimensionality Reduction and Classification
Extends SDR(-NNP) to classify data using a projection (Python). Needs the companion package pySDR (C++)
Skeleton-based image manipulation
Perform powerful edits of images interactively using skeletons (CUDA)
Shape-Regularized Multidimensional Projections (ShaRP)
How to control the shapes generated by a projection technique (Python)
Sharpened Dimensionality Reduction (SDR)
Sharpened dimensionality reduction by preprocessing the input data (Python)
Sharpened Dimensionality Reduction with Neural Networks (SDR-NNP)
Fast implementation of the SDR method (see above) using neural networks (Python)
Spline-based Medial Axis Transform (SMAT)
Spline-based encoding of binary skeletons (CUDA)
SkelBenchmark
Benchmark for comparing 3D skeletonization algorithms (various languages)
SkelNoiseRemoval
3D shape denoising using saliency skeletons (C++)
SkelCornerDetection
Skeleton-based corner detector for grayscale images (CUDA)
SkeletonSandbox
Interactive tool to compute and visualize 3D distance transforms and multiscale skeletons (C++)
SoftVision
Programmable visualizations of reverse-engineered software system architectures (C++)
SolidSDD
Extract and visualize source code clones in large code bases (C#)
SolidSX
Extract and visualize dependencies and structure from C#, .NET, and Java code (C#)
SolidTA
Extract and visualize software evolution from code repositories (multiple versions)
Salience-aware Dense Skeletons (SSDMD)
Represent an image with dense skeletons driven by image salience metrics (C++)
Self Supervised Neural Projection (SSNP)
Improvement of the NNP algorithm, also providing inverse projection (Python)
TableVision
Programmable table lens and treemap-from-tables visualization framework (C++)
Thesne
Implementation of dynamic t-SNE projection for time-dependent high-dimensional data (Python)
TreemapBenchmark
Benchmark for comparing treemapping methods (Python)
tsNET
Implementation of tsNET graph layout method using t-SNE (Python). An older implementation is available here (Python)
USTNet
Unsupervised 3D Shape-to-Shape Translation (for morphing between shapes) (Python)