Year: 2022
Role: Designer and Motion Designer
Time: 7 weeks
A Branding piece for North Carolina’s Sea Island Shore Bird Festival.


If you were alive in the year 1970, more than one in four birds in the U.S. and Canada has disappeared within your lifetime. In only 50 years this comes to a decline of over 2.9 billion breeding adult birds in the US and Canada.

Shorebirds, particularly ones that nest in the Arctic, have experienced a harsher decline due to climate change and human interference. 70% of all shorebirds across North America have perished in only 50 years.


Last year, I had the privilege of meeting with the Georgia Dept. of Natural Resources. and working with a group of biologists whose mission is to protect these Atlantic shorebirds.

Georgia Dept. of Natural Resources graciously allowed me to accompany them for a day of fieldwork, where we placed nanotags, digitally-encoded very small radio transmitters, on red knot shorebirds to track their migration routes across the hemisphere. 


This year the South Carolina Department of Natural Resources contacted me to create a piece for their Sea Islands Shorebird festival—a two-day event to educate on the issues surrounding the shorebird population decline.

I pitched them the idea of doing a piece on migration. On this beautiful journey these shorebirds make from Arctic nesting sites to wintering sites in the tropics. I piece that could maybe inspire others to think deeply about our relationship with the natural world and the actions we can take to protect it.

Style Frames

Created in Adobe Illustrator and Cinema 4D in a 2 week time frame.

3D and AF Compositing

Composition created in Cinema4D, textures mapped using Cineware in After Effects.

Charecter Rigging

I created 2 seperate rigs through joysticks and sliders.
Then created 8 diffrent movments for the charecters. 


With the help of Desmond Du I created two expressions to randomize the location of sprites and randomize the start time. 

Based on their location on the Z - axis, I parented the sprites to seperate nulls using a “drift” expression on the nulls. 

Randomize start time of loop

myDelay = random(0,source.duration);
time + myDelay;

Randomize Placement of object xyz

seed = 20; min = [25,25,-1900];
max = [thisComp.width,thisComp.height,50]




vel = 50
drift = time * vel
value + drift