Other Projects

Here are some links and basic explanations for other projects I’m working on. They may be in varied stages of completeness.

To Restore People’s Names

This is a digital version of the exhibit housed in one of the glass display cases on the third floor of TCH outside the history department during Spring 2026. It is based on Dr. Amy Larner Giroux’s work. A mixed team of students wrote and curated the exhibit, and I created the digital extension, presenting Dr. Giroux’s research on unidentified soldiers at St. Augustine National Cemetery. The exhibit integrates audio narration, embedded 3D models of cemetery monuments, archival photography, and annotated mapping into a single-page GitHub Pages site. Designed to make scholarly research legible to a general public audience.

The Truing Stand

The Truing Stand is a bicycle wheel truing simulator built as a final project for ENG6819: Critical Making in the Age of AI. The piece combines Twine narrative, Tracery-generated text, and P5.js into a three-part interactive experience drawn from my background as a bicycle mechanic. The project treats the truing stand, a tool for diagnosing and correcting a wobbly bicycle wheel, as a metaphor for iterative, attentive practice.

Spoke Tension

Spoke Tension is another, earlier assignment from ENG6819, and portions of it became a foundation for The Truing Stand. It is a P5.js meditation on wheel building and structural care. A slowly rotating bicycle wheel in which each spoke carries a live tension value that drifts over time, made visible through color and audible through ambient drone and interactive pluck sounds. Conceptually grounded in Debbie Chachra’s “Beyond Making,” the wheel here is not being built or made; it is being listened to.

The Sunday Mechanic’s Disaster Catalogue

This is another assignment from ENG6819. It is a browser “game” created in Tracery that produces a catalog of bicycle repair misadventures. It’s built as an exercise in grammar-based generative text; the piece uses branching language rules to procedurally compose failure scenarios drawn from the vocabulary of bike mechanics. Each refresh produces something new.

Oops

A small puzzle game built in Bitsy for ENG6819. Something is wrong with the bicycle. Grab a tool from the workbench and bring it to the bike. However, only one tool will work, and the wrong ones will need to go in the trash before you can try again. Built within Bitsy’s tight constraints, the color palette is a deliberate nod to the iconic Park Tool blue, familiar to anyone who has spent time in a bike shop.

Use arrow keys to move. Bump into objects to interact.

Sheldon Brown Visualization

This is a corpus visualization built from a full scrape of sheldonbrown.com, the encyclopedic bicycle reference site maintained by the late mechanic and technical writer Sheldon Brown, and kept alive by the cycling community since his death in 2008. The project involved writing a custom Python scraper to collect over 28 million words across thousands of pages, a corpus too large for standard tools like Voyant to process. When a sample of 200 pages suggested “brake” was the site’s dominant subject, scaling up to the full corpus told a different story: “bicycle” dominated by a wide margin, and the smaller sample had simply overrepresented technical brake content at the expense of Brown’s journals, blog posts, and personal writing. Resolving that required deliberate decisions about stop words, plural consolidation, and how to handle web artifacts like stray HTML and URLs; choices that shaped the results as much as the data itself. The final visualizations show bar charts, bubble displays, and a table of the top 100 words, but the more interesting finding was methodological: that sampling decisions are interpretation, and that what makes Sheldon’s site worth studying is its multitudes, not just its technical content.