# 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)

## 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)

## 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)

## 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)

## 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)