nx_mannequin_index.nx
buildroot/runtime/nx_mannequin_index.nx
about
nx_mannequin_index.nx -- composite "is this a living person or a mannequin" verdict.
Aggregates the per-axis detector scores into a single Q10 composite +
sealed verdict. Designed to grow as new mannequin-failure detectors
land (skin micro-texture, pressure deformation, joint articulation,
lash transition); today scores subsurface scatter + specular falloff
+ the existing nx_skin_texture PLASTIC_SHEEN signal.
Composite formula (each axis 0..1024, weighted average):
composite = (sss_score * w_sss + spec_score * w_spec + texture_score * w_tex) / sum_w
where higher composite = more LIVING_PERSON, lower = more MANNEQUIN.
Sealed verdict:
OBVIOUS_PLASTIC composite < 256
MANNEQUIN_FEEL 256..512
SLIGHTLY_OFF 512..768
LIVING_PERSON >= 768
Output flat-array:
result[0] = composite_q10
result[1] = verdict
result[2] = sss_score_q10
result[3] = spec_score_q10
result[4] = texture_score_q10
result[5] = n_axes_contributing
dependencies 3 imports · 1 importers
imports: nx_syscalls.nxnx_subsurface_warmth.nxnx_specular_falloff.nx
imported by: nx_mannequin_index_test.nx
structs
| none |
consts
| 37 | const NX_MANN_RES_COMPOSITE: i64 = 0 |
| 38 | const NX_MANN_RES_VERDICT: i64 = 1 |
| 39 | const NX_MANN_RES_SSS: i64 = 2 |
| 40 | const NX_MANN_RES_SPEC: i64 = 3 |
| 41 | const NX_MANN_RES_TEXTURE: i64 = 4 |
| 42 | const NX_MANN_RES_AXES: i64 = 5 |
| 43 | const NX_MANN_RES_FIELDS: i64 = 6 |
| 45 | const NX_MANN_OBVIOUS_PLASTIC: i64 = 0 |
| 46 | const NX_MANN_MANNEQUIN_FEEL: i64 = 1 |
| 47 | const NX_MANN_SLIGHTLY_OFF: i64 = 2 |
| 48 | const NX_MANN_LIVING_PERSON: i64 = 3 |
| 51 | const NX_MANN_W_SSS: i64 = 3 // subsurface scatter is high signal |
| 52 | const NX_MANN_W_SPEC: i64 = 2 // specular falloff |
| 53 | const NX_MANN_W_TEXTURE: i64 = 2 // skin micro-texture (from nx_skin_texture) |
| 110 | const NX_MANN_PHRASE_NATURAL_SKIN_TEXTURE: i64 = 1 |
| 111 | const NX_MANN_PHRASE_VISIBLE_PORES: i64 = 2 |
| 112 | const NX_MANN_PHRASE_SSS_WARMTH: i64 = 3 |
| 113 | const NX_MANN_PHRASE_SOFT_SPECULAR: i64 = 4 |
| 114 | const NX_MANN_PHRASE_PRESSURE_DEFORMATION: i64 = 5 |
| 115 | const NX_MANN_PHRASE_TENDON_SHADOWS: i64 = 6 |
functions
| 57 | func nx_mannequin_score(sss_score_q10: i64, called by 1: main |
| 117 | func nx_mannequin_corrective_phrases(verdict: i64, sss_score: i64, called by 1: main |