nx_ferment_flavor.nx
buildroot/runtime/nx_ferment_flavor.nx
about
nx_ferment_flavor.nx -- CAPSTONE: the CONVERGENCE of the fermentation
and taste-science ladders. A fermentation is a flavor-generating
process; this organ predicts the SENSORY OUTCOME from first principles
and inverts it to DESIGN a ferment for a target taste.
The chain, composing four organs across both ladders:
R3 nx_ferment_kinetics : (temp, time) -> pH(t) [acid accumulation]
T0 nx_taste_transduce : acid -> SOUR receptor response (saturating)
+ a proteolysis model : time -> umami (peptide/glutamate release)
T2 nx_flavor_integrate : assemble the evolving multimodal flavor vector
As a batch ferments: pH falls -> sour rises (and saturates, via the Hill
receptor); proteolysis builds umami; residual sweetness fades; aroma and
body develop. A YOUNG ferment is mild and sweet; an AGED one is sour,
savoury, aromatic.
MEASURED EXCEED: nothing in the baseline -- and no cookbook -- predicts
the sensory trajectory of a ferment from its chemistry, nor inverts it
to hit a target flavor. "Ferment 8 hours" becomes "at hour 8: pH 4.5,
sour-intensity X, umami Y", and "make it this tangy" becomes a time.
genealogy_id: nishi_ferment_kinetics_r3 + nishi_taste_transduce_t0
+ nishi_flavor_integrate_t2
dependencies 4 imports · 1 importers
imports: nx_syscalls.nxnx_ferment_kinetics.nxnx_taste_transduce.nxnx_flavor_integrate.nx
imported by: nx_ferment_flavor_test.nx
structs
| none |
consts
| 30 | const NX_FF_PH0_MILLI: i64 = 6500 // milk / substrate starting pH |
functions
| 34 | func nx_ferment_sour_at(t_c: i64, hour: i64) -> i64 |
| 44 | func nx_ferment_umami_at(hour: i64, proteolysis_rate_milli: i64) -> i64 |
| 51 | func nx_ferment_flavor_vector(t_c: i64, hour: i64, proteolysis_rate_milli: i64) -> *NxFlavorVector called by 1: main calls 4: nx_ferment_sour_atnx_ferment_umami_atnx_ferment_kinetics_ph_atnx_flavor_vector_new |
| 66 | func nx_ferment_time_for_sour(t_c: i64, target_sour: i64, max_hours: i64) -> i64 |