# Can I make 3D spheres to deform/pulse in sync with audio?

How can I make a sphere-like object pulsate with the beat of a song? Is this possible to do in Blender, or do I need to get Adobe After Effects?

Here is an example of what I mean: https://www.youtube.com/channel/UC_aEa8K-EOJ3D6gOs7HcyNg

• Yes, most certainly! I've made my own take on the effect, and I'll render it overnight to test it out (just for clarity, you are referring to a sphere as in this video, correct?). Hopefully I'll be able to write up a proper answer tomorrow
– gandalf3
Mar 16 '16 at 9:38
• Thanks! Is it possible to make it similarly transparent like in the video? Mar 16 '16 at 18:23

I had so much fun re-creating this effect that I ended up doing it twice. You can see the final results (with sound) here.

Unfortunately a step-by-step guide to creating exactly what I made would be a bit long for an answer, so instead I'll summarize the process, with lots of links to other more specific answers.

The basic idea is this:

1. Create an empty (⇧ ShiftA> Empty) and keyframe an arbitrary transform channel (I) (using an empty's transform makes setting up drivers a little quicker later on)

2. Use Graph editor > Bake Sound to Fcurve.
If you want to get fancy you can bake several empties (or several transform channels) with different frequency ranges (for example, if you want to change the scale with the amplitude of bass sounds while changing the color with higher pitched sounds)

3. Use drivers to control whatever settings you want (object scale, subdivision levels, or even cycles materials) based on the empty's baked transform channel.

The reason for baking to an intermediate empty rather than directly to the property you want to animate is solely for ease of tweaking. With a driver you can e.g. use an expression to adjust the amplitude later on, or use multiple drivers to drive multiple properties off of a single empty.

With that in mind, I used a cube with some modifiers to create the sphere:

1. Subsurf To add more geometry to the cube
2. Cast To make the subsurfed cube spherical (note the Factor is set to 1)
3. Displace To produce the actual distortions. The texture used for this modifier is on the top right. The empty used for the texture's coordinate space has a random rotation animation generated with a noise fcurve modifier.
4. Cast (again) To flatten the displacements back towards a sphere a bit, but not all the way. Note the Factor on this one is < 1
5. Smooth Just to smooth out annoying wrinkles

Other points of interest in this screenshot:

1. The material used for the main sphere
2. The material used for the duplispheres (small dots)
3. The driver expression used to drive the displacement modifier strength (the referenced empty's Y location is driven by a sound-baked fcurve). To add a little "pep", the raw value is multiplied by 5 (totally arbitrary choice on my part) then taken to the second power. min() provides a quick way to limit the maximum value the driver will produce; e.g. min(somenumber, 1) can only ever return numbers < 1.

To create the dots I duplicated this cube and used dupliverts to render the second cube's vertices as icospheres, and added a driver to the subdivision level on the subsurf modifier.

• To do the rotating and scaling close to yours, do I make bake it with each rotation and scale? (Sorry, I have not done baking before) Mar 18 '16 at 1:12
• Could you record a tutorial? Mar 18 '16 at 18:07

This is super easy & Fun:

1. in the 3D viewport Add >> Mesh >> Sphere.
2. With the Sphere selected hit I >> Scale.
3. Split your 3D view and in the next view goto the Graph Editor.
4. on the menu bar: Key >> Bake Sound to F-Curves.
5. Browse to your song.
6. Select it, and click "Bake Song to F-Curves".
7. Hit play on the timeline and watch your sphere bump.
• Cool! Can you do other things also, like spin or use sculpt mode to make spikes appear? Mar 16 '16 at 18:25
• Yes you can do a lot, especially with drivers. I'm not quite sure about sculpt mode, but definitely with displacement modifiers, shapekeys, etc... (e.g. just about anything with a slider value). Mar 16 '16 at 18:58