code wiki / (root) / nx_breast_aesthetic_composite.nx

nx_breast_aesthetic_composite.nx source

↩ module page · 111 lines · 4730 B

1// nx_breast_aesthetic_composite.nx -- composite breast-aesthetic verdict. 2// 3// Third intimate-aesthetic composite (after vulva + glute). Aggregates 4// 6 axes for the natural-perky-soft target — distinct from generic 5// nx_breast_physics PLAUSIBLE/IMPOSSIBLE check; this scores AGAINST a 6// declared aesthetic target. 7// 8// 6-axis composite (Q10): 9// shape 25% natural teardrop vs implant-round 10// symmetry 20% L/R cheek match 11// nipple_pos 15% high on breast (perky) vs low (sagging) 12// pigment 15% areola pigment vs reproductive_state canon 13// gravity 15% nx_breast_drape_pose match vs pose tag 14// natural 10% soft-tissue read vs implant-firm read 15// 16// Sealed verdict ladder mirrors vulva/glute composites: 17// OFF_TARGET / APPROACHING / MATCHES_TARGET / S_CLASS_AESTHETIC 18 19// nx_safety_envelope: 20// intended_use: AUTO_APPLIED -- primitive-specific tuning queued 21// sil_target: SIL1 22// evidence: [bulk_applied_2026-05-16, see-file-comment-for-detail] 23// verdict: NOT_YET_EVALUATED 24 25import "nx_syscalls.nx" 26const NX_MAGIC_1024: i64 = 1024 27 28const NX_BR_AES_RES_SHAPE: i64 = 0 29const NX_BR_AES_RES_SYMMETRY: i64 = 1 30const NX_BR_AES_RES_NIPPLE_POS: i64 = 2 31const NX_BR_AES_RES_PIGMENT: i64 = 3 32const NX_BR_AES_RES_GRAVITY: i64 = 4 33const NX_BR_AES_RES_NATURAL: i64 = 5 34const NX_BR_AES_RES_COMPOSITE: i64 = 6 35const NX_BR_AES_RES_VERDICT: i64 = 7 36const NX_BR_AES_RES_FAIL_AXIS: i64 = 8 37const NX_BR_AES_RES_FIELDS: i64 = 9 38 39const NX_BR_AES_OFF_TARGET: i64 = 0 40const NX_BR_AES_APPROACHING: i64 = 1 41const NX_BR_AES_MATCHES_TARGET: i64 = 2 42const NX_BR_AES_S_CLASS: i64 = 3 43 44const NX_BR_AES_AXIS_SHAPE: i64 = 0 45const NX_BR_AES_AXIS_SYMMETRY: i64 = 1 46const NX_BR_AES_AXIS_NIPPLE_POS: i64 = 2 47const NX_BR_AES_AXIS_PIGMENT: i64 = 3 48const NX_BR_AES_AXIS_GRAVITY: i64 = 4 49const NX_BR_AES_AXIS_NATURAL: i64 = 5 50 51// All 6 inputs are Q10 0..1024 from upstream detectors. 52// shape_q10 — natural teardrop curve (1024 = textbook teardrop) 53// symmetry_q10 — L vs R area + position match (1024 = identical pair) 54// nipple_q10 — vertical position relative to breast height (1024 = perky high) 55// pigment_q10 — vs reproductive_state canon (1024 = match) 56// gravity_q10 — nx_breast_drape_pose composite (1024 = NATURAL drape) 57// natural_q10 — soft tissue read (1024 = no implant edge signature) 58func nx_breast_aesthetic_composite(shape_q10: i64, symmetry_q10: i64, 59 nipple_q10: i64, pigment_q10: i64, 60 gravity_q10: i64, natural_q10: i64, 61 result: *i64) -> i64 { 62 var i: i64 = 0 63 while i < NX_BR_AES_RES_FIELDS { result[i] = 0; i = i + 1 } 64 65 var s: i64 = shape_q10 66 var sym: i64 = symmetry_q10 67 var np: i64 = nipple_q10 68 var pg: i64 = pigment_q10 69 var gv: i64 = gravity_q10 70 var nat: i64 = natural_q10 71 if s < 0 { s = 0 } 72 if sym < 0 { sym = 0 } 73 if np < 0 { np = 0 } 74 if pg < 0 { pg = 0 } 75 if gv < 0 { gv = 0 } 76 if nat < 0 { nat = 0 } 77 if s > NX_MAGIC_1024 { s = NX_MAGIC_1024 } 78 if sym > NX_MAGIC_1024 { sym = NX_MAGIC_1024 } 79 if np > NX_MAGIC_1024 { np = NX_MAGIC_1024 } 80 if pg > NX_MAGIC_1024 { pg = NX_MAGIC_1024 } 81 if gv > NX_MAGIC_1024 { gv = NX_MAGIC_1024 } 82 if nat > NX_MAGIC_1024 { nat = NX_MAGIC_1024 } 83 84 result[NX_BR_AES_RES_SHAPE] = s 85 result[NX_BR_AES_RES_SYMMETRY] = sym 86 result[NX_BR_AES_RES_NIPPLE_POS] = np 87 result[NX_BR_AES_RES_PIGMENT] = pg 88 result[NX_BR_AES_RES_GRAVITY] = gv 89 result[NX_BR_AES_RES_NATURAL] = nat 90 91 // Weighted composite: 25/20/15/15/15/10. 92 let composite: i64 = (s * 25 + sym * 20 + np * 15 + pg * 15 + gv * 15 + nat * 10) / 100 93 result[NX_BR_AES_RES_COMPOSITE] = composite 94 95 var verdict: i64 = NX_BR_AES_OFF_TARGET 96 if composite >= 410 { verdict = NX_BR_AES_APPROACHING } 97 if composite >= 614 { verdict = NX_BR_AES_MATCHES_TARGET } 98 if composite >= 819 { verdict = NX_BR_AES_S_CLASS } 99 result[NX_BR_AES_RES_VERDICT] = verdict 100 101 // Failing axis (lowest score). 102 var min_score: i64 = s 103 var min_axis: i64 = NX_BR_AES_AXIS_SHAPE 104 if sym < min_score { min_score = sym; min_axis = NX_BR_AES_AXIS_SYMMETRY } 105 if np < min_score { min_score = np; min_axis = NX_BR_AES_AXIS_NIPPLE_POS } 106 if pg < min_score { min_score = pg; min_axis = NX_BR_AES_AXIS_PIGMENT } 107 if gv < min_score { min_score = gv; min_axis = NX_BR_AES_AXIS_GRAVITY } 108 if nat < min_score { min_score = nat; min_axis = NX_BR_AES_AXIS_NATURAL } 109 result[NX_BR_AES_RES_FAIL_AXIS] = min_axis 110 return 0 111}