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)
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.
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.
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.
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.
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.
| Week 1 (July 27 - August 2) | |
|---|---|
| Monday (July 28) |
Establish engine/framework, import test (jello) model
|
| Tuesday & Wednesday (July 29 - 30) |
Mesh team:
|
| Thursday & Friday (July 31 - Aug 1) |
Mesh team:
|
| Week 2 (August 3 - August 8) | |
|---|---|
| Monday & Tuesday (Aug 4 - 5) |
Mesh team:
|
| 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) |