Ghost Bunny Photobooth
By Liyourong WangGhost Bunny Photobooth is a stylistic, physically simulated animation featuring a textured soft-body rabbit inspired by the iconic “York ghosts” from York, England. The rabbit character is animated to repeatedly hop in the scene using the mass-spring system while maintaining physically realistic and deformation.
The project extends the CSC317 A8 Mass-Spring Systems assignment by integrating:
- The Mesh / Shader Pipeline lab’s texture loading system
- A character-like breathing animation
- A cinematic photobooth-style flash effect, triggered interactively using Key “D”
The final rendered “Piece” is an animation showing the ghost bunny breathing while occasional bright flashes illuminate the scene like a camera photobooth capturing snapshots.
Features Added
1. Textured Ghost Bunny Mesh
Loaded bunny model from translated bunny.stl file in ray-tracing assignment [1], and applied a ghost-like texture [2] inspired by York ghost figures.
Integrated the UV + texture loading logic from the Meshes/Shader pipeline labs.
Implemented in
main.cppvia:if (VT.rows() == 0 || FT.rows() == 0) { VT.resize(V.rows(), 2); ... }Produces a stylized “ghost bunny” visual appearance.
2. breathing Animation for the Rabbit
- Added periodic upward impulses or sinusoidal modifications to
fextto make the rabbit hop without excess deformation utilizing a mass-spring architecture, animating the real breathing effect on read bunny bones & muscle. - Implemented inside the
fast_mass_springs_step_densefunction, and inmain.cpp, alongside gravity and wind. - Creates a rhythmic hopping motion while still obeying spring physics, making the rabbit’s body movement naturally as it breaths.
3. Photobooth Flash Effect (D / d)
Created a camera flash effect: a rapid brightening followed by a quick decay.
Implemented in
viewer.callback_key_pressedinmain.cpp:case 'D': case 'd': // Increase lighting_factor intensely for a brief flash break;Uses
viewer.core().lighting_factorto control brightnessMimics real photobooth flash timing — perfect for the ghost bunny aesthetic.
Efforts
The project combines:
- The texture design borrowed the inspiration from York Ghost [3]
- Character animation using mass-spring physics
- Interactive cinematic effects (photobooth flash)
The aesthetic goal is a ghostly rabbit being “photographed” mid-breath.
Acknowledgements
Assignment Starter Code
Provided by CSC317 course staff.Shader & Texture Pipeline Inspiration
Adapted from the CSC317 Meshes and Shader Pipeline Labs.Models / Textures Reference
- [1] Ray Tracing Assignment’s bunny.stl through https://imagetostl.com/convert/file/stl/to/obj
- [2] https://www.pngmart.com/image/24778 Pink Splash Paint texture
- [3] Style of York Ghost https://www.yorkghostmerchants.com/ghost-archive