nx_flavor_design.nx
buildroot/runtime/nx_flavor_design.nx
about
nx_flavor_design.nx -- T5 of the TASTE-SCIENCE ladder: GENERATIVE
FLAVOR DESIGN. The taste-ladder analogue of ferment R5: given a TARGET
perceived taste profile and a palette of ingredients, GENERATE the
combination whose PERCEIVED profile (after T1 mixture suppression) best
matches the target -- creating a flavor the palette has none of on its
own.
The baseline nx_food_science picks from a FIXED slot frame by summing
static axis scores. T5 searches the palette (singles AND blends) and
scores each candidate by its PERCEIVED profile (real psychophysics),
targeting an arbitrary goal -- so it can DESIGN toward "balanced sweet-
sour" or any target, and the best answer is often a BLEND that exists in
no single ingredient.
MEASURED EXCEED (gate-checked): for a balanced target, the best 2-
ingredient BLEND (a new combination) beats every single ingredient,
scored on perceived (suppressed) profiles -- generation the static
frame cannot do.
Composes T1 (nx_taste_psychophysics) for mixture perception.
genealogy_id: nishi_taste_psychophysics_t1 + generate_and_test_design
dependencies 2 imports · 1 importers
imports: nx_syscalls.nxnx_taste_psychophysics.nx
imported by: nx_flavor_design_test.nx
structs
| none |
consts
| 26 | const K_MAGIC_999999999: i64 = 999999999 |
functions
| 29 | func _fd_row(palette: *i64, c: i64) -> *i64 |
| 34 | func nx_flavor_distance(a: *i64, b: *i64) -> i64 |
| 47 | func nx_flavor_perceived(raw: *i64, out: *i64) -> i64 |
| 53 | func nx_flavor_blend(a: *i64, b: *i64, out: *i64) -> i64 called by 1: nx_flavor_design_best_blend |
| 64 | func nx_flavor_design_best(target: *i64, palette: *i64, k: i64) -> i64 |
| 83 | func nx_flavor_design_best_distance(target: *i64, palette: *i64, k: i64) -> i64 |
| 99 | func nx_flavor_design_best_blend(target: *i64, palette: *i64, k: i64, |