When asked what my ultimate VR work experience would be, visions of being surrounded by a living environment, driven by music, came to mind. My very first attempt at this was during my hiring process at Immersed in 2019. The attempt did not go well. Later, when browsing the Unity store, I came upon and Asset, by Bad Raccoon, that contained a VU Meter and could offset the scale of objects and RGB values as well as some offerings to the emission rate of particles. My first few Visualizer Environments stuck to the limits of the Unity Asset. I started getting quite creative after that. There were tons of experiments with axis offsets and what could be achieved in shaders by converting the RGB ramping into numerical values used to offset other effects.
My proudest Environment, from the set of five visualizers created, is the Electric Plasma Ball. I have always admired the desk toys that have a plasma electric core and a clear sphere around them. When touched, the electricity arks out to the point of contact. My vision was to be inside one such sphere, a plasma ball floating in the center, and lighting arching out to strike the surrounding surfaces. All of the actions would be driven by the tones of the music.
The first step was the creation of the sphere. I chose a geosphere since it would allow me to section off a series of hexagons, matching the theme of prior visualizers, with a handful of pentagons in the mix. I chose a geosphere that resulted in 124 of the geometric shapes. Since the individual(s) would be within the sphere, I cut the geosphere in half so I could mirror the spreading of the VU Inputs to the front and back of the individual. This kept a full range of VU Inputs visible no matter the direction the individual was looking. It also would cut my work in half by setting up a hierarchy with a central Root to rotate a copy of the half of the geosphere into place. Each geometric object was assigned to the VU Meter, Bass starting from the center and spiraling out as the pitch was increased. This resulted in 62 samples across the spectrum of sound.
The second part was creating a shader that would result in arching electricity across the surface of the hexagons and pentagons. I pulled in the Blue Channel that was being ramped up with the VU Meter and clamped it to a 0-1 value. I used the resulting value to control the intensity of the electric noise as well as using the Blue Channel to intensify the illumination of the effect.
In the third step, I used Unity Line Objects to create a line from the intended point of the plasma ball down to the center of each geometric object. There was a lot of manual copy and paste involved in this process, so much so I created a time lapse. Once all the lines were in place I expanded upon the ideas used in the electric surface shader and created a new shader to control the bursts of lighting. I again grabbed the Blue Channel ramping and used it to affect the intensity of the distortion of the line to create the initial effect. As the intensity of the VU Input increased, the distortion increased to create wilder untamed electric arching. I used a few gradient ramps to tame each endpoint. From the start point I used a soft gradient so the lightning would gently arch out. At the endpoint I used a tight gradient to ensure that the lightning would always strike the center of the geometric object but be rather wild for a good portion of its path.
To tie a bow on the whole thing was the Plasma Ball itself. I created a globular effect in Unity that would stay at a constant rate of bubbling and morphing with as few particles as possible. I then added small sparking effects that would ramp along the VU range. When the music really gets going, the plasma ball looks enraged with energy.
I am very proud of the end result and the performance it was able to achieve on Standalone VR Headsets, in an app where the majority of the performance resources go to screen emulation, passthrough portals and other app features.
ERROR - This is what happens when the scaling axis is in the center of the Geosphere System, instead of offset slightly from the object center.
I always thought that this could make an interesting desk toy in VR.
Testing out the Geosphere VU Inputs with a bit of Sia Thunderclouds.
Testing out the Geosphere with a bit of the Prawn Song
Tuning the Electrical Effect on the Strike Plates
Perfecting the Lighting Strike Effect
Aligning all of the start points of the line objects to the surface of the plasma ball
Completed Result - You can experience this environment in the Immersed VR app.