Envelop
Controls
- Arrow Keys — Spheres launched from cardinal directions. Spheres are destroyed when they become still or when they land outside the enclosure.
- W / S — Change musical scale used.
- M — Change camera perspective and switches between 2D and 3D audio.
- D — Dissolve effect to show/hide enclosure.
- Mouse X-Axis — Rotation speed and direction.
- R — Reset.
Description
Envelop is a virtual audiovisual instrument featuring interactive and procedurally generated audio and graphics. The environment consists of a rotating grid of floating tiles, where the speed and direction of the rotation is controlled by the mouse's x coordinate. When the performer presses an arrow key, a sphere is launched at a random speed toward the grid, triggering a sound when it overlaps with a tile.
The spheres remain in the vicinity of the grid by colliding against invisible walls. The visibility of the walls can be toggled to reveal the instrument's enclosure. Confining the spheres causes them to collide against each other, triggering additional sounds as they overlap with the rotating grid. The physics engine will only alter the trajectory of a sphere when it collides with another sphere of with an invisible wall; the tiles trigger sounds exclusively and do not engage with the physics simulation of the spheres.
Almost everything in the piece is generated procedurally. The only asset in the project is an audio recording of a bell. Musical material is produced by retuning that sample through mathematical relationships across a twelve-tone temperament system, so pitch, harmony, and register all emerge from one recording.
There are two distinct modes of note generation. The first one assigns a note and register to each tile when the grid is generated, playing this note when colliding with a sphere. The second mode uses a first-order Markov chain to determine what note to play based on the previous note and a table of probabilities.
Visually, each tile's brightness varies based on the loudness of the note it plays. The loudness of all tiles controls the brightness of several point lights placed within the environment. This is easier to see when the walls are visible.
Tile-sphere collisions also trigger particle systems that float upward. The color of the generated particles matches that of the tile that generated them. Additionally, the general environment is made by a custom skybox shader inspired by the northern lights.
Finally, the camera can be positioned overhead or within the enclosure. Besides defining what is visually rendered, the camera perspective also controls how the audio is spatialized, rendering channel-based audio when the camera is overhead and object-based audio when the camera is within the environment.
Known bugs
Safari: The Escape key doesn't exit full screen.
| Published | 16 days ago |
| Status | Released |
| Platforms | HTML5 |
| Author | dcardonab |
| Genre | Simulation |
| Tags | Instrument, responsive-envrionment, virtual-installation |
| Content | No generative AI was used |
