Lucian Marshall Logo
I am an architectural and product designer living in Santa Fe, New Mexico. Outside of my day job I also do IT consulting, network design & deployment, web design, graphic design and typography. In my free time I dabble in Horology and watchmaking, beekeeping, rapid prototyping and 3D printing.
Lucian Marshall - Signature
Follow me on instagram
Follow Me
Search
TOP
Rudy’s Meow Counter 9000 - Real-Time Audio Classification & Web App - Lucian Marshall
14280
portfolio-item-template-default,single,single-portfolio-item,postid-14280,eltd-core-1.2.3,awake-ver-1.7,eltd-smooth-scroll,eltd-smooth-page-transitions,eltd-mimic-ajax,eltd-grid-1200,eltd-blog-installed,eltd-follow-portfolio-info,eltd-default-style,eltd-fade-push-text-top,eltd-header-standard,eltd-sticky-header-on-scroll-down-up,eltd-default-mobile-header,eltd-sticky-up-mobile-header,eltd-menu-item-first-level-bg-color,eltd-dropdown-slide-from-left,eltd-,eltd-fullscreen-search eltd-search-fade,eltd-side-menu-slide-from-right,wpb-js-composer js-comp-ver-6.7.0,vc_responsive

Rudy’s Meow Counter 9000 – Real-Time Audio Classification & Web App

Lucian Marshall / Rudy’s Meow Counter 9000 – Real-Time Audio Classification & Web App

Web Design

Rudy’s Meow Counter 9000 – Real-Time Audio Classification & Web App

Rudy’s Meow Counter 9000 is a custom, browser-based audio-analysis application designed to detect and count cat meows in real time using a TensorFlow.js machine learning model.

The project began as a playful experiment inspired by my very talkative cat, Rudy. I work from home, and he spends most of the day meowing at me in my office, so I thought it would be fun (and a good technical challenge) to train a model that could understand his “speech” and track his meows. What started as a lighthearted idea turned into a surprisingly deep dive into audio classification, model optimization, UI/UX design, and persistent data tracking.

Building a Custom Audio Classifier
I trained a TensorFlow.js audio model specifically on Rudy’s vocalizations using browser-compatible formats. This required collecting samples, cleaning audio data, labeling training sets, and optimizing the model for on-device inference. To prevent false-positives and “double-counts,” I implemented smoothing logic, confidence thresholds, and a 1000ms cool-down window.

Real-Time Audio Processing in the Browser
The app uses the Web Audio API to capture live microphone data and feed it into the ML model at ~20ms intervals. I incorporated a custom waveform visualizer for user feedback and handled performance challenges such as CPU load balancing and preventing audio thread bottlenecks.

Session-Based Meow Tracking
The system logs meows across structured 60-second “Meows Per Minute” sessions while also maintaining daily and lifetime counts. Local storage is used for persistent tracking across browser sessions, and a dual-scoreboard layout displays both high-scoring minutes and daily totals.

Responsive & Interactive Web UI
I designed a simple interface featuring a pixel-art Rudy animation that reacts to detected meows, two synchronized high-score boards, and controls for starting and stopping the listener. Versioning is built into the UI to track ongoing feature development.

Hosting & Deployment
The entire system, including the trained ML model, is hosted on my own web server, ensuring fast load times and avoiding dependency on proprietary cloud services.

The result is a fully client-side web app that listens to live audio, identifies Rudy’s meows with a custom model, and visualizes the data in real time. It’s equal parts technical experiment, Machine Learning challenge, and whimsical pet project.

Date

November 26, 2025