Projects

These are things I've built that landed with the people who used them, or that meant something to me, or both. The stopwatch is here because a small number of track coaches actually found it useful, which mattered more to me than anything technically clever about it. A few reached farther than that, serving large institutions or running at a scale I didn't fully appreciate until later, and those worth listing will turn up here over time.

Some were personal, some were professional. The reason for building was the same in both cases: the thing needed to exist, and I was in a position to build it.

Hierarchical Machine Learning Classification Tasks

A simple method for improving the quality of actionable machine learning classifications are made using a class taxonomy with thresholds

Tags

Data Forecasting Math Running

W&M: Tag Day

A front-end web development project for a charitable giving initiative for William & Mary.

Tags

Php Java Javascript

FitnessJS

A Typescript library for physical fitness calculations

Tags

Data Forecasting Math

Harnessing X-Means Clustering and CIE2000 for Visually Striking Dominant Color Extraction

Discover how to harness the power of the X-Means clustering algorithm and CIE2000 color distance metric to accurately extract dominant colors from images. This advanced technique combines unsupervised machine learning with human color perception principles to generate visually appealing and representative color palettes. Perfect for data-driven design, image analysis, and computer vision applications. Dive into the world of color science and elevate your image processing skills with this comprehensive guide.

Tags

Data Javascript Math

DoG Studio: Computing and Compositing Aesthetically Pleasing Lines

A deeper dive into modern approaches for generating aesthetically pleasing lines based on difference-of-Gaussians (DoG) edge detections.

Tags

Data Drawing Math Webgl Webgpu

Epochron Multi-Stopwatch

Most stopwatches assume one runner and one clock. Epochron is built for coaches and timers tracking multiple people at once. It supports group stopwatches for relays, heats, or ranked comparisons, and get live split predictions mid-race instead of doing the math yourself. It runs entirely in the browser, works offline (built for track meets with no signal), and keeps all data on your device. No account required.

Tags

Angular Math Running Typescript