# CrankLab | Interactive engine explorer with procedural geometry and sound

**URL:** <https://discourse.threejs.org/t/cranklab-interactive-engine-explorer-with-procedural-geometry-and-sound/95093>\
**Category:** Showcase\
**Tags:** simulation, web-audio, animation, procedural, mechanics, geometry\
**Created:** [October 7, 2026, 8:29pm UTC](https://discourse.threejs.org/t/cranklab-interactive-engine-explorer-with-procedural-geometry-and-sound/95093 "2026-10-07T20:29:04Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![mroy](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/mroy/32/73262_2.png) [@mroy](https://discourse.threejs.org/u/mroy)\
**Post date:** [October 7, 2026, 8:29pm UTC](https://discourse.threejs.org/t/cranklab-interactive-engine-explorer-with-procedural-geometry-and-sound/95093/1 "2026-10-07T20:29:04Z")

</div>

Hi everyone! I built **CrankLab** , a free interactive engine explorer using Three.js and React Three Fiber.

**Try it:** [https://cranklab.mroy.dev/](https://cranklab.mroy.dev/)

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/a/7/a71c86db305efbb70953dcff329a66c00ec0aebd.jpeg)

You can explore inline, V, boxer, VR and W layouts, slow them down to follow the linkage, or use _ **Auto rev** _ to hear them sweep through the RPM range.

Some things to try:

- Inspect individual cylinders and scrub through the firing timeline.
- Adjust RPM and acoustic load to hear how the synthesized sound changes.
- Change firing orders or individual ignition angles.
- Compare two-stroke and four-stroke engines.
- Share a configuration through a link.

The system generates the mechanical parts procedurally based on engine specifications. Piston and connecting-rod motion uses the exact slider-crank equation, with a reusable simulation frame driving mesh transforms. They share geometry and materials, and they apply instancing to create the animated effects.

_Web Audio_ and an _AudioWorklet_ generate sound by using firing events, cylinder displacement, and estimated exhaust characteristics.

The presets use reference-specific bore and stroke dimensions, with simplified internals and estimated acoustic tuning. It’s an educational visualization rather than an OEM CAD model or a calibrated engine simulation.
