Product

A reconstruction engine with a thin surface

Video and EDR data in; calibrated geometry, trajectories, a sensor-suite counterfactual and a hash-chained evidence bundle out. Everything with an uncertainty attached.

The product is under construction. This page describes what it is being built to do; the status table and validation page say how much of it exists. Where something is not built yet we say so.

What goes in

What comes out

Camera model
Intrinsics, distortion, rolling-shutter line delay, mount pose and per-frame timestamps, each with uncertainty.
Trajectories
Metric 6-DoF trajectories for the recording vehicle and each tracked actor; speeds, gaps, closing speed and time to collision at any instant, with intervals.
Event timing
First visibility of each actor, braking onset (changepoint detection), impact or closest approach.
EDR reconciliation
Clock offset between video and EDR, agreement of the two speed records, and flags where they conflict.
Counterfactual
For the modelled sensor suite: when each actor entered its field of view and detection envelope, the probability it would have been detected over time, and the last moment at which braking could have avoided or mitigated impact.
Evidence bundle
Inputs, intermediate results and outputs hashed and chained, so a second expert can verify nothing was changed between intake and report.
Report and replay
One written report and a 3D replay of the reconstruction. API and CLI access for experts who want the raw outputs in their own tools.

The method, in equations

Each layer is a well-posed estimation problem with an uncertainty attached. The notation follows NADIR-TR-2026-03. Badges show what exists in code today; an equation here describes the method, not a result.

1 · Self-calibrating reconstruction Planned

Project world point Xj into frame i with unknown intrinsics K, distortion δ and a rolling shutter: row v is exposed ℓ seconds per line after the frame starts, so every row has its own pose.

𝐮ij=π(K,𝜹;R(tij)𝐗j+𝐭(tij)),tij=ti+ℓvij\mathbf{u}_{ij} = \pi\!\left(K, \boldsymbol{\delta};\; R(t_{ij})\,\mathbf{X}_j + \mathbf{t}(t_{ij})\right), \qquad t_{ij} = t_i + \ell\, v_{ij}

Metric scale comes from objects whose true size is regulated or known: a lane-marking segment of standard length Lstd measured as L̂ in the reconstruction.

s=LstdL^s = \frac{L_{\mathrm{std}}}{\hat{L}}

2 · Trajectories with uncertainty Planned

All poses and actor states are solved jointly as a maximum a posteriori problem over residuals rk weighted by their noise Σk. The Laplace approximation at the optimum gives the covariance that becomes every interval in the report.

𝒳⋆=arg⁡min𝒳⁡∑k‖rk(𝒳)‖Σk2,Σ𝒳≈(J⊤Σ−1J)−1\mathcal{X}^{\star} = \arg\min_{\mathcal{X}} \sum_{k} \bigl\lVert r_k(\mathcal{X}) \bigr\rVert^{2}_{\Sigma_k}, \qquad \Sigma_{\mathcal{X}} \approx \left(J^{\top} \Sigma^{-1} J\right)^{-1}
Factor graph for one reconstruction Ego-vehicle poses x0 to x3 on the top row and one actor's states a0 to a3 on the bottom row. Black squares are motion-model factors between consecutive states and camera-observation factors linking each ego pose to the actor. Orange squares above the ego row are EDR speed factors, each tying two consecutive ego poses to the recorded speed. x₀ a₀ x₁ a₁ x₂ a₂ x₃ a₃ ego actor f_EDR f_cam f_motion ∈ SE(3) ∈ ℝ⁶ motion / camera factor EDR speed factor state
Fig. 2. Layer 2 as a factor graph, four frames, one actor. Solving it gives every trajectory and its covariance at once; the EDR factors are where video and the recorder must agree. Planned, not built.

3 · EDR fusion Planned Evidence bundles built

The EDR records speed at 2 Hz for 5 s before the trigger. The clock offset δ between the recorder and the video is the one that best reconciles the two speed traces; what is left over after alignment is the disagreement we flag.

δ^=arg⁡minδ⁡∑k(vEDR(tk)−v^(tk+δ))2σk2\hat{\delta} = \arg\min_{\delta} \sum_{k} \frac{\bigl(v_{\mathrm{EDR}}(t_k) - \hat{v}(t_k + \delta)\bigr)^{2}}{\sigma_k^{2}}

4 · ADAS counterfactual Planned

For a modelled sensor suite S with detection envelope ES for object class ca, the probability that actor a had been continuously inside the envelope for nmin frames by time t, integrated over the trajectory posterior from layer 2:

p𝒮(a,t)=Pr⁡[∃τ≤t:𝐩a(τ′)∈ℰ𝒮(ca)  ∀τ′∈[τ,τ+nmin⁡Δt]|data]p_{\mathcal{S}}(a, t) = \Pr\!\Bigl[\, \exists\, \tau \le t : \mathbf{p}^{a}(\tau') \in \mathcal{E}_{\mathcal{S}}(c_a)\ \ \forall \tau' \in [\tau, \tau + n_{\min}\Delta t] \;\Bigm|\; \text{data} \Bigr]
Detection envelope in the ego frame Top-down schematic in the ego vehicle's frame. A wide, shorter camera envelope with half-angle theta c and range r c, and a narrow, longer radar envelope. A pedestrian crosses from top to bottom; each estimated position carries a 2-sigma uncertainty ellipse that grows over time. The track enters the camera envelope first and the radar envelope later. θ_c r_c camera envelope E_cam(c) radar · θ_r, r_r ego · origin t_first,cam t_first,radar actor a(t_k) ± 2σ d(t) Ego frame, x forward. Schematic: θ and r set per sensor suite from public specs.
Fig. 3. What “could it see?” means geometrically. The actor's posterior track from layer 2 is tested against each sensor's envelope. Because every position is uncertain, entry time is a distribution, which is why the report gives p_S(a,t) and not a single yes or no.

Whether the system should have acted is judged against time to collision and the last moment braking could still avoid impact, given latency tlat and maximum deceleration amax:

TTC(t)=−d(t)d˙(t),d˙(t)<0\mathrm{TTC}(t) = -\frac{d(t)}{\dot{d}(t)}, \qquad \dot{d}(t) < 0
tlast=max⁡{t:d(t)≥vrel(t)tlat+vrel(t)22amax⁡}t_{\mathrm{last}} = \max\Bigl\{ t : d(t) \ge v_{\mathrm{rel}}(t)\, t_{\mathrm{lat}} + \frac{v_{\mathrm{rel}}(t)^{2}}{2\, a_{\max}} \Bigr\}
Detection window versus the last moment to avoid impact Two panels share a time axis. Top: the gap d of t falls linearly to zero at impact, and the distance needed to stop, a horizontal band, crosses it at t last. The shaded window from t first to t last is when braking could still avoid impact. Bottom: detection probability p S rises from zero to near one shortly after t first. d(t) d_req(t) window where braking avoids impact d 0 p_S(a,t) 1 0 t_first t_last t_impact t
Fig. 4. “Should it have acted?” in one picture. If p_S is high inside the shaded window, the system could have detected the actor while braking could still avoid impact. The band on d_req carries the uncertainty in latency and deceleration. Schematic, no data.

The envelope is built from public specifications and observed behaviour. It is a model of the sensor suite, not the manufacturer's software.

5 · Published error rates Protocol in progress

Every stated interval must contain the truth as often as it claims to. Coverage is measured against instrumented ground truth; the full metric set is on the validation page.

cov1−α=1n∑i𝟏[yi∈C^i]\mathrm{cov}_{1-\alpha} = \frac{1}{n} \sum_{i} \mathbf{1}\bigl[\, y_i \in \hat{C}_i \,\bigr]

For reconstruction experts

The bottleneck in video-based reconstruction is the geometry: working out the lens and mount, fixing scale, and tracking vehicles frame by frame, usually by hand. NADIR does that part and shows its working. You get the camera solution and its residuals, the scale references it used, every trajectory with its uncertainty, and the EDR alignment. Your opinion stays yours; the engine supplies measurements and their error.

For attorneys and insurers

Early in a matter the question is whether there is an ADAS issue at all: was the hazard inside the sensors' view in time, and did the vehicle's behaviour match what the system is designed to do. The NADIR report answers that in plain language, states what the evidence cannot support, and arrives with a chain of custody. It is a triage and support tool; it is meant to be used with a retained expert, not instead of one.

For OEM product-safety teams

Later. Across many reconstructed cases, NADIR can describe how assistance systems performed in the real crashes they did not prevent: detection timing, envelope edges, scenario types. That is aggregated data, collected only with the consent of the parties, and it depends on the reconstruction itself being validated first.

Compared with the previous product

NADIR previously sold real-time ADAS sensor-drift scoring from fleet telematics. It was retired; the archive explains why.

Drift scoring (archived)Crash forensics (current)
QuestionIs this vehicle's camera miscalibrated?What could the car's ADAS see, and should it have acted?
InputFleet telematics and repair ordersVideo and EDR pre-crash data
WhenContinuously, before a faultAfter a crash, offline
BuyerFleets, collision networksReconstruction experts, counsel, insurers
EvidenceSynthetic benchmark only; telematics cannot observe camera driftPre-registered benchmark against instrumented ground truth (in progress)