nx_glute_aesthetic_composite.nx source
↩ module page · 109 lines · 4761 B
1// nx_glute_aesthetic_composite.nx -- score against heart-peach-ass target.
2//
3// Parallel to nx_vulva_aesthetic_composite. The substrate target for ass
4// aesthetic is the HEART_SHAPED_PEACH form: round full cheeks with a
5// visible heart contour, lifted (centroid above gluteal fold), smooth
6// surface (no cellulite/dimples beyond natural sacral), bilateral
7// symmetry, and canon hip-glute proportion.
8//
9// 5-axis composite (weighted Q10):
10// shape 30% heart/peach vs flat
11// lift 25% centroid above fold
12// round 20% curvature smoothness (no cellulite)
13// symmetry 15% L/R cheek match
14// proportion 10% glute_projection : hip canon
15//
16// Sealed verdict ladder:
17// OFF_TARGET < 410 flat, saggy, asymmetric, or off-proportion
18// APPROACHING 410-614 some axes aligned
19// MATCHES_TARGET 614-819 reads as heart-peach
20// S_CLASS_AESTHETIC >= 819 textbook heart-peach
21//
22// Failing-axis output drives auto-fix corrective phrasing via
23// nx_aesthetic_vocabulary HEART_SHAPED_ASS phrases (桃尻 / 蜜桃臀 / etc.)
24
25// nx_safety_envelope:
26// intended_use: AUTO_APPLIED -- primitive-specific tuning queued
27// sil_target: SIL1
28// evidence: [bulk_applied_2026-05-16, see-file-comment-for-detail]
29// verdict: NOT_YET_EVALUATED
30
31import "nx_syscalls.nx"
32const NX_MAGIC_1024: i64 = 1024
33
34const NX_GLUTE_AES_RES_SHAPE_MATCH: i64 = 0
35const NX_GLUTE_AES_RES_LIFT_MATCH: i64 = 1
36const NX_GLUTE_AES_RES_ROUND_MATCH: i64 = 2
37const NX_GLUTE_AES_RES_SYMMETRY_MATCH: i64 = 3
38const NX_GLUTE_AES_RES_PROP_MATCH: i64 = 4
39const NX_GLUTE_AES_RES_COMPOSITE_Q10: i64 = 5
40const NX_GLUTE_AES_RES_VERDICT: i64 = 6
41const NX_GLUTE_AES_RES_FAILING_AXIS: i64 = 7
42const NX_GLUTE_AES_RES_FIELDS: i64 = 8
43
44const NX_GLUTE_AES_OFF_TARGET: i64 = 0
45const NX_GLUTE_AES_APPROACHING: i64 = 1
46const NX_GLUTE_AES_MATCHES_TARGET: i64 = 2
47const NX_GLUTE_AES_S_CLASS: i64 = 3
48
49const NX_GLUTE_AES_AXIS_SHAPE: i64 = 0
50const NX_GLUTE_AES_AXIS_LIFT: i64 = 1
51const NX_GLUTE_AES_AXIS_ROUND: i64 = 2
52const NX_GLUTE_AES_AXIS_SYMMETRY: i64 = 3
53const NX_GLUTE_AES_AXIS_PROPORTION: i64 = 4
54
55// Composite. All 5 inputs are Q10 scores 0..1024 from upstream detectors:
56// shape_q10 — heart/peach curvature signature (1024 = textbook heart)
57// lift_q10 — centroid_y above gluteal_fold_y (1024 = high lift)
58// round_q10 — smoothness of cheek surface (1024 = no dimples/cellulite)
59// symmetry_q10 — |L_area - R_area| / max_area inverted (1024 = identical)
60// proportion_q10 — glute_projection : hip_width canon match (1024 = canon)
61func nx_glute_aesthetic_composite(shape_q10: i64, lift_q10: i64,
62 round_q10: i64, symmetry_q10: i64,
63 proportion_q10: i64, result: *i64) -> i64 {
64 var i: i64 = 0
65 while i < NX_GLUTE_AES_RES_FIELDS { result[i] = 0; i = i + 1 }
66
67 // Clamp each input to 0..1024 (defensive).
68 var s: i64 = shape_q10
69 var l: i64 = lift_q10
70 var r: i64 = round_q10
71 var sym: i64 = symmetry_q10
72 var p: i64 = proportion_q10
73 if s < 0 { s = 0 }
74 if l < 0 { l = 0 }
75 if r < 0 { r = 0 }
76 if sym < 0 { sym = 0 }
77 if p < 0 { p = 0 }
78 if s > NX_MAGIC_1024 { s = NX_MAGIC_1024 }
79 if l > NX_MAGIC_1024 { l = NX_MAGIC_1024 }
80 if r > NX_MAGIC_1024 { r = NX_MAGIC_1024 }
81 if sym > NX_MAGIC_1024 { sym = NX_MAGIC_1024 }
82 if p > NX_MAGIC_1024 { p = NX_MAGIC_1024 }
83
84 result[NX_GLUTE_AES_RES_SHAPE_MATCH] = s
85 result[NX_GLUTE_AES_RES_LIFT_MATCH] = l
86 result[NX_GLUTE_AES_RES_ROUND_MATCH] = r
87 result[NX_GLUTE_AES_RES_SYMMETRY_MATCH] = sym
88 result[NX_GLUTE_AES_RES_PROP_MATCH] = p
89
90 // Weighted composite (30/25/20/15/10).
91 let composite: i64 = (s * 30 + l * 25 + r * 20 + sym * 15 + p * 10) / 100
92 result[NX_GLUTE_AES_RES_COMPOSITE_Q10] = composite
93
94 var verdict: i64 = NX_GLUTE_AES_OFF_TARGET
95 if composite >= 410 { verdict = NX_GLUTE_AES_APPROACHING }
96 if composite >= 614 { verdict = NX_GLUTE_AES_MATCHES_TARGET }
97 if composite >= 819 { verdict = NX_GLUTE_AES_S_CLASS }
98 result[NX_GLUTE_AES_RES_VERDICT] = verdict
99
100 // Failing axis (lowest score).
101 var min_score: i64 = s
102 var min_axis: i64 = NX_GLUTE_AES_AXIS_SHAPE
103 if l < min_score { min_score = l; min_axis = NX_GLUTE_AES_AXIS_LIFT }
104 if r < min_score { min_score = r; min_axis = NX_GLUTE_AES_AXIS_ROUND }
105 if sym < min_score { min_score = sym; min_axis = NX_GLUTE_AES_AXIS_SYMMETRY }
106 if p < min_score { min_score = p; min_axis = NX_GLUTE_AES_AXIS_PROPORTION }
107 result[NX_GLUTE_AES_RES_FAILING_AXIS] = min_axis
108 return 0
109}