On-device driving quality.

Phone sensors. Live events. A local score.

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.

Live preview

100

Time00:00
Distance0.0 km

A preview of the live score.

How it works

A trip is local from start to stop.

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

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.

Score

Starts at 100, stays local

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

Pavement roughness, not a score

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

Possible-impact heuristic

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

Handheld while moving

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

Full session JSON

The route, events, and score stay on the phone. Download a copy of a trip when you want one.

Event catalog

Tap a well. Nothing leaves the device.

AccelA hard push forward past the accel threshold.
BrakeA hard stop past the brake threshold.
CornerLateral g past the corner threshold.
SwerveSharp GPS heading change while moving. Phone twists do not count.
ImpactA hard jolt on the trip. It does not change the score.
PhonePicked up or held while moving. It does not change the score.

Integrate

JS, native, or headless.

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

createHarshy()

JavaScript host API: permissions, start/stop, live metrics and events, local history, optional upload adapter.

Native

HarshyClient

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

analyzeTrip()

Fleets with their own GPS/IMU feed the detector without copying math into the app.

Quick start
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

The Harshy SDK is MIT licensed. Local-first. No Signumb cloud.

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