Events
Harsh accel, brake, corner, swerve
Four bands versus threshold: within norm, light, medium, heavy. Swerve is GPS heading while moving — twisting a handheld phone does not count.
On-device driving quality.
Signumb is a phone-only driving quality app for Android and iOS. It uses the open-source Harshy SDK: start a trip, receive live metrics and events, and export a session that never needs a Signumb server.
100
A preview of the live score.
How it works
Start a trip and Signumb follows the drive on your phone. The score, the route, and what happened along the way stay on the device.
Events
Four bands versus threshold: within norm, light, medium, heavy. Swerve is GPS heading while moving — twisting a handheld phone does not count.
Score
Penalties are exposure-normalized and scaled by one-third so everyday driving stays in a high band. The score is computed on the phone.
Road
Road quality is vertical IMU RMS along the path. It is a measure of pavement, not an event and not part of the trip score.
Impact
A hard jolt can be noted on the trip for you to review. It does not call emergency services, and it does not change the score.
Phone
A span when the phone is picked up or held above a quiet mount baseline. It does not change the score. Screen-unlock distraction is not part of this detector.
Export
The route, events, and score stay on the phone. Download a copy of a trip when you want one.
Event catalog
Integrate
Packages stay @harshy/*. Signumb uses the Harshy SDK for capture and scoring on the phone. Signumb is the app for Android and iOS.
Expo / RN
JavaScript host API: permissions, start/stop, live metrics and events, local history, optional upload adapter.
Native
Kotlin and Swift in the Harshy SDK. Same session schema as JS. Do not run the client and the Expo module in one process.
Headless
Fleets with their own GPS/IMU feed the detector without copying math into the app.
import { createHarshy, isPossibleImpact } from "@harshy/sdk";
import { createNativeEngine, isNativeEngineAvailable } from "@harshy/sdk/native";
const harshy = createHarshy({
nativeAvailable: isNativeEngineAvailable(),
createNativeEngine,
});
harshy.subscribe({
onMetrics: (metrics) => console.log(metrics.score),
onEvent: (event) => {
if (isPossibleImpact(event)) {
// Heuristic only — not a confirmed crash.
}
},
});
await harshy.requestPermissions();
await harshy.start({ source: "native" });
const session = await harshy.stop();Open source
Signumb uses Harshy for capture and scoring on the phone. Hosts may attach their own upload adapter. Source and issues live on GitHub.
View source