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}