
An AI driving coach for practice drives — the rehearsals a learner does before the DMV road test — that runs entirely on a Snapdragon X laptop with no internet connection. It watches dashcam footage, flags likely driving mistakes, signals them on real hardware as they happen, and produces a written practice report afterwards. It is explicitly not a DMV examiner. It never says pass or fail, and every detection is worded as possible ("possible incomplete stop", "possible failure to yield to a person"), because the system reads a forward camera with no speed feed and no GPS. That honesty is enforced by unit tests, not just by convention. How the detection works The core insight is that one model cannot do this job, so there are two layers running at different speeds: Fast layer — ego motion (laptop/ego_motion.py, PyAV + numpy, every single frame). It measures frame-to-frame difference divided by the frame's spatial gradient, which approximates how many pixels the scene shifted. A raw pixel difference does not work — it scales with how textured the scene is, so a bland stretch of road reads as "stopped" at 12 m/s. Calibrated on real footage: stopped sits at 0.07–0.24, moving starts at 0.31, threshold 0.25. That gap is only ~25%, so it is not to be tightened casually. Smart layer — Qwen3-VL-4B on the NPU (laptop/scene_vision.py, every ~3 seconds). It is asked only what is visible in one frame, never for a judgement, and it answers in JSON: is there a stop sign, a traffic light and what colour, is that light for our lane, is a stop line visible, is there a person on foot ahead, is a car close ahead. It is never asked "did the driver stop?" — all timing and motion judgements belong to the numpy layer and the state machine.
16 Sep 2026