nx_response_signal.nx
buildroot/runtime/nx_response_signal.nx
about
nx_response_signal.nx -- arousal response signals for eroticism ladder.
The eroticism rank 10 (ACTIVE_PENETRATION_WITH_RESPONSE) requires
the substrate to detect VISIBLE arousal response signals beyond just
pose. Three independent axes:
parted_lips — dark region between upper/lower lip in mid-face
flushed_skin — R-elevation on cheek region vs torso baseline
skin_sheen — moisture/sweat sheen above baseline specular
Combined: a count 0..3 of which signals are present. Feeds the
response_count input of nx_eroticism_ladder.
Output flat-array:
result[0] = parted_lips_present (0/1)
result[1] = flushed_skin_present (0/1)
result[2] = skin_sheen_present (0/1)
result[3] = signal_count (sum)
result[4] = parted_dark_pixels (raw)
result[5] = cheek_R_minus_torso_R (delta, signed)
result[6] = sheen_bright_pixel_pct (x100)
dependencies 2 imports · 1 importers
imports: nx_syscalls.nxnx_image.nx
imported by: nx_response_signal_test.nx
structs
| none |
consts
| 32 | const NX_RESP_RES_PARTED: i64 = 0 |
| 33 | const NX_RESP_RES_FLUSHED: i64 = 1 |
| 34 | const NX_RESP_RES_SHEEN: i64 = 2 |
| 35 | const NX_RESP_RES_COUNT: i64 = 3 |
| 36 | const NX_RESP_RES_PARTED_DARK: i64 = 4 |
| 37 | const NX_RESP_RES_CHEEK_DELTA: i64 = 5 |
| 38 | const NX_RESP_RES_SHEEN_PCT: i64 = 6 |
| 39 | const NX_RESP_RES_FIELDS: i64 = 7 |
| 42 | const NX_RESP_PARTED_DARK_MIN: i64 = 12 // need ≥12 dark pixels in mouth band |
| 43 | const NX_RESP_FLUSHED_R_DELTA_MIN: i64 = 15 // cheek R must be ≥ 15 above torso R baseline |
| 44 | const NX_RESP_SHEEN_PCT_MIN: i64 = 8 // ≥ 8% bright (Y > 220) in skin |
functions
| 48 | func nx_resp_count_dark_in_mouth_band(rgb: *Image, |
| 77 | func nx_resp_mean_r(rgb: *Image, x0: i64, y0: i64, x1: i64, y1: i64) -> i64 |
| 99 | func nx_resp_sheen_pct(rgb: *Image, mask: *Image) -> i64 |
| 130 | func nx_response_signals(rgb: *Image, skin_mask: *Image, |