gather - audiovisual flocking sequencer

gather is a flocking audiovisual sequencer. Players use the mouse to guide a playhead flock through flocks of instruments. As the playheads collide with the instruments, sounds are triggered.


This sequencer uses the boids algorithm to create flocks of interacting playheads and instruments. The idea is that you control a flock of playheads with your mouse and share a space with two instrument flocks. As the playhead boids intersect with the instrument boids the sounds are triggered. This iteration of it has two different instrument flocks as well some background soundscapes.

Usage Instructions

Controls are simple: use the mouse to direct where the playhead flock should move. Increase/decrease the playhead flock size by pressing the up/down arrow keys. Increase flock separation (how much space the boids try to keep from each other) by pressing the right arrow key, decrease flock separation by pressing the left key.

Project Links

Build link. This is for 64-bit Windows.

Project Link


Thanks to Aaron and Angela for the productive work seshes.

Big thanks to Jur Van Oerle for his awesome Flocking Tools asset and Clint Hoagland for his sweet PWM soundscape thing.

MiLeStone 2

Here is a basic, working example of my core interaction loop - a flock of playheads intersects with a flock of instruments and triggers the instruments.

It's very rough at the moment, but these flocks can be *kind of* controlled with the mouse. This apparently is a much more sophisticated process than just getting the mouse position so it needs a lot of tweaking, but that is the core means of interaction.

Some stuff that is next on my agenda is having some sort of visual indicator of where the interaction happened, modify the instrument params based on where they are in space, have multiple instruments have different sounds and flocking behaviors, have different shapes for the different flocks, and have some sort of soundscape that fills in the holes in the sound.



Idea 1: A boid sequencer with multiple flocks!

Ideas 2&3: Cats following a laser pointer and 4d time traveling hypercube cellular automata sequencer.

Sequencer research

I found a 256a sequencer project from a previous year that utilized the boids algorithm. This pointed to the Flocking Tools assets, which will be a nice starting point.

One sequencer I've been really impressed with is the Orca sequencer. To quote the website, it's "a two-dimensional esoteric programming language in which every letter of the alphabet is an operator, where lowercase letters operate on bang, uppercase letters operate each frame." It's a really robust tool that also makes the live coding aspect of live coding visually really compelling.

Chickenser Tutorial

The tutorial was about what I expected. It will be nice to have some example code to know how to set up the chuck<-->unity cross talk though.