Name: The Forest Comes Alive At Night

(Alternative Name: Treequencer)

Description: Treequencer is a barren forest at first, but the player has the freedom to cultivate a small little habitat of their own using combinations of four different objects – trees, rocks, birds, and turtles – and make the forest come to life. Each object makes the forest “sing” in different ways and different locations correspond to various pitches. The sun and the moon are placed opposite of each other and rotate around the little forest. When night falls, the forest animals and trees party under the sheath of darkness. But when day breaks, they rest and eagerly await night to fall again.

Instructions: Press 1, 2, 3, or 4 to switch to tree, rock, turtle, or bird mode, respectively. You only have to press these numbers when you want to switch modes. Click the left mouse button to place down the object. Click the right mouse button to delete the object. Use the WASD keys to adjust your camera view.

Video:

Screenshots:




Production Build (Windows): Download

Files: Google Drive Link

Additional Thoughts: I came upon the idea of building a customizable-forest-sequencer while I was sitting inside the Windhover Contemplative Center on campus to meditate. At Windhover, there’s a constant sound of running water; but besides that, it is so utterly silent inside that I can clearly hear even the slightest sounds from outside. I was doing a sitting meditation with my eyes open and I watched two squirrels bickering and chasing each other outside in a tree. I could hear the rustle of the leaves and the chattering of the squirrels, and in the back of my mind, I remember thinking of building a nature soundscape for a personal future audio project. Later on, I took that idea into the sequencer assignment for this class and decided to build something inspired by elements of nature.

I struggled most with how to evolve and advance the project. After the first milestone, I wasn’t too sure where to go next – my sequencer had basic functionality, but it was boring. Then Professor Wang gave me a great “bad idea” of a forest rave. I worked on getting the day/night rotation, the backing EDM-like chord track in ChucK, creating the party animations, and communicating values between ChucK and Unity, and between several C# scripts. One thing I did that I appreciated was that I isolated chunks of code and tested frequently to weed out the multitude of bugs that inevitably emerged in my code. There were a lot of moving parts that I had difficulty keeping track of, but I would mark the spots that needed work and document fleeting ideas that came up by either writing them down or commenting them directly into my code as “TODO” items.

A particularly memorable moment was when I was trying to figure out how to create animations. I was watching a lot of YouTube tutorials and stressing over how complicated I thought it would be. It was actually pretty simple, and when I first got my turtle model to do a little hop, it was so cute and so comically satisfying that I slid out of my chair and laid on the ground in a puddle of happiness. My roommate looked over in concern, but I didn’t care.

I still do think my sequencer is a bit plain, and I wish I thought of incorporating some more exciting elements. I thought of turning it into an underwater forest and have fish swirling around it, but I unfortunately did not have the time. I have learned a lot though – I feel myself getting more comfortable with Unity and ChucK, and more willing to try wacky things. I’m looking forward to future projects!

Acknowledgements: Thanks Professor Wang for the forest rave idea! I used Acorn Bringer’s Simplistic Low Poly Nature asset for the animal and nature models. I used the first section of Aaron Hibberd’s “Unity 5 Tutorial – Day/Night Cycle” to figure out how to rotate directional two light sources around my forest. I also referenced code written by @gunderson on GitHub for controlling camera movement with keyboard inputs. The sound samples for the different forest objects were the free sound loops that came with Apple’s Logic Pro software.

----------------------------------------------------------------

Milestone 2

The core mechanic of this sequencer is for the user to be able to build their own forest by placing down trees, rocks, turtles, and birds on a grid of grass. A bird flies overhead and serves as the playhead for the sequencer. I had trouble with linking together ChucK and Unity, but I have some preliminary samples loaded in for the milestone. I wanted to be able to create a more nature-like audioscape, so I didn't want to use traditional instrument sounds.

Pre-Milestone 2

Research

Notes

Examples

More Links

Chickencer Tutorial

The tutorial helped me understand a bit better how to communicate between Unity and ChucK – using global variables and accessing them through things like FloatSyncer and IntSyncer, using state changes that are watched by both programs to trigger events, etc. I think my main takeaway is to be especially deliberate, careful, and meticulous in my planning stage before I start coding anything. I will need to draw out exactly what state changes will be accessed and manipulated by Unity and/or ChucK, and understand these dependencies clearly. I will need to be sure of what values are communicated between the two programs, in which program to manipulate these values, and link them up to their corresponding triggered events.

Design Sketches