Footsteps
Procedural footstep synthesis with surface resolver. Wood, concrete, gravel — zero repetition samples.
Key Features
7 Parallel Sub-sources
Kick, heel, toe, modal, grain, scrape, and squelch — combined for realistic footstep synthesis.
SurfaceResolver
Raycasts terrain to automatically determine surface material — wood, concrete, metal, gravel, flesh.
16 Semantic Parameters
Control every aspect of the footstep: weight, speed, surface, boot type, and more.
Zero-heap Voice Structs
Allocation-free voice management for maximum performance on the audio thread.
Dual-Transient Impact
Separate control for heel-strike and toe-off transients — realistic gait dynamics.
Semantic Control API
// Set up surface-aware footsteps
var engine = GetComponent<FootstepsEngine>();
engine.SetSurfaceWeight("Concrete", 0.85f);
engine.SetSurfaceWeight("Wood", 0.15f);
engine.SetVelocity(0.7f);
engine.Step(); // Procedurally generatedWhy Footsteps?
Traditional footstep systems require hundreds of recorded samples per surface type. Our procedural approach generates infinite variation from a handful of parameters — with zero disk space overhead. The SurfaceResolver automatically detects terrain material via raycast.
Technical Details
Architecture & Performance
- 7 parallel sub-sources: kick, heel, toe, modal, grain, scrape, squelch
- SurfaceResolver with raycast-based terrain detection
- 16 semantic parameters for full footstep control
- Zero-heap voice structs for allocation-free audio thread performance
- Dual-transient impact: separate heel-strike and toe-off control
- Poisson-grain debris synthesis for gravel, snow, and grass
- Shares Core lock-free command queue and voice management