Decode a smart toothbrush's sensor stream and distill its ML model

A Redditor had Claude decode an Oral-B iO5's motion data into a live 3D twin, pull and evaluate the app's 1.2M-parameter model, and distill it into a CNN 100x smaller at similar accuracy.

Done withClaude· Nov 6, 2026

What they did

The poster, u/hayAbhay, wanted to see how an Oral-B iO5 brush works out which part of the mouth it is in. The brush has a 6-axis motion sensor and its companion app predicts brushing zones. They had Claude connect to the brush, stream the data and decode the message format, then build a live digital twin in three.js. Claude then extracted the prediction model from the app, a 1.2M-parameter bidirectional GRU, evaluated it on a public dataset, ran an ablation to see which inputs mattered, generated a larger synthetic dataset from real examples, and distilled the model into several smaller ones.

How it went

Claude measured the app's model at about 63% accuracy against a baseline near 6%. The ablation showed most of the value came from roughly 10 seconds of history, so they distilled; a small CNN reached about 61% while being around 100 times smaller. The live simulator streams the sensor data and runs the model, and the poster published a write-up of the work.

Worth knowing

The post names Claude but not the harness, so it is unclear whether this ran in Claude Code or another tool. The accuracy figures come from one public dataset. Extracting a model from a vendor app may run against that app's terms, so check before redistributing it.

Try it

With Claude· 6 parts to fill in

I have a [device] that streams [sensor type] data over [Bluetooth or other link] to its companion app. Connect to it, capture the stream and decode the message structure, then build a live visualisation in [three.js or another tool]. Next, find the prediction model the app uses in [app package path], evaluate it on [public dataset] and report accuracy against a simple baseline. Run an ablation to find which inputs matter, then try distilling it into smaller models. Report each step's numbers to me and wait for my go-ahead before the distillation step.

Square brackets are the parts to fill in. The prompt is ours; the story is theirs.

Where they said it

Related