Overview Code Issues Pull requests Commits Branches Releases Insights feel-and-sound: impact, camera reactions, and a synthesised sound bed
DuelFx turns the umpire's verdicts into something you feel: recoil, shove and
an outline flash on the struck fencer, follow-through on the striker, a contact
bloom, a turf puff when the post goes in, and a hitstop that always releases.
PisteCamera now frames by extent rather than by separation, so both fencers and
the boundary post stay in shot at the nearest distance that covers them. A
fencer reads 38% of frame height at measure, up from 31%, and 22% in the worst
case, up from 18%.
fx.module carries the event source over the umpire's bus (with a derivation
that recovers the events its one slot coalesces), the shared easing, and an
offline synthesiser. Twelve soundClips under /source/audio are rendered by it
from sines, noise and envelopes: the assize bell, panel on panel, the touch,
gravel underfoot, a tell for each of the four commitments, the riposte ring,
the post going in, a whiff, and the garden's own nine-second loop. 38bd3231a10385a2b239ceec5702a2a4a5b86c02230afc942a2cfd43584578a1 Author claude-code @ aura Date Aug 2, 2026 Branch main Parent 494bebf1e9 Compare with parent Browse the world at this commit 61 files changed Added DuelFx.component/.metadata 248 B After Added DuelFx.component/README.md 3.3 KB After Added DuelFx.component/init.luau 21.5 KB After Changed FencerAI.component Folder Before After Changed PisteCamera.component/.metadata 17 B → 255 B Before After Changed PisteCamera.component/README.md 897 B → 2.7 KB Before After Changed PisteCamera.component/init.luau 3.2 KB → 6.0 KB Before After Added audio/bell_assize.soundClip Folder After Added audio/bell_assize.soundClip/.metadata 331 B After Added audio/bell_assize.soundClip/README.md 397 B After Added audio/bell_assize.soundClip/data.zaud 31.5 KB After Added audio/garden_bed.soundClip Folder After Added audio/garden_bed.soundClip/.metadata 336 B After Added audio/garden_bed.soundClip/README.md 388 B After Added audio/garden_bed.soundClip/data.zaud 109 KB After Added audio/gravel_step.soundClip Folder After Added audio/gravel_step.soundClip/.metadata 281 B After Added audio/gravel_step.soundClip/README.md 345 B After Added audio/gravel_step.soundClip/data.zaud 2.2 KB After Added audio/panel_clack.soundClip Folder After Added audio/panel_clack.soundClip/.metadata 282 B After Added audio/panel_clack.soundClip/README.md 350 B After Added audio/panel_clack.soundClip/data.zaud 3.7 KB After Added audio/post_drive.soundClip Folder After Added audio/post_drive.soundClip/.metadata 258 B After Added audio/post_drive.soundClip/README.md 325 B After Added audio/post_drive.soundClip/data.zaud 6.8 KB After Added audio/riposte_open.soundClip Folder After Added audio/riposte_open.soundClip/.metadata 267 B After Added audio/riposte_open.soundClip/README.md 334 B After Added audio/riposte_open.soundClip/data.zaud 10.4 KB After Added audio/tell_lunge.soundClip Folder After Added audio/tell_lunge.soundClip/.metadata 282 B After Added audio/tell_lunge.soundClip/README.md 348 B After Added audio/tell_lunge.soundClip/data.zaud 5.4 KB After Added audio/tell_parry.soundClip Folder After Added audio/tell_parry.soundClip/.metadata 263 B After Added audio/tell_parry.soundClip/README.md 330 B After Added audio/tell_parry.soundClip/data.zaud 2.0 KB After Added audio/tell_sweep.soundClip Folder After Added audio/tell_sweep.soundClip/.metadata 275 B After Added audio/tell_sweep.soundClip/README.md 340 B After Added audio/tell_sweep.soundClip/data.zaud 5.1 KB After Added audio/tell_thrust.soundClip Folder After Added audio/tell_thrust.soundClip/.metadata 264 B After Added audio/tell_thrust.soundClip/README.md 331 B After Added audio/tell_thrust.soundClip/data.zaud 2.7 KB After Added audio/touch_thud.soundClip Folder After Added audio/touch_thud.soundClip/.metadata 260 B After Added audio/touch_thud.soundClip/README.md 328 B After Added audio/touch_thud.soundClip/data.zaud 5.9 KB After Added audio/whiff_air.soundClip Folder After Added audio/whiff_air.soundClip/.metadata 225 B After Added audio/whiff_air.soundClip/README.md 292 B After Added audio/whiff_air.soundClip/data.zaud 3.7 KB After Changed design/journal.md 60.9 KB → 77.8 KB Before After Changed duel.module Folder Before After Added fx.module Folder After Added fx.module/.metadata 273 B After Added fx.module/README.md 2.7 KB After Added fx.module/init.luau 25.7 KB After Home Create Explore Docs Blog