FINAL MAJOR PROJECT | Apple Air-pods Gen 3

Music has been with me my whole life. When I was younger, my mother, my sister, and I used to sing out loud old Italian songs while driving to Tuscany, and in those moments, I realized how big the power of Music was.

It has become something deeper in my teenage years, like saving me from my dark days and living the best out of the good ones. And it still does.

Music has allowed me to meet new people, artists, and sources of inspiration. The Air pods Gen 3 ad is a tribute to my best friend. Thank you, Music. You always make it better.

Pod Modeling

The Pod modeling was the easiest part of the project. It created a simple cylinder mesh and extruded its upper face, following the reference images added on the four views.

Hint* always create a simple mesh; the fewer polys, the better. This allows you to modify the mesh quickly and easily.

Once the shape matched the Side x view photo, I moved each edge to match the shape with the other views.

The critical part of the modeling was ensuring that the extruded cylinder’s top face would match the pod’s speaker. Once done, I extruded the faces and focused on the pod’s details.

After smoothing the mesh, I could not circularize the pod’s faces for the back speakers, so I started from scratch:

Using a disk shape, I detached it in half, moved half as far as the speaker it needed to be, merged the two halves back together, and bridged the edges. Then I extruded the form and added a vertical and a horizontal bend.

Once the shapes were ready, I started cutting and unfolding each mesh that composed the pod.

Firstly, I used a camera-based UV to see the shape from where I wanted. Then, based on the selected mesh, I unfolded each part with the help of planar mapping and the cut and unfold UV tool.

I wanted my project to look as realistic and clean as possible. So, as we all know that Photoshop creates raster graphics using pixels; I decided to use Illustrator for the details, as it establishes vectors.

The first geometry done in Illustrator was a grid. An easy shortcut that would have allowed me to recreate the speaker texture once it was put as a Bump file in the Geometry Bump Mapping.

The exact process was applied to the color file of the Pod texture.

After I spoke to Nick Savy about the project, he suggested downloading a scratch texture from the internet and adding some realism to the pods. So, once the surface was found, I adjusted it as much as I fancied on Photoshop, and when finally the file was ready, I added a bump map to the pods’ bodies.


After several attempts, I finally found a way to build the case.

I started with a primitive cube which I scaled to match the reference photos in the four views. Then I applied a Bevel tool to it.

Once the shape was done, I improved its form by adding a vertical and horizontal edge loop and deleted what I did not need. Then I moved the polys a bit further from the center to match the image on the top view and mirrored what was missing.

When the form of the case was completed, I started with the details.

So, firstly I smoothed the whole mesh, selected the front faces of the charging and pairing light, and finally, circularized and extruded them to make the bits realistic.

The exact process was applied for both the opening and charging details. However, for those parts, as I was also going to break the shape in two to have an upper and lower, I added more vertices to the circularized faces and used the cut tool to match what was missing. This procedure was helpful to not have a huge number of polys.

Once the charging part was correctly cut, I aligned the vertices made from the circularized tool and extruded the faces perfectly.

Still, the same was done for the metal part with rounded corners and the pairing button on the back.

Once I was happy with the details, I needed to divide the shape in two. So I selected the edges I needed, detached them, and finally used the divided tool to get what I was aiming for: the upper and lower case.

Once I selected my lower part, I used the extrude tool to extrude the whole shape. But before ending the task, I added 4 more divisions to the polyextrudedface dialog box to make the borders slightly beveled.

The same procedure was applied to the upper case, ensuring that the two extruded meshes matched.

This was the hardest thing I have faced.

Using a primitive disc, in icosahedron division, I made the Air-pods’ shape inside, where the pods should sit.

Here, I selected the edge that divided the disk into two perfect halves, detached the shape with the help of the detach tool, and finally, divided the whole with the divide tool.

Then, I moved the right half where the case ended and merged the two halves together again with the Combine tool.

Finally, I bridged each edge, and the first step was done.

Afterward, with the insert edge loop tool, I added five edges where they were missing. Then, using the face selection, I deleted half of the new mesh again.

Before starting, I duplicated the pod and scaled it slightly bigger, so they didn’t touch the sides when the pods were within the case.

Afterward, following the selection hierarchy, I first selected the shape made from the disk and then the pasted pod. Then, by pressing CTRL + right click, the Boolean tool appeared, and I chose the exclude voice from its dialog box. Eventually, with the help of the wedge and cut tool, I matched the vertices of the new mesh and created new edges where needed.

Once the shape was clean, I selected the concave faces and extruded them to create a bevel.

Finally, I mirrored the shape and followed the same process for the Lower part of the case.

When the modeling part was concluded, I grouped each piece properly and created a rotation limit for the Upper case’s animation.

Once the model was ready, I applied the same procedure I had done for the pods’ UVs to the case. So, I selected the whole mesh, cut the parts I needed using the cut UV tool, unfolded each selection with the Planar mapping, and optimized all.



The same was done for the upper part of the case inside. However, here I had to recreate the text inside.

So, after the texts and the icons were ready, I grouped the contents as “right” and “left” and distorted each group with the Illustrator Wrap tool.

Then I linked the file to the color mapping attribute box, and here it is:



Once the model was ready, I selected and exported it as an FBX file from Maya. That would have allowed me to not lose the UVs I had done.

After having checked the UVs, I created a new Redshift material and linked it to the files I previously did on Illustrator.

Then, I created the Bubble texture:

I started from a glass preset and added a Fresnel and a Ramp in the node editor.

Once The Fresnel was ready to be used, I linked its out color node to the Ramp’s All input. Then, I adjusted the Ramp’s color interpolation and linked its out-color node to the RS Material color.

Afterward, I used a Redshift Area and Cylinder light for the lightning. The Cylindrical one was useful for getting a pleasant illumination for the bubbles.

Finally, I started animating.

I applied a Cloner tool to an icosahedron-typed sphere and changed the Cloner’s Object Proprieties to Spherical mode and its count and radius.

Then I applied a Random Effector, which helped me randomize the spheres’ size to create a nice visual.

Before running the animation, I applied a Gravity Object to the composition and turned off Cinema 4D’s one.

Then I selected the Cloner and applied an Attractor object to prevent the bubbles from floating around.

Because I also wanted the Bubbles to follow the case shape, I duplicated the case and scaled its Z. Once it was done, I turned off the duplicated case’s viewport visibility. Then I applied Cinema 4D’s Soft Body tag to the bubbles and a Collider Tag to the hidden object.

Eventually, I put a circular spline and a hidden sphere into the composition for the Camera movements:

  • Firstly, I changed the focal length of the camera to a Portrait 80 mm
  • I added an Align to Spline expression tag to the camera to make it follow a circular path
  • I added a target expression tag and dragged it to its target object‘s dialog box, the sphere, so the camera would follow the hidden object.
  • Finally, I animated the camera position and keyframed the case and pod’s viewport visibility where they were needed.

Then, I created a new RS material for the case’s charging light:

Next, I opened the material overall, changed the emission color, and keyframed the emission weight where needed so that the light would turn green to imitate real life when the case opened.

I opened the F-curve tracks to make everything look smoother and adjusted each key frame’s interpolation.



Once the first animation was done, I liked the left pod position. So, I saved the file under another name and deleted what I did not need from the previous animation, breaking all the keyframes and maintaining the gravity to -981.

Then I added a helix spline to the new composition and adjusted its end and start radius’s angles to make it follow the pod’s shape.

Afterward, I added a sphere to the Comp, modified its radius, and applied a cloner tool as its parent.

To make the spheres follow the Helix, I changed the Cloner Object proprieties Mode to Object and dragged the Helix inside the object box.

Then I changed the distribution in Even and the count to 300.

Once this was done, I selected the Cloner Tool and applied a Randomize Effector for the sphere’s scale.

I went back to the Cloner dialog box for the Bubbles animation and increased its rate from 0% to 5%.

Then, I applied a Cinema 4D Rigid body tag to the Cloner and increased its Follow position to 5.

Once the bubbles animation was done, I focused on the camera:

It still had the sphere target used for the first animation, but I did not need a spline this time, so I animated its X position.

I went to the start of the timeline; keyframed the camera position. Then I went to the end of the timeline, moved the camera a bit further, and keyframed its X coordinates again.

Then I opened the camera F curves and adjusted the key frames’ interpolation handles.

Finally, to fill the empty spaces of the Comp, I added a new cloner tool with spheres as children. This time, the Cloner object proprieties were set to Random.



These animations are details made from the previous Comp.

I moved the Camera’s Y position for the first focus and kept its X keyframes. However, I always wanted to create a camera motion blur animation, so I added a Redshift camera tag to the camera and focused the motion blur tag property on the bubbles.

The same adjustment was applied to the second focus as well.



For both animations, I used a Cloner, to which I applied the pods and some random shapes I made last year as children.

I kept the illumination from the other comps, but I applied the honeycomb mode as Cloner Object property and adjusted the count width, height, and size as I preferred.

Then I added a Randomize Effector to the Cloner and modified both position and rotation. The rotation would have allowed me to create a nice animation with the camera movement. So I keyframed X Y Z equal to 0 at the timeline start and 360 at the end.

Once this was done, I also keyframed the Camera’s Z position to make a dolly movement and adjusted the interpolation of each keyframe in the F- Curve box.


Firstly, I applied a Helix spline, a Formula line, a Lathe, and a Spline Wrap to the new Comp.

I selected the Formula Line and changed its X(t) and Y(t) from 100.0*t to 40.0*t and 10.0*Sin and changed its Tmax from 0 to 116.

Then I put the Formula spline as the Spine wrap parent and dragged the Helix inside the Spline wrap’s object propriety.

And modified the Helix’s End radius voice.

Finally, when I was happy with the folding fan shape I was aiming for, I put the composition inside the Lathe Tool and scaled its Scaling voice from 100 to 0.

To create an extrusion of the new mesh, I applied a Cloth Surface as the parent of the Lathe.

Then I imported the shape into the final composition and applied an RS material and a ramp color node to it. Then I animated the camera with the same dolly movement.

As I wanted to do many video transitions as possible, I decided to create a new shape:

  • I made a Spline with the spline pen
  • I applied a small circular spline and a Sweep Nurbs tool as a parent of both
  • Then I made a Cloner Tool, set it to Radial mode, and put it as the Sweep Nurbs parent.

Once the shape was done, I applied an RS Object tag to the Cloner and checked its Cast caustic Photons.

Then I went to the Render settings dialog box, and under Caustics, I increased the Blur Radius Caustic and checked the Caustic Photons on the Redshift Area Light attribute box.

Then I created the RS glass material by turning off the Reflection weight and adjusting the Sheen and Refraction/Transmission values.

Then I animated the cloners’ start and end angles and the case rotation.



The same procedure was followed for these two animations, but an Align to Spline tag and a Target tag was applied to the camera. A Null Object was put as a parent to the pods and case, so the scaling and rotating values would affect the whole object.



For the logo animation, I simply used a pen tool to help me design the Apple logo on the top view. Then I applied as a parent an Extrude tool and checked on the caps attribute.

Finally, I set a circular spline, as I needed my spotlights to go around the shape; I applied an Align to Spline tag to both the lights and set the camera on top of the logo.

I animated the lights’ position, and the animation was ready.


As I wanted to learn something from Houdini, I started following a tutorial on youtube about knitting animation. As the knitting texture was similar to the pod speaker’s, I wanted this video to represent the Airpods’ Spatial Audio feature.

So, I started by applying a Line to Houdini’s Geometry Box and increased the line points from 1 to 100.

Then I linked an Attribute wangler to the line and wrote into the VEX Expression box:

  • @P.x +=sin(@ptnum)*0.05;
  • @P.y -=sin(@ptnum*2)*0.03;

This allowed me to recreate the shape the speaker should have had.

Then I added a Resaple node, increased its length to .02, and changed its Treat Polygon from Straight Edges to Subdivided Curves.

Finally, I checked the length off and added 400 segments to the Resample.

Afterward, I put a Copy node into the Geometry box and increased the number of copies from 1 to 40 and its X translation from 0 to 0.03.

Then I right-clicked and dragged the Resample and Copy nodes to duplicate it and created a reference copy out of the copy node.

Then I added a Transform node to the original Copy Node and translated its Y as much as was needed for the animation.

The same process was done for the copied Copy Node, but in this case, the spline was meant to be rotated at -90 degrees on its X and translated on its Z.

Then I applied a Color, an Attribute Transfer Node, and a Sphere to the original Copy. I duplicated another Copy and Color node and translated the sphere near the vertical knit spline.

Then I changed the Attribute Transfer’s values to make the animation smooth.

Once this was done, I added an Attribute Wrangle node and linked it to both the Attribute Transfer and Transform Node.

To make the animation more “alive”, I middle-clicked the Transform Node and linked the Geometry Vop Global’s P to the pos’s Noise attribute and the Add’s Input Node.

Finally, I linked the Add’s Sum Attribute to the Geometry Vop Global Out’s P.

Then I keyframed the Attribute Waggler and the Attribute Vop Nodes and applied a Polywire to extrude the comp.

Then I exported the animation from Houdini as an FBX and imported it into Cinema 4D.

Once I noticed the knit was not long and tied enough, I returned to Houdini, changed some values on the rectangle and line nodes, and exported once again.

Then I added a dark RS Sky DomeLight, an RS Spot Light, and rough metal material to the Comp.

Then I targeted my camera to the logo by applying a Target tag and keyframed its position for the movement animation.

Once the keyframes were ready, I opened the F-Curve attributes and set the camera’s keys to Linear Type.

Finally, I put the knitting inside a Subdivision Surfaces Object as its child and increased its render subdivisions from 2 to 4.



When I finally had all my renders ready, I imported all my sequences into After effects to edit the video.

Once the video was edited, I imported the .mp4 into Premier to work on the audio transitions and the sound effects found on PixaBay. When also this process was ready, I exported the audio from Premiere as an mp3 file and imported it into After effects. Not exporting the whole video from Premiere would have allowed me to not lose the video’s quality.

Eventually, I did a simple fade-in and fade-out text animation and keyframed the source text.



Once I was done with the project, Mariana asked me to create a waterfall for the Showcase Projector.

So, I used the personal work composition I did last year and applied an Active Rigid Body tag and a Gravity field set to 1 to each object.

Then I added the needed AOVs to the render settings and rendered the sequence as a .exr file.

Finally, I imported the sequence to Ae, where I created a loop animation. Once the loop was made, I exported the file with the Render Queue Export ensuring to change the file type to Alpha + RGB. This process was essential to have a transparent background.

Then I imported the transparent animation to Photoshop and exported it as a Web Legacy Export to make the loop repeat itself forever.

Poster Animation:

In the end, I asked my classmates to send me a sequence of their best shots to project our work on the ramp’s wall near the posters. Once I got the sequences, I edited the video on After effects and applied an easy position and opacity animation to the credits, ensuring to keyframe also the text source.

Leave a comment

Your email address will not be published. Required fields are marked *