nx_rot_health.nx
buildroot/runtime/nx_rot_health.nx
about
nx_rot_health.nx -- rotating-machine health kernel (#2 of the 4 physics
kernels). Independent vibration + thermal signature -> health verdict for
motors, pumps, fans, compressors, bearings.
Operator (2026-06-23): the maintenance platform's computed top-build to cross
into market LEADER (beats Augury, the strongest incumbent) -- and the 2nd
physics kernel, which unlocks the whole rotating-equipment domain.
FFT-FREE first cut = real entry-level predictive-maintenance practice,
integer/no-float:
- RMS overall severity (ISO-10816-style zones) -> imbalance/misalign/loose
- CREST factor (peak/RMS) -> bearing impacts; RISES BEFORE RMS does, so it
catches an incipient bearing fault an overall-amplitude reading MISSES
(the measured exceed)
- bearing temp-rise -> friction/overheat (safety)
(Frequency-resolved diagnosis -- 1x imbalance vs 2x misalignment vs bearing
pass-frequencies -- is a later FFT rung; this overall+crest+thermal cut is
what a handheld vibration pen / ISO-10816 overall measurement already uses.)
NEVER-BRICK (#26): reads samples, emits a verdict; writes nothing to any
machine. Read-only by construction; no firmware path exists here.
genealogy_id: project-maintenance-platform-sclass-2026-06-23 (kernel #2; CIQ top-build)
license_tier: ORIGINAL
nx_capability_claims:
needs: [pointer_arithmetic]
provides: [rotating_machine_health_verdict, iso10816_overall_severity,
crest_factor_bearing_early_warning, bearing_overheat_detect]
safety: [no_floating_point, no_syscall, bounded_iteration,
read_only_no_device_write, no_firmware_write_by_construction,
sealed_enum_verdict]
verdict: [sealed_enum_rot, no_silent_failure]
license: ORIGINAL
kind: maintenance_runtime_primitive
dependencies 0 imports · 2 importers
imports: none
imported by: nx_maint_unify.nxnx_rot_health_test.nx
structs
| 55 | struct RotSpec |
| 62 | struct RotEff |
consts
| 38 | const NX_ROT_INSUFFICIENT_DATA: i64 = 0 |
| 39 | const NX_ROT_HEALTHY: i64 = 1 |
| 40 | const NX_ROT_ROUGH_WARNING: i64 = 2 // ISO zone B/C -- elevated vibration |
| 41 | const NX_ROT_ROUGH_ALARM: i64 = 3 // ISO zone C/D -- unacceptable (imbalance/misalign/loose) |
| 42 | const NX_ROT_BEARING_WEAR: i64 = 4 // high crest factor -- bearing impacts (early fault) |
| 43 | const NX_ROT_OVERHEAT: i64 = 5 // bearing temp-rise over ceiling |
| 44 | const NX_ROT_IDLE: i64 = 6 // not running (valid, not a fault) |
| 45 | const NX_ROT_BAD_ARG: i64 = 7 |
| 46 | const NX_ROT_N: i64 = 8 |
functions
| 48 | func nx_rot_verdict_is_valid(v: i64) -> i64 called by 1: main |
| 71 | func nx_rot_isqrt(n: i64) -> i64 |
| 86 | func nx_rot_analyze(vib: *i64, n: i64, bearing_mC: i64, ambient_mC: i64, |