Introduction: Espresso Resto

My motivation for this project was to use a generative design approach to create a an object to scale that would bear some structural load.

My espresso machine plunger is small but heavy. I was also drawn to the idea of supporting its cylindrical form.


For this project I used my tape measure, Ender 3 3d printer, Autodesk Fusion 360, and Ultimaker Cura.

Step 1: Sketching the Rests

I drew a circle, added an offset feature, extruded the hoop into a body, then repeated those steps to make a slightly smaller hoop-shaped body.

I used the box solid tool to remove material from the hoops. This was challenging because I have recently become habituated to a specific workflow to execute boolean difference operations in Rhino:

  1. create the shape you want to subtract with
  2. position that shape precisely where you want it
  3. execute the boolean difference operation
  4. remove the leftover geometry

In Fusion, the interaction design allows you to work faster by making some assumptions about when you might be executing step 1 with the intention to to cut from another shape. This "guessing intention" feature can collapse my workflow above into simply steps 1 & 3, but to leverage it requires offset planes (or existing geometry) in the workspace to act as a reference when placing your box (or other shape) to start. If a beginner like myself is starting to use Fusion 360, it's very easy to end up with a misplaced cut operation.

Thanks to Jennifer for some help on slack regarding this.

Once I moved through this point and became familiar with editing features on the timeline, Fusion and I developed an understanding that facilitated our work.

Step 2: Adding the Feet

I used small cylinders as anchors where the main supports would rest on the ground.

Step 3: Setting Up the Generative Design Study

Specifying a complex set of input data for the generative design study was fairly straightforward. I applaud the work of the Fusion 360 designers.

I specified

  • geometry to preserve
  • obstacle geometry
  • fixed points
  • structural load forces
  • material for cost estimation simulations

Step 4: Results of the Generative Design Study

The three resulting designs were fairly different. They differ in the way that the generated support material meets the preserved geometry:

  1. Top right - Coffee-table design: the support material rises nearly straight upward to meet the plunger holder form
  2. Bottom left - CertifiedGoodBoy design: the support material approaches the plunger supports from one side, with a greater surface area of attachment. It appears as if the cylindrical plunger-holder bit flows into a valley
  3. Top left - Firewood-holder design: the support material is focused on the back portion of the curved plunger-holder. This form reminds me of a cantilevered design.

One of the surprises: in the coffee-table design, the support actually meets the "feet" anchors from underneath them. I think this may have been due to how I selected the fixed positions when setting up the study.

I chose to fabricate the firewood-holder design. Because the legs looked a bit thin for PLA fabrication (I don't have aluminum filament yet), I selected an iteration that gives the legs a bit more support. This is the design that is pictured in the youtube video showing the configuration for experimental tree support structures.

Pictures of the finished print are up next!

Step 5: Fabricated Result

The fabricated result is a functional espresso resto, a custom stand for my the stainless-steel plunger part of my espresso machine.

In testing the stand, I realized that my specifications of obstacle geometry were not 100% accurate. I spaced the two half-moon holder arms so that they would fit on either side of the silicone rubber grip (in black), however I didn't include this grip in the obstacle geometry. Because the grip wasn't specified as obstacle geometry, the generative design algorithm had the green light to place material there and as a result the plunger does not sit completely flush as envisioned. This is a good lesson to learn when employing a generative approach.

Thanks for following along on my generative design journey.