Mass-Spring-Charge Systems

Jun 1, 2024 min read

About the Project

This is the project I have been involved in as part of my Master’s thesis. The purpose of this project was to extend the Mass-Spring system, often used in the simulation of soft bodies, to include static charge interactions. Moreover, we wanted to showcase the potential of this system in computer graphics and animation. As such the Mass-Spring-Charge system has been built with the intention of publishing it at SIGGRAPH 2025.

The full paper is available here: Read on arXiv

The two major components of this project I have been involved in are:

  • Development of a fast and efficient algorithm for calculating charge interactions: a novel approach called Domain Discretizes Electric Field (DDEF) that is able to outperform industry standards like Particle Mesh Ewald (PME) in terms of speed and accuracy. More information on this can be found in the paper.
  • Development of tooling for artistic control: A set of tools aimed at providing artists the ability to control the simulation in an intuitive way. This includes a custom GUY, keyframing, and a set of artistic controls that allow for easy manipulation of the simulation parameters.

The project has been developed primarily in Python, with the algorithm for charge interactions implemented in C++ for performance reasons. The GUI has been built using Polyscope.

The system can be closely integrated with Blender: 3D models made in Blender can be imported and processed, and the simulation can be exported back to Blender for rendering and furrther post-processing.

Some example results of the system can be seen below.

Screenshots & GIFs

Octopus Jellyfish 0
Octopus Jellyfish 1
Octopus Jellyfish 2
Octopus Jellyfish 3
Octopus Jellyfish 4
Elevator
Valve
Pipe
Shelf
Furnace