Most (if not all) modern game engines are capable of only simulating rigid body dynamics (left). However their counterpart, soft bodies (right) are not a feature available to developers out of the box or without the need to tinker and create custom solutions to solve for them in real-time rendering applications such as games and interactive media.
It is for this reason that we decided to build Jelly Engine.
Soft bodies are all around us in the physical world. Ubiquitous materials such as human skin, rubber balls or even jelly behave in complex ways, which are typically hard to simulate and even more so at runtime while maintaining good performance in current hardware. Applications of this technology could be, but are not limited to:
- Medicine: Training environments for surgery practicioners with high fidelity models of human organs and anatomy.
- Engineering: Simulation and analysis of deformable materials like polymers and lattice structures.
- Interactive applications: New game design mechanics involving deformable 3D objects.
- Install CMake.
- Add CMake to
PATH. - Run build.bat to build the engine with the toybox demo game.
- If the demo builds successfully, an
outfolder in the root folder will be generated. Go toout/Game/game.exeand run the demo!
- Install CMake.
- Add CMake to
PATH. - Write your own game code in Game/src/game.cpp and Game/src/game.h.
- Use the toybox demo provided as a template, delete the contents of its functions.
- You can write your code using the
Start(),Update(), andExit()functions. - We recommend using the toybox demo provided to see how to work with a
light, thescenevector, the 3DModelclass, and theSoftBodyclass.
- Run build.bat to build the engine with your specific game.
- If your C++ code compiles and links, an
outfolder in the root folder will be generated. Go toout/Game/game.exeand run your game!
- Install CMake.
- Add CMake to
PATH. - Modify the engine as needed.
- Run the engine's build.bat file to build the engine as a static library.
- If your C++ code compiles and links, an
outfolder in the root folder will be generated. Go toout/Engineand you should see the fileJellyEngine.lib. You can now link this library with any C++ application.
- Rafael Padilla Perez: C++ Code, game engine architecture, design and implementation.
- Joshua Ebreo: Spring mass model research and testing repository.
This project could not have been accomplished without the support and guidance of our project advisor, Professor Kevin Smith, the counsel from Spartak Gevorgyan, and the encouragement and support from our family, friends, and peers in the Software Engineering Program at San Jose State University.





