Janky Engine for Lighting & Lattice Oscillation (JELLO)

(CS184 Summer 2025 Final Project Proposal)

Walter Cheng, Crystal Cheng, Isaiah Tapia, Nandini Velinedi

Looking at the PDF? See the full webpage here: https://cs184.snoopboopsnoop.com/final-project

Image sources, from left to right: Adam Ragusea (YouTube), Jay (Cookbook Community), Cloudy with a Chance of Meatballs (Sony Pictures Animation)

Gelatine desserts are desserts made with a sweetened and flavoured processed collagen product (gelatine), which makes the dessert "set" from a liquid to a soft elastic solid gel. In the United States and Canada, this dessert is known by the genericised trademark "jello". (Wikipedia)

Summary

To implement and expand upon the topics discussed in this course, we've decided to implement a jello simulation engine based on OpenGL. The physical qualities of jello allow us to tackle mesh representation, simulation/animation, and ray tracing/subsurface scattering. We believe the CS184 framework of Homework 4 will be a good jumping off point for development.

The Problem

In the world of rendering, soft body simulations are essential to understanding the physical behavior of materials such as deformable bodies. Although there have been advancements in computer fluid simulations, we still experience challenges in nonlinear deformations and how jelly would interact with external forces.

Additionally, real-time subsurface scattering is an important subject of current lighting research. Current methods of implementation are approximations of subsurface scattering, and we hope to explore the problems that arise around full real-time surface scattering rendering and possible solutions.

Goals and Deliverables

Questions To Answer
chat
Thanks, Chat!

What We Plan To Deliver

At its core, out goal for this project is to build a custom physics/graphics engine capable of simulating a jello system. The engine should be capable of modeling softbody deformation and rendering a scene using a custom shader that implements subsurface scattering and general path tracing. At a minimum, we aim to render a simulation of a piece of jello given certain initial conditions, exported as a video file.

What We Hope To Deliver

On top of the base engine, we hope to be able to implement a custom spring cage generation algorithm to allow for custom jello models, as well as real-time ray tracing in order to make the simulation interactive. At its extreme, we hope to also model destruction physics, letting us break the jello model into pieces.

Success/Performance Measures

Qualitatively, a measure of our engine is whether or not it looks realistic. Does the jello respond to collison how you think it would? (Assuming it is indestructible, of course) Does oscillating the surface under the jello cause shear motion? Does it even look like jello?

On a more technical side, we can measure performance when implementing something like subsurface scattering approximations based on whether or not it can render real-time. If time permits, we can also implement different types of approximation and compare the speedups/drawbacks.

Our Timeline

Week 1 (July 27 - August 2)
Monday (July 28) Establish engine/framework, import test (jello) model
  • Build custom engine based off of the HW 4 one, implement model loading (see Resouces)
Tuesday & Wednesday
(July 29 - 30)
Mesh team:
  • Develop and apply deformation spring cage (Ref. HW 4, Part 1)
  • Can make cage by hand, if able to should automate a cage-creator based on model
Lighting team:
  • Set up basic lighting (Ref. HW 3 and HW 4, Part 5)
  • Can make cage by hand, if able to should automate a cage-creator based on model
Thursday & Friday
(July 31 - Aug 1)
Mesh team:
  • Implement real-time simulation and model forces on spring cage
Lighting team:
  • Begin jello material modeling, construct simulation scene (table, plate, background)
Week 2 (August 3 - August 8)
Monday & Tuesday
(Aug 4 - 5)
Mesh team:
  • Continue implementing/improving the physics engine
Lighting team:
  • Begin subsurface scattering implementation for custom shader
Wednesday
(Aug 6)
Try using different models for jello (cube, sphere, frog, etc)

More subsurface scattering development
Thursday
(Aug 7)
Add interactivity with moving plate
Friday
(Aug 8)
Finalize project, polish, any other features we want
Weekend Before Week 3 (August 9 - 12)
Sat
(Aug 9)
Polish write-up, begin slides
Sun
(Aug 10)
Finalize presentation
Monday & Tuesday
(Aug 11-12)
Flex days (meet to practice presentation)

Resources