nx_aesthetic_vocabulary.nx source
↩ module page · 262 lines · 10595 B
1// nx_aesthetic_vocabulary.nx -- body-aesthetic kinds with multi-language phrase variants.
2//
3// Companion to nx_outfit_vocabulary. Where outfit_vocabulary covers
4// CLOTHING terms, this covers BODY AESTHETIC targets that the user
5// wants the substrate to push the generator toward.
6//
7// Key insight: certain body aesthetics have PRECISE single-token names
8// in CJK that English lacks. Notable examples:
9// 縦スジ ja "vertical line" — clean innie/closed-cleft vulva (precise term)
10// 土手まん ja "mons only" — puffy mons + tucked labia
11// 一线天 zh "single thread of sky" — Chinese equivalent of 縦スジ
12// 馒头逼 zh "steamed bun pussy" — clean puffy aesthetic
13// パイパン ja "completely hairless" — shaved/smooth target
14// 美脚 ja "beautiful legs" — long slim legs
15// 美乳 ja "beautiful breasts" — perky symmetric breasts
16// 桃尻 ja "peach ass" — heart-shaped glutes
17//
18// Sealed AestheticKind enum + per-kind language-tagged phrase variants.
19// Composer emits all variants together for multi-language token anchoring.
20
21// nx_safety_envelope:
22// intended_use: AUTO_APPLIED -- primitive-specific tuning queued
23// sil_target: SIL1
24// evidence: [bulk_applied_2026-05-16, see-file-comment-for-detail]
25// verdict: NOT_YET_EVALUATED
26
27import "nx_syscalls.nx"
28
29// Sealed aesthetic-target kinds.
30const NX_AES_UNKNOWN: i64 = 0
31const NX_AES_INNIE_CLEAN_CLEFT: i64 = 1 // closed vertical cleft, labia tucked
32const NX_AES_PUFFY_MONS: i64 = 2 // full puffy mons venus
33const NX_AES_HAIRLESS_VULVA: i64 = 3
34const NX_AES_PINK_NATURAL_PIGMENT: i64 = 4
35const NX_AES_HEART_SHAPED_ASS: i64 = 5 // peach/bubble butt
36const NX_AES_PERKY_BREASTS: i64 = 6
37const NX_AES_THIGH_GAP_VISIBLE: i64 = 7
38const NX_AES_HOURGLASS_WAIST: i64 = 8
39const NX_AES_LONG_SLIM_LEGS: i64 = 9
40const NX_AES_TIGHT_TONED_STOMACH: i64 = 10
41const NX_AES_SOFT_NATURAL_BREASTS: i64 = 11 // natural drape, not implant-firm
42
43// Language tags (reuse from nx_outfit_vocabulary).
44const NX_AES_LANG_EN: i64 = 1
45const NX_AES_LANG_JA: i64 = 2
46const NX_AES_LANG_KO: i64 = 3
47const NX_AES_LANG_ZH_CN: i64 = 4
48const NX_AES_LANG_ZH_TW: i64 = 5
49
50func nx_aesthetic_phrase(kind: i64, language: i64, variant: i64) -> *u8 {
51 // INNIE_CLEAN_CLEFT --------------------------------------------
52 // The user's reference images #49-#54 all exhibit this aesthetic:
53 // taut outer labia majora forming a single clean vertical cleft,
54 // labia minora completely tucked, smooth mons.
55 if kind == NX_AES_INNIE_CLEAN_CLEFT {
56 if language == NX_AES_LANG_EN {
57 if variant == 0 { return "clean innie vulva, slim outer labia tucked tight, vertical-cleft pussy" }
58 if variant == 1 { return "closed vertical cleft, no labia protrusion, smooth tight innie" }
59 if variant == 2 { return "labia minora tucked completely inside outer lips, clean vulva line" }
60 return 0 as *u8
61 }
62 if language == NX_AES_LANG_JA {
63 if variant == 0 { return "縦スジ" }
64 if variant == 1 { return "綺麗な縦スジ" }
65 if variant == 2 { return "土手まん" }
66 if variant == 3 { return "ふっくらまんこ" }
67 return 0 as *u8
68 }
69 if language == NX_AES_LANG_KO {
70 if variant == 0 { return "깨끗한 보지" }
71 if variant == 1 { return "세로줄 보지" }
72 return 0 as *u8
73 }
74 if language == NX_AES_LANG_ZH_CN {
75 if variant == 0 { return "一线天" }
76 if variant == 1 { return "馒头逼" }
77 if variant == 2 { return "干净的阴唇" }
78 return 0 as *u8
79 }
80 }
81 // PUFFY_MONS ---------------------------------------------------
82 if kind == NX_AES_PUFFY_MONS {
83 if language == NX_AES_LANG_EN {
84 if variant == 0 { return "puffy mons venus, full soft mons" }
85 return 0 as *u8
86 }
87 if language == NX_AES_LANG_JA {
88 if variant == 0 { return "土手高" }
89 if variant == 1 { return "ぷっくり土手" }
90 return 0 as *u8
91 }
92 }
93 // HAIRLESS_VULVA -----------------------------------------------
94 if kind == NX_AES_HAIRLESS_VULVA {
95 if language == NX_AES_LANG_EN {
96 if variant == 0 { return "smooth hairless mons, completely shaved vulva, no pubic hair" }
97 return 0 as *u8
98 }
99 if language == NX_AES_LANG_JA {
100 if variant == 0 { return "パイパン" }
101 if variant == 1 { return "ツルツルパイパン" }
102 return 0 as *u8
103 }
104 if language == NX_AES_LANG_KO {
105 if variant == 0 { return "민자" }
106 return 0 as *u8
107 }
108 if language == NX_AES_LANG_ZH_CN {
109 if variant == 0 { return "白虎" }
110 return 0 as *u8
111 }
112 }
113 // PINK_NATURAL_PIGMENT -----------------------------------------
114 if kind == NX_AES_PINK_NATURAL_PIGMENT {
115 if language == NX_AES_LANG_EN {
116 if variant == 0 { return "natural pink vulva tone, light tan-pink pigment, no darkening" }
117 return 0 as *u8
118 }
119 if language == NX_AES_LANG_JA {
120 if variant == 0 { return "綺麗なピンク色" }
121 if variant == 1 { return "ピンクまんこ" }
122 return 0 as *u8
123 }
124 }
125 // HEART_SHAPED_ASS ---------------------------------------------
126 if kind == NX_AES_HEART_SHAPED_ASS {
127 if language == NX_AES_LANG_EN {
128 if variant == 0 { return "heart-shaped peach ass, full round bubble butt, lifted glutes" }
129 return 0 as *u8
130 }
131 if language == NX_AES_LANG_JA {
132 if variant == 0 { return "桃尻" }
133 if variant == 1 { return "ハート型ヒップ" }
134 return 0 as *u8
135 }
136 if language == NX_AES_LANG_KO {
137 if variant == 0 { return "복숭아 엉덩이" }
138 return 0 as *u8
139 }
140 if language == NX_AES_LANG_ZH_CN {
141 if variant == 0 { return "蜜桃臀" }
142 return 0 as *u8
143 }
144 }
145 // PERKY_BREASTS ------------------------------------------------
146 if kind == NX_AES_PERKY_BREASTS {
147 if language == NX_AES_LANG_EN {
148 if variant == 0 { return "perky symmetric breasts, lifted natural firmness, nipples pointing forward" }
149 return 0 as *u8
150 }
151 if language == NX_AES_LANG_JA {
152 if variant == 0 { return "美乳" }
153 if variant == 1 { return "ツンと上向きおっぱい" }
154 return 0 as *u8
155 }
156 }
157 // SOFT_NATURAL_BREASTS -----------------------------------------
158 if kind == NX_AES_SOFT_NATURAL_BREASTS {
159 if language == NX_AES_LANG_EN {
160 if variant == 0 { return "soft natural breasts with gravity drape, real tissue not implant" }
161 return 0 as *u8
162 }
163 if language == NX_AES_LANG_JA {
164 if variant == 0 { return "柔らかい天然おっぱい" }
165 return 0 as *u8
166 }
167 }
168 // THIGH_GAP_VISIBLE --------------------------------------------
169 if kind == NX_AES_THIGH_GAP_VISIBLE {
170 if language == NX_AES_LANG_EN {
171 if variant == 0 { return "visible thigh gap, slim inner thighs apart, daylight between thighs" }
172 return 0 as *u8
173 }
174 if language == NX_AES_LANG_JA {
175 if variant == 0 { return "太もも隙間" }
176 return 0 as *u8
177 }
178 }
179 // HOURGLASS_WAIST ----------------------------------------------
180 if kind == NX_AES_HOURGLASS_WAIST {
181 if language == NX_AES_LANG_EN {
182 if variant == 0 { return "hourglass waist, narrow defined waistline, bust-hip phi proportion" }
183 return 0 as *u8
184 }
185 if language == NX_AES_LANG_JA {
186 if variant == 0 { return "くびれ" }
187 if variant == 1 { return "綺麗なくびれ" }
188 return 0 as *u8
189 }
190 if language == NX_AES_LANG_ZH_CN {
191 if variant == 0 { return "小蛮腰" }
192 return 0 as *u8
193 }
194 }
195 // LONG_SLIM_LEGS -----------------------------------------------
196 if kind == NX_AES_LONG_SLIM_LEGS {
197 if language == NX_AES_LANG_EN {
198 if variant == 0 { return "long slim legs, tall slender lower body, leg-to-torso phi ratio" }
199 return 0 as *u8
200 }
201 if language == NX_AES_LANG_JA {
202 if variant == 0 { return "美脚" }
203 if variant == 1 { return "脚長スレンダー" }
204 return 0 as *u8
205 }
206 }
207 // TIGHT_TONED_STOMACH ------------------------------------------
208 if kind == NX_AES_TIGHT_TONED_STOMACH {
209 if language == NX_AES_LANG_EN {
210 if variant == 0 { return "tight toned stomach, flat abs with soft definition" }
211 return 0 as *u8
212 }
213 if language == NX_AES_LANG_JA {
214 if variant == 0 { return "引き締まったお腹" }
215 return 0 as *u8
216 }
217 }
218 return 0 as *u8
219}
220
221// Length of null-terminated *u8.
222func nx_aes_strlen(s: *u8) -> i64 {
223 if s == (0 as *u8) { return 0 }
224 var n: i64 = 0
225 while s[n] != 0 { n = n + 1 }
226 return n
227}
228
229// Compose all language variants for one aesthetic kind. Caller pre-allocs out.
230func nx_aesthetic_compose(kind: i64, out: *u8, out_cap: i64) -> i64 {
231 var pos: i64 = 0
232 var first: i64 = 1
233 var lang: i64 = NX_AES_LANG_EN
234 while lang <= NX_AES_LANG_ZH_TW {
235 var variant: i64 = 0
236 while variant < 4 {
237 let phrase: *u8 = nx_aesthetic_phrase(kind, lang, variant)
238 if phrase != (0 as *u8) {
239 if first == 0 {
240 if pos + 2 < out_cap {
241 out[pos] = 44 // ','
242 out[pos + 1] = 32 // ' '
243 pos = pos + 2
244 }
245 }
246 first = 0
247 var i: i64 = 0
248 while phrase[i] != 0 {
249 if pos + 1 < out_cap {
250 out[pos] = phrase[i]
251 pos = pos + 1
252 }
253 i = i + 1
254 }
255 }
256 variant = variant + 1
257 }
258 lang = lang + 1
259 }
260 if pos < out_cap { out[pos] = 0 }
261 return pos
262}