How to make my icosphere inflate in a heart shape?

I am trying to create a soft body/ cloth simulation where the eyeballs inflate and pop out of the eye socket and form into a heart shape.

I tried quite some different approaches now but none worked out so far.

At first I shaped a heart from a cube and subdivided the faces so it would create a smooth mesh which I added soft body physics to. Then I applied a force field but the effect would not create a realistic round eyeball in the first frames like in this tutorial: How to create a soft body in blender 2.8

Next I tried to use cloth physics to let the heart shaped cube inflate itself but the shape got lost in the process.

Then I tried this tutorial: Make ANYTHING Inflated | Blender3D Tutorial

I separated the edges of the initial heart form:

I snapped it to the icosphere's surface, beveled and shrink-wrapped it to the surface of the icosphere:

As this did not work at all I took the knife tool and splitted the faces by hand. Then I beveled the edges and assigned a vertex group to it like in the tutorial above:

This was the best result so far but the inflation happens less on the heart shaped part:

Is there anyone that tried this before or has an idea how to create the desired result? Please let me know if you need further information or screenshots/ .blend file. Really hoping on somebody's expertise as I am quite a beginner with blender.

• Hello do you have 2 pictures of the before and after of the effect you want? Commented Mar 20 at 7:23
• +1 moonboots :) ... I see I misunderstood your Q, so my A seems to be wrong ... mockup of desired result is appreciated. Commented Mar 20 at 12:01
• Usually you'll want to ask yourself "what is this geometry supposed to do?", and then imagine a topology that works best for enabling that. Whether it's morphing, armature-driven deformation, physics, or just being a still mesh. Then, think of how to achieve that shape without a higher poly count than is necessary. Commented Mar 21 at 8:17

This approach works backwards.. starts with a heart model, and normalizes it to a sphere. This could be done with a Cast modifier, Shape-Keys..but if you roll-your-own with Geometry nodes, you perhaps leave yourself with more options, including some not shown here.. other ways of changing eye-shape.. blinking, etc.

Heart-Eye GN:

Example animation:

I really depend on your final animation goal ...

... here just an Icosphere (16/8) with two shape keys. Create a Basis Key and Key1 and in edit mode select midlle loop, move it down and do other small adjustments to reshape sphere into a heart.

Animate Value of shape key of Key1 ...

Create this shape:

Give it a Cloth simulation, disable Gravity and enable Pressure (here -6):

Apply the Cloth modifier, give 2 shapekeys to your object, select the second shapekey, turn it to sphere with AltShiftS:

Move the second shapekey to top, keyframe the value of this second shapekey in order to create this kind of animation:

• Indeed, the first answer to actually match: 'soft body' Commented Mar 20 at 18:19
• It's just variation around the shapekey solution ;) Commented Mar 20 at 18:23

Forget about turning the sphere into a heart. Why? Because unless you use infinite vertices, you need to care a little bit about topology, and spheres are topologically simple while hearts are topologically complex. Turn the heart into a sphere instead.

1. Make a heart. Give it some combination of good topo and high vertex density. More of one or more of the other, whatever you feel like.

1. Duplicate the heart. Give it a cast modifier (cast to sphere, defaults) on factor 1.0. Tune the shape of the heart so that your topo doesn't give you an ugly sphere.

1. Convert both to mesh. Join the sphere to the heart as a shape. Or, vice versa.