← Back home

Full Bloom - Production Booklet


Full Bloom is a virtual reality musical instrument inspired by Elliot Cole's Flowerpot Music. Use flowerpots and mallets to construct short Blooms, petal-laden representations of your notes. A virtual instrument fetches complementary Blooms constructed by other users, playing these note sequences in order of similarity.

Throughout 2020, our development team has worked on an interactive virtual reality game under the guidance of percussionist Peter Ferry. A graduate from the Eastman School of Music, Ferry has explored the acoustic properties of flowerpots through his work leading large group performances on flowerpots. Full Bloom expands upon the 'household musicality' of these instruments.

Through Full Bloom, we hope to demonstrate the potency of intimate audio-driven VR experiences.


❀ Peter Armstrong - Code, Engine Implementation

❀ Richard Swientonioski - Sound Design, Interaction Artist

❀ Zachary Talis - Team Lead, 3D Art, Engine Implementation

❀ Jennie Thomas - 2D Art, Promotional Design

❀ Elliot Cole, Peter Ferry, Joe Geigel, Susan Lakin - Project Advisors

❀ Joe Geigel, Susan Lakin - University Faculty

August 11th, 2021

RIT's Frameless Journal published our paper about Full Bloom! You can read it here.

June 6th - July 6th, 2020

Full Bloom exhibited at this VRTO 2020!

On the last day of the event, Zachary gave a talk regarding the title's development, and debuted "Fervor in Full Bloom," an interactive ambient musical piece that utilized Bloom methodology.

Greenhouse with flowerbeds full of multi-colored flowers. Vines hang from the ceiling.

May 2nd, 2020

Ignore the red error text, that's just SteamVR acting up. This video gives a good sense of Full Bloom's core functionality as well as Richard Swientonioski's sound design for the project.

April 29th, 2020

Here's a look at the greenhouse with Jennie's 2D art assets implemented as sprites. This is the version for our class demo!

Greenhouse with flowerbeds full of multi-colored flowers. Vines hang from the ceiling.

April 28th, 2020

Problem: We've got a huge gap in the greenhouse and a live demo happening shortly.

Solution: Fill in the gap with some bricks.

Brick wall within the structure of a greenhouse.

Peter fixed an issue regarding Bloom prop highlighting.

Flowerpot highlighted in yellow by red selector dot.

This brick texture serves as a stand-in for a fleshed-out shed.

Shiny brick wall next to table. Lamp hangs from wall.

April 27th, 2020

We'll tidy this up down the road, but Blooms are rolling down the conveyor belt!

Blooms stacked as they fall off a conveyor belt.

Yep, this could use some polish.

Bloom with improper highlighting and no flower backfaces.

April 23rd, 2020


A conveyor belt clogged with a pile of flowerpots.

April 22nd, 2020

Peter Armstrong implemented functioning flower petal placement, a crucial step in the Bloom construction process!

Flower with all red petals.

Players can strike various flowerpot drums to place different petals onto each Bloom.

Flower with red, orange, and yellow petals.

April 17th, 2020

Problem: Our lighting looks pretty unpolished.

Solution: Post-processing, and plenty of it!

Here's three different iterations on post-processed lighting for the game. We implemented textured conveyor belt models at the same time.

Greenhouse interior with dim overhead lighting. Greenhouse interior with improved overhouse lighting. Greenhouse interior from player height. Conveyor belt chassis implemented.

April 16th, 2020

Early version of the game's conveyor belt model. This model needed to look sturdy enough to continue functioning after decades of neglect, yet shabby enough to appear the result of unfinished R&D.

Conveyor belt model with UV test texture.

April 12th, 2020

Problem: We need to surround this greenhouse with a city, but don't have the resources to model an entire expanse of detailed buildings.

Solution: Take advantage of the nighttime lighting and cast the city in silhouette.

Dimly-lit view of a city from inside a greenhosue.

A better look at the city. This is before Zach figured out that the fog color should match the skybox color.

Clear look at a low-detail city from above a greenhouse.

The city model within Blender. The origin of the scene is where our lovely greenhouse is located.

City model within Blender.

Problem: Casting the city in Unity fog affects visibility within the playspace.

Solution: Bake the fog directly into the skybox model texture, using Blender's top-down perspective view (not orthographic view) to snag a decent UV map projection.

Top-down view of a city model within Blender

Problem: Color banding is too prominent within the skybox model texture.

Solution: Disable texture compression on that particular model.

We use an altered shader for the skybox model material, one that doesn't render fog on top. This way, we can use Unity fog within the playspace without worrying about its effects on the skybox.

Better-looking city with proper fog.

Here's our second stab at volumetric lighting for lamps. This uses an open-source package called LightShafts. Unfortunately, with VR rendering in mind, this solution isn't performant enough, also it flickers from head movement quite a bit.

Our first choice for volumetric lights would only render in our headset's left eye, which was quite wonky to experience.

Dense volumetric lamp lights. Tiny volumetric lamp lights. An array of different volumetric lamp lights in a greenhouse.

April 10th, 2020

Problem: The default game logo doesn't fit our 70s aesthetic, which means we can't include it within the environment.

Solution: Jennie put together this phenomenal alternatve version of the logo!

Full Bloom Inc. seventies logo.

April 9th, 2020

Problem: How to model realistic dangling cables?

Solution: Bevel a cable path using a circular path. Blender is nothing but intuitive.

Here's the untextured drums, a very important model to get right. Design is based off of standard drum kits, with flowerpots placed in proximity to facilitate trills.

The model is made up of a bunch of separate meshes, to be exported indivudually.

Flowerpot drum model with little texturing.

Problem: What if we want to change the flowerpot colors later on?

Solution: Use texturing tinting, which is available in both Blender and Unity.

Textured flowerpot drum model.

April 7th, 2020

A joyous day, the lamp is textured. Zach is becoming quite the fan of brushed metal.

Textured lamp model.

April 6th, 2020

A flowerbed model, with the dirt texture looking oddly wet. Thank heavens Unity's got in-editor sliders for metallic/normal strength!

Flowerbed model.

A lamp model with UV test texture.

Early lamp model.

Problem: How to convey transitions between flat and curved surfaced without using excess tris?

Solution: Extensive use of Blender's Mark Sharp tool.

March 30th, 2020

Denser greenhouse framework implemented. Quite the modelling hassle.

Exterior of a greenhouse with dense framework.

The density of the greenhouse framework leads to pretty shadows that guide the player's eye towards machinery.

Interior of a greenhouse with dense shadows cast.

March 29th, 2020

Here's a failed attempt to implement custom hand models. Without proper bone weights, the result is quite stretched! We scrapped this approach and opted instead to retexture the included SteamVR gloves.

Stretched hand model laying on the ground.

Implemented the initial greenhouse framework. This model is based off a .fbx import of the tileable greenhouse panels used for blocking out the space.

Greenhouse with bare-bones panel framework.

March 13th, 2020

In this video, a controller runs out of battery unexpectedly. This causes its associated hand model (along with the in-hand flowerpot) to teleport below the surface of the floor...

Buffoonery aside, this clip is a VR phyhsics demonstration that serves as a milestone in the development of Full Bloom.