Milestone

Alyssa Lau, Jessica Plotkin, Jonathan Liu, and Zoe Zhang



Project Goal

Our main project goal remains the same: to implement a shader in Shadertoy to simulate the movement and interactions between the wax blobs in a lava lamp.


Accomplishments

So far we’ve made good progress on our week to week goals. We’ve learned how to use Shadertoy by going through a few tutorials and experimenting with various programs we found online. Using what we learned from the tutorials and other online resources, we made a basic wax simulator that employs a system of metaballs to represent the wax blobs. We also made a simple container for the lava lamp, complete with a wax pool that interacts with the wax blobs. Our program is able to simulate the sinking, floating, and merging of the blobs. In order to mimic the velocity changes of the blobs due to temperature, our program makes the movement speed of the blobs proportional to their distance from the bottom of the lava lamp.


Preliminary Results

- Shadertoy Simulation
- Milestone Video
- Milestone Slides

Reflection on Progress Relative to Original Plan

As listed in the accomplishments above, we have made progress towards our goal of simulating a 2D lava lamp. In our original project proposal, we planned to use Navier Stokes in our simulation. After extensive research on this method and its visual effects, we felt it would not improve our simulation. Instead, we have decided to shift our focus towards implementing separate features that will make our simulation more physically realistic, including more realistic blob shape, movement, coloring, shading, and collisions. We also aim to implement volume changes and a temperature gradient that affects blob velocity and volume. If we have time, we will attempt to implement the intersections and collisions between the wax blobs and foreign objects placed inside the lava lamp tank.


Updated Work Plan

By end of Week 3 (April 27th):
Add temperature gradient and volume change due to temperature. Make wax balls look more like blobs. Add new color effects and shading.

By end of Week 4 (May 4th):
Add finishing touches to the project and try implementing collisions between blobs and obstacles within the tank. Create the website and make the videos.