\(\DeclareMathOperator*{\argmax}{arg\,max}\) \(\DeclareMathOperator*{\argmin}{arg\,min}\) Orfeas | Elastic Shape Optimisation

Elastic Shape Optimisation


An overview of the second project for the 2024 edition of CS-457 Geometric Computing at EPFL. Project was completed in collaboration with Shivang Sachar and Athanasios Charisoudis.

Introduction


We're in a garage, pouring hot rubber into a dinosaur mould. After cooling, we crack open the mould and a rubber dinosaur springs out. It flops and squishes under gravity, and doesn't look much like the original dinosaur.

dinosaur

Problem statement


How should we design a mould, such that the deformed dinosaur matches the original model?

Part 1 - Modelling elastic deformation


1.1 Shape and deformation

We need to figure out what the rubber dinosaur will look like under gravity. That is, given a tetrahedral mesh description of the dinosaur, we need to design a computer programme that will return an updated mesh reflecting a settled state.

Let's call the dinosaur \(\Omega\subset \mathbb{R}^3\). There are two contending forces at play. On one hand, gravity will pull the dinosaur downwards causing a deformation \(\Phi:\mathbb{R}^3\rightarrow\mathbb{R}^3\). On the other hand, the internal elastic forces will pull the shape back up.

Since we do not need to simulate the entire deformation process, an energy description of the dinosaur is practical. When the rubber is released from the mould it has a gravitational potential energy density, and as the shape deforms it builds up elastic potential energy density. The gravitational and elastic potential energies cumulate in a total energy density.

To compute the static equilibrium state of the dinosaur, we perform conjugate gradient descent on its total energy by updating its tetrahedral mesh.

1.2

We imagine that the material is hyperelastic and has homogeneous mass density. It can't permanently deform, and when there is no deformation there are no elastic forces.


Last edited 29/12/2024