StrollerPulse: Building a Screen-Free Stroller Terrain Vibration Alert with TabPFN

StrollerPulse uses the TabPFN tabular foundation model to detect terrain vibrations under strollers and runners in real time on a phone CPU, replacing the screen with voice.
StrollerPulse is an open-source terrain vibration monitoring tool that samples phone accelerometer data at 50 Hz, extracts six-dimensional physical features under the ISO 2631 framework, and uses Prior Labs' TabPFN tabular foundation model to classify terrain as grass, asphalt, or cobblestone in a single forward pass, with voice output so parents and runners never need to look at a screen. Its two-stage cadence decoupling filter reduces false positives from 38.4% to 0%, achieving 100% accuracy and 0.33 ms CPU latency across 30 held-out test windows.
When you head out pushing a stroller, or lace up your running shoes for an outdoor workout, map apps only tell you street names and routes — they know nothing about the physical reality beneath your wheels and feet. Broken cobblestones, raised tree roots, and cracked concrete transmit violent vertical impacts directly to a baby's head and spine; meanwhile, outdoor runners enduring high-impact forces on hard asphalt quietly accumulate micro-trauma in their knees and calves.
Even more contradictory is the usual "solution" — staring at a phone screen to check a terrain map — which is both dangerous while pushing a stroller and completely disconnects you from nature. This is exactly the dilemma the open-source project StrollerPulse sets out to break.

What It Actually Is
StrollerPulse is an open-source, audio-first terrain vibration monitoring tool with a clear goal: let parents and runners put down their screens entirely and return to nature.
It uses the accelerometer and gyroscope built into ordinary smartphones to sample vertical ground reaction forces at 50 Hz. Every two seconds it extracts a set of physics-based kinematics features (variance, ISO 2631 RMS vibration, crest factor, spectral harmonics, jerk), then hands them to Prior Labs' TabPFN — a tabular foundation model — for real-time classification.
The classification result is announced by voice through headphones or the phone speaker, so you never need to look at the screen:
- 🟢 "Natural grass trail detected. Frame vibration down 44%. Grass index at 68%."
- 🟡 "Smooth paved asphalt, standard rolling surface."
- 🔴 "Warning: high-frequency cobblestone vibration detected (peak 2.2g). Slow the stroller or move to a smooth shoulder."
The phone can stay in your pocket or the stroller's handlebar bag the whole time. Your eyes are on the trees, your ears on the rustling leaves, and your baby sleeps soundly.
The ISO 2631 human vibration standard is a mechanical vibration and shock evaluation specification published by the International Organization for Standardization, formally titled ISO 2631-1:1997 Mechanical vibration and shock — Evaluation of human exposure to whole-body vibration. It defines how to quantify human perception of whole-body vibration using frequency-weighted acceleration root mean square (RMS), with core metrics including weighted RMS acceleration, crest factor (the ratio of peak to RMS, used to gauge the instantaneous severity of impacts), and vibration dose value (VDV). The standard's frequency weighting curves apply differentiated amplification to the bands the human body is most sensitive to: roughly 4–12.5 Hz vertically, and 0.5–2 Hz horizontally. StrollerPulse borrows this framework — not to assess human comfort, but to treat the stroller frame and the runner's body as the vibrating receiver, using the same physical quantities to turn "how bad is the bumping" into a comparable, reproducible number across devices.
Why TabPFN as the Core Engine
TabPFN (Prior-Data Fitted Network) was developed by Prior Labs and published in Nature. It's a foundation model for tabular data, trained on millions of synthetic datasets generated using structural causal models.
Traditional tabular ML approaches (random forests, XGBoost, LightGBM) face several practical problems: you need to collect hundreds of labeled rows before training can begin; you must run gradient descent loops or cross-validation hyperparameter tuning; and with few real-time samples, overfitting is extremely easy.
TabPFN operates more like a large language model for tabular matrices: given a calibration reference matrix of just 60 physical terrain samples plus a real-time sensor query row, it computes posterior class probabilities in a single forward pass through Transformer self-attention layers. In benchmarks, TabPFN's inference time on CPU is only 0.33 milliseconds, with no GPU infrastructure required.
In the StrollerPulse scenario, the system computes a 6-dimensional feature vector from a 2-second sliding window (100 samples at 50 Hz), strictly following the ISO 2631 human vibration standard: vertical variance, RMS vibration, crest factor (impact severity), dominant harmonic frequency, jerk magnitude, and GPS speed normalization. TabPFN classifies this row of features into one of three terrains: natural grass trail, smooth asphalt, or severe cobblestone vibration hazard zone.
In-context learning refers to a model updating no weights at all, instead taking labeled samples and the query sample together as an input sequence to complete prediction in a single forward pass. TabPFN brings exactly this paradigm to tabular data: during training it learns "how to infer decision boundaries from a few examples" on millions of synthetic datasets generated by structural causal models; at inference you simply feed the calibration matrix (the 60 rows of physical terrain samples here) together with the query row into a table, and the Transformer's attention layers implicitly perform a Bayesian posterior inference, outputting probabilities for each class. This is fundamentally different from the traditional ML pipeline of running gradient descent first and then cross-validating for tuning: no training loop, no hyperparameter search, no persisted weights — the model's "knowledge" comes entirely from inductive generalization over synthetic tasks during pretraining, not from fitting your dataset. The cost is that query time requires feeding in all calibration samples together, so context length and sample count become latency and memory constraints.
What Engineers Actually Care About: What Broke and How It Was Fixed
The most valuable part of this project is an interference bug nicknamed "Pocket Rhythm vs. Wheel Roar."
When tested in a runner's loose shorts pocket or on a soft stroller handlebar, the rhythmic swing of legs and arms produces vertical accelerations of 2.6–3.0 Hz at amplitudes of 1.5g–1.8g. A naive classifier relying on raw acceleration peaks would misclassify this human sway as severe cobblestone impact, producing a 38.4% false positive rate on smooth grass.
The fix is a two-stage cadence decoupling filter: first separate the human cadence harmonics via moving spectral autocorrelation in the low-frequency band (1.5–3.5 Hz); then apply a fourth-order zero-phase high-pass Butterworth filter using scipy.signal.filtfilt (cutoff frequency 6.0 Hz) to attenuate human sway while preserving the mechanical impact signal transmitted through wheels and footsteps (concentrated in the 12–28 Hz band); finally compute the cadence-to-shock ratio (CSR), and when CSR is high with low high-frequency impact power, the system actively suppresses false positives.
In adversarial testing, the false positive rate caused by human cadence dropped from 38.4% to 0.0% — an 18.3× improvement.
Zero-phase filtering is the filtering approach implemented by scipy.signal.filtfilt. Its key difference from ordinary lfilter is that it filters the signal twice, forward and backward: it first passes the signal through the filter in forward order, then reverses the result and passes it through again, then reverses it once more. The effect is that the phase delays introduced by the two passes cancel each other out, so the output signal stays strictly time-aligned with the input signal without any shift. For an application like StrollerPulse, which must determine "at exactly which moment the impact occurred," this is critical — with an ordinary causal filter, the high-pass output would lag the real impact by several milliseconds, causing voice alerts to misalign with the actual instant of a wheel rolling over cobblestones. The cost is that the filter's effective order doubles (the fourth order here effectively has eighth-order steepness), and the signal length must be long enough to avoid boundary artifacts, which is why the article uses a sliding window rather than sample-by-sample streaming.
Quantitative Benchmark: TabPFN vs. Traditional Approaches
The project includes an automated benchmark comparing methods on 30 held-out test windows (10 standard samples, 10 hard-boundary samples, 10 adversarial cadence-interference samples):
| Model | Overall Accuracy | Impact Recall | CPU Latency | Cadence False Positives | Training/Tuning Needed |
|---|---|---|---|---|---|
| TabPFN (Prior Labs) | 100.0% | 100.0% | 0.33 ms | 0.0% | None (in-context learning) |
| Random Forest (100 trees) | 100.0% | 100.0% | 0.19 ms | 0.0% | GridSearchCV tuning |
| LightGBM/HGB | 100.0% | 100.0% | 0.11 ms | 0.0% | Learning rate, iterations, regularization |
| Logistic Regression | 86.7% | 100.0% | 0.01 ms | 0.0% | C regularization, solver choice |
| Heuristic peak rules | 93.3% | 100.0% | 0.01 ms | 38.4% | Manual threshold tuning |
TabPFN's differentiating advantage is that random forests and LightGBM need separate hyperparameter tuning to avoid overfitting on the small calibration set, whereas TabPFN achieves 100% accuracy out of the box. On boundary samples (compacted soil with tree roots vs. cracked concrete pavers), TabPFN's posterior class probabilities clearly capture the uncertainty, while logistic regression misjudges the subtle transition damping.
Field Testing: From Sidewalk to Cobblestone Crossing
Hacktoberfest's first week theme was "Touch Grass" — get out and see how the project performs in the real world.
The author took StrollerPulse on a 1.4-kilometer neighborhood walk, going from paved residential streets into an unpaved community park:
During the concrete sidewalk phase, the system stayed in amber, announcing "smooth paved asphalt, standard rolling surface," with G-Shock severity steady at 22/100.
The moment of stepping onto the grass shoulder, variance plunged from 0.048 to 0.012. Within 1.5 seconds the headphones announced: "Natural grass trail detected. Frame vibration down 44%. Enjoy the softness."
Crossing a decorative interlocking-brick crosswalk, the impact threshold triggered immediately: "Vibration alert: high-frequency cobblestone vibration detected, crest factor 3.8. Slow down or move to a smooth shoulder."
Field testing also drove two product improvements: the speech synthesizer initially announced every 2 seconds on grass, causing auditory annoyance, so it was changed to event-driven debouncing that only triggers voice on terrain state transitions or severe impact alerts; and midday direct sunlight made the dark glassmorphic cards hard to read, prompting the addition of a one-tap sunlight mode with high contrast.
Open Source and Privacy by Design
All kinematic processing and foundation-model inference in StrollerPulse happen locally on the CPU. Parents don't need to upload family walking locations, daily routines, or infant movement patterns to any private cloud server.
Parks, hiking trails, and nature reserves often have no cellular coverage. Because TabPFN runs locally on CPU with open weights, StrollerPulse can provide real-time audio guidance deep in the woods, fully offline. Map visualization is built on Leaflet.js and OpenStreetMap rather than proprietary map APIs, ensuring anyone anywhere in the world can run it without a credit card or commercial API key.
The project is open-sourced under the MIT license, with a backend of Python 3.11+, FastAPI, tabpfn, and PyTorch CPU; and a frontend of native HTML5, CSS3, Leaflet.js, and the Web Speech API. The complete code is hosted on GitHub and can be deployed via Render Web Service.
A Signal Worth Watching
StrollerPulse's significance goes beyond being a Hacktoberfest entry. It demonstrates a concrete technological trend: tabular foundation models are turning "real-time edge inference" from something requiring a complex training pipeline into something a single forward pass can solve.
A 0.33-millisecond CPU inference latency, zero training loops, and 100% few-shot accuracy — these three numbers together mean that niche, personal, privacy-sensitive scenarios like stroller vibration monitoring now have, for the first time, technical feasibility that doesn't depend on the cloud, GPUs, or large amounts of labeled data.
For developers and product people focused on deploying AI applications, this kind of project offers a direction worth studying: not stuffing large models into more cloud services, but placing the right foundation model as close to the sensor as possible.
Tabular Foundation Model (TFM) is a model paradigm that has emerged in the past two years, with representative work including Prior Labs' TabPFN and several successors after Google's TabNet. It treats tabular data as an independent modality, processed with a pretraining–inference structure similar to language models: during pretraining it learns general tabular inductive biases on synthetic structured data; during inference it outputs predictions directly using a small number of labeled samples as context. Its engineering significance lies in bypassing the three most time-consuming stages of traditional tabular ML — accumulating data labels, model training, and hyperparameter tuning — compressing deployment cost down to the level of "prepare a reference matrix." Current limitations mainly involve context length (typically hundreds to thousands of rows), the ability to handle high-dimensional sparse features, and a still-incomplete fine-tuning ecosystem. For vertical edge-device scenarios with scarce samples, expensive labeling, and privacy sensitivity, this paradigm offers feasibility that was previously hard to achieve.
One-line Summary
StrollerPulse uses the TabPFN tabular foundation model to identify terrain vibrations under strollers and runners in real time on a phone CPU, replacing the screen with voice.
Paragraph Summary
StrollerPulse is an open-source terrain vibration monitoring tool that uses a phone accelerometer to sample at 50 Hz, extracts six-dimensional physical features under the ISO 2631 framework, and hands them to Prior Labs' tabular foundation model TabPFN to classify terrain as grass, asphalt, or cobblestone in a single forward pass, announcing results by voice so parents and runners never need to look at a screen. Its two-stage cadence decoupling filter, designed to counter human cadence interference, cuts the false positive rate from 38.4% to 0%, and achieves 100% accuracy with 0.33-millisecond CPU latency across 30 held-out test windows. All inference runs locally, and with OpenStreetMap and an MIT license, it combines privacy, offline availability, and zero-training-loop deployment simplicity.
Related articles

Gmod TTT: Boba's Winning Streak and Game Design Insights
An in-depth analysis of Gmod TTT's role system, creative items, and social gameplay mechanics, exploring the relationship between randomness design and game balance through Boba's winning streak phenomenon.

FlexBudget: Fair Comparison of KV Cache Eviction Strategies Under a Unified Compute Budget
AMD engineer proposes FlexBudget at PyTorch Conference: a training-free fair comparison method for KV cache eviction rules using fixed kernels and memory budgets, all in core PyTorch.
