This Grasshopper project constructs a series of reactive roof panels that rotate and redirect sound depending
on the volume of a given performance. The curved geometry reflects sound downward for quieter, more
intimate performances, and rotates to project sound outward for louder, larger-scale concerts.


1. input from microphone: The script extracts the live volume level of a USB microphone’s input through Firefly’s frequency spectrum component. This data is multiplied for a greater output range and then smoothed to avoid random noise.
2. storing and averaging data: As the live volume data is extracted, the script logs these values in a continuous list of a given length (determined by the rotation delay slider). These values are stored over time and then averaged to produce a recorded mean volume (displayed in the yellow panel in the top right of the corresponding group in the script).
3. remapping values: The raw averaged volume data needs to be remapped to values pertaining to the rotation of the geometry the script creates. A domain is placed that limits the rotation between -30 and 30 degrees, and the volume data is remapped to fit these values. As a result, if the average volume is low, the angle will remain low, and if the average volume becomes high, the angle will increase.
4. constructing segments: This portion of the script utilizes various geometric components to construct the roof panels in a way that allows for heavy manipulation and iteration. Parameters such as panel quantity, slope, bend factor, and thickness are all adjustable through the script’s adherence to curve-based spines for the geometry and strategic list management.
5. manipulating geometry: When these previous four groups of components work in conjunction with one another, the script produces a roof geometry that responds directly to the manipulated data provided by the microphone’s input. The script’s ability to utilize average stored values prevents the panels from falling and rising rapidly as a song changes volumes; they instead respond (more appropriately) to the overarching output of the sound over time.

Click the image below to view a video demonstration of the Reactive Amphitheater.
Back to Top