Islanding NYC
3D Animation
A visualization of New York sinking beneath water, created in response to the Lower Manhattan Coastal Resiliency Project and growing flood risk. Using Blender, I built the water simulation and a custom shader with animated caustics that recreate light movement through water. The final 90-second animation was rendered and composited in After Effects for an event hosted by the Mellon Foundation.
NYC is at Risk
In 2012, Hurricane Sandy flooded 17% of New York City's land. The City's projections say that without action, sea level rise will regularly flood parts of Lower Manhattan within this generation. By 2100 almost half of its buildings will face storm surge risk. Close to a million people work, live, or commute through the Financial District, and the infrastructure that serves the whole region depends on them.
My animation imagines that risk left unchecked. It is exaggerated on purpose, because a flooded skyline gets attention that a statistic rarely does. I made it as a call to action, so people look at the real numbers and ask what happens if the city waits.
Building a Shader
This was my first project in Blender, and building an animated shader was its most challenging part. To get full control over my water animation, I worked as a director of photography, animator, researcher, and engineer. I wanted full control over the speed of the light in relation to the water. This meant syncing two animations that moved at different speeds.
Light travels slowly through water, so I ran the light shader at 48 frames per second, which was double the 24 frames per second of the water. The caustics became the standout of the project, because they make the water realistic enough for people to imagine swimming through Manhattan. A plane near the top of the water cube served as an interior light source, and a dark plane at the bottom gave the light something to land on, which made me think carefully about materials.
The Cone Test
Before committing to the city, I prototyped the lighting on a cone. Its curved surface reflects light more dynamically than a flat plane. This made it a stronger test of how the caustics respond to form. Next I raised the water around the cone and watched how the light changed with depth.
I was limited to only one object in the scene because animations take a long time to render in Blender. During that test I lowered my render samples, used denoising, and baked the fluid simulation. Once the cone had done its job and my renders were fast enough, the buildings went in.
Faking Fluid
Understanding the physics of how water behaves was essential to my editing. In Blender the fluid simulation lives inside a domain, and mine was a cube with hard edges, so I planned the camera and cuts between underwater and above-water views to hide the cube’s edges. The water rose along a single path to appear organic.
This is where I worked most like a director, since I was manipulating cameras. The camera followed Bezier circle paths, and in the opening scene that movement makes the static clouds appear to drift. In After Effects I composited the scenes and built a lens flare from scratch to carry the transitions, tuning its timing and illusion.
Reflection
Ten years ago, Blender was unapproachable to me as a graphic designer. I could animate by hand and even work in stop motion, but a custom light shader was out of reach. That gap is a big reason I returned to study computer science.
The node view of my shader shows why it paid off. Two Wave Textures each feed a Color Ramp, a Screen node blends them, and an Emission node sends the result out as light. It works like an entity relationship diagram, with nodes as the entities and the connections as the relationships. That logic holds across every program, and software engineering did not replace my creative side. It gave it more advanced tools.
