Web Design
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.
November 26, 2025