svc-nbit-sim — NBIT Digital Twin
Controllable digital twin of the NBIT downhole tool — speaks the real NCU↔NBIT wire protocol so the unmodified NCU connects to it exactly as to field hardware. Generates synthetic borehole runs on demand for QA without a drill site. State is live-driven, not canned.
flowchart LR
QA["QA operator
(control API)"] -->|control plane| SIM[svc-nbit-sim
FastAPI]
NCU[svc-ncu] -->|NBIT wire protocol| SIM
SIM -->|data + events| NCU
SIM -->|.nid/.spt/.ndd/.ncs.json/.log.csv| RUNFILES[(synthetic run files)]
RUNFILES --> LIB[lib-qc validation]
style SIM fill:#EDEDFF,stroke:#3B54F7
Modules:
protocol/— NBIT wire protocol (UDP discovery, TCP command, webhook)device/— controllable device state + DAQ state machine (battery, signal, faults)engine/— synthetic data engine (borehole profile → trace/survey/depth arrays)runfiles/— writers for each on-disk formatlib-qcconsumesValidation:
lib-qcrun against synthetic outputs in CI to ensure the digital twin stays format-compatible with real hardware.Part of:
novamera.ncu-sim— Docker Compose stack pairing svc-ncu + svc-nbit-sim for local QA.Built on: the ecs-service pattern for hosted deployment.