Data-driven tuning bench: feel profiles (JSON gestalts + overlay A/B), asset-derived timing audit, server-measured combat probe

FeelProfileService: partial-apply profiles ride the authoritative SetTuning
path + FeelConfig reflection; Save-current captures hand-dialed state; 3
starter profiles (baseline-0720 / heavy-committed / snappier, DPS-held).
TuningAuditTools: contact truth derived from clip WindUp takes / state
speeds vs MeleeTiming (drift detector), coupling invariants, cadence/DPS,
reach-honesty ratio off the baked weapon mesh (now x0.93/x1.16, was >2x).
CombatProbe: dummy + injected mash chain, per-swing server-measured
start/contact/damage + cadence/DPS report. Verified live: snappier profile
apply -> measured 24/24/36 gaps, +12/+8/+15 contacts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-20 21:28:33 -07:00
parent 2b742f0179
commit 730bad3d74
15 changed files with 520 additions and 0 deletions
@@ -0,0 +1,20 @@
{
"name": "baseline-0720",
"notes": "The shipped 07-20 defaults (forks 1-6). Apply to RESET after experiments. DPS ~60 held: dmg = recover ticks.",
"sim": [
{ "k": "MeleeDamage", "v": "30" },
{ "k": "MeleeRange", "v": "2.2" },
{ "k": "MeleeRecoverTicks", "v": "30" },
{ "k": "MeleeChainGraceTicks", "v": "24" },
{ "k": "MeleeFinisherMult", "v": "1.5" },
{ "k": "MeleeFinisherRangeMult", "v": "1.25" },
{ "k": "MeleeBufferTicks", "v": "8" },
{ "k": "MeleeContactTicks", "v": "16" }
],
"feel": [
{ "k": "MeleeArcIntensity", "v": "1" },
{ "k": "MeleeArcBubbles", "v": "6" },
{ "k": "FinisherHoldFrames", "v": "5" },
{ "k": "CombatIdleHoldSec", "v": "4" }
]
}