Software & Products
I write the software myself — from GPU numerical cores to web front ends to the instrument-control layer that talks to the spectrometer over TCP. Research that ships.
Try the real thing
OreVision Interactive Mineral Maps
Hover a pixel: mineral mixture, abundance, and probability. Click: the spectrum, with background-isolation tools to verify each identification yourself.
Mongolia Course Site + Maps
The full short-course materials and live interactive maps from my 2026 mineral-mapping course for the Mongolian mining sector — taught in English and Mongolian.
FluxxViewer (Free Download)
A free Windows desktop viewer for hyperspectral imagery — open ENVI files, scroll bands, plot spectra. The front door to the Fluxx professional workbench.
Sensing plus reasoning
OreVision — probabilistic mineral mapping
Hyperspectral satellite imagery (NASA EMIT, EnMAP, AVIRIS, Tanager) → atmospheric correction with per-band uncertainty → GPU Bayesian Model Averaging unmixing → per-pixel mineral abundance and posterior probability → interactive web maps and GIS products. Deployed at country scale: 2,000+ EMIT scenes over Mongolia mapping 28 alteration minerals across six hydrothermal alteration zones, with automated 140-page geological audit reports for exploration tenders. Reads 300+ spectral bands where the leading incumbent tools use 14.
Fluxx — the hyperspectral workbench
A modern Windows desktop application for hyperspectral analysis: visualization, preprocessing, dimensionality reduction, endmember extraction, unmixing, target and anomaly detection, classification, and a 40+ algorithm machine learning workflow — roughly 140,000 lines of tested Python/Qt I architected and largely wrote.
A geological reasoning engine
A scientifically rigorous geological reasoning engine: a provenance-aware knowledge graph (11,000+ nodes spanning chemistry → minerals → rocks → deposits → spectra), a 1,300-paper literature index, and Dempster–Shafer evidence fusion with an explicit ignorance channel — agreement sharpens conclusions, conflict honestly widens them. Every answer returns ranked hypotheses with evidence for and against, full citations, and the recommended next measurement. It declines rather than bluffs: a wrong answer is worse than a refused one.
Heritage: NINJA / PRISM
The original detect-then-identify engine (patents US 8,897,489 and US 9,076,039) whose government implementation became the community-standard PRISM process — in operational use across the defense and intelligence community since 2010.
On GitHub
- hyperspectralpy — Python GUI toolbox for spectral analysis: target detection, PCA, material identification, library management.
- BayesianML — full textbook PDF + notebooks for my UVA graduate Bayesian Machine Learning course.
- Machine-Learning-for-Spectral-Imaging — draft textbook, course modules, and homework for ML on spectral imagery.
- DeepLearningAtmosphericCompensation — autoencoder that learns radiative atmospheric transfer (companion to patent application).
- Neural-Network-From-Scratch — a neural network in pure numpy, for teaching.
- UPWINS_Spectral_Library — open library of 1,000+ field vegetation spectra with analysis code.
Plus instrument control (an open replacement for commercial spectrometer acquisition software), sensor-catalog pipelines for ASTER/AVIRIS/EMIT/EnMAP, multi-sensor SAR/optical fusion for mining-activity detection, and more across 80+ repositories.