Skip to content

Computational Couture

Inspiration & Ideation

During Julia Koerner's global lecture, I was intrigued by all of the intricate generated and biomimetic forms we were shown. Thinking about my final project, it would be great to find ways to print intricate, translucent, forms on-demand as light fixtures, especially using bio-derived and bio-degradable materials. I also found myself drawn to the full color PolyJet-printed textures added to fabric, as they seemed like a more wearable option that still had the potential to produce interesting forms when manipulated.

Taking things in a different direction, I was also interested in exploring out the '4D' textile technique of printing on stretched out fabric to create 3D patterns using the tension of the fabric itself.

Examples of '4D' printed textiles (Amelia Henry, 2024)

'4D' printing and generative textures both produce compelling forms for lighting applications, which is the directions I would take them in for a final project.

Thinking about the types of patterns I wanted to explore, I found a demo of a Grasshopper definition to make a grid of Voronoi cells, then extrude, rotate, and skew them based on the location of an attractor point.

Voronoi Extrusion Demo (Parametric House, 2021)

This week, I bounced between making swatches using many fabrication methods and spending time working in Grasshopper. Looking towards my final project, I expect to rely heavily on Grasshopper for the types of designs I will be creating.

Tools

Initial Trainings & Testing

In preparation for training our group on the FDM printers, Jack, our shop manager, prepared a sample PLA print directly on fabric, which sort of adhered but could be pulled apart.

Red plastic on white fabric held in finger

PLA printed on top of cotton fabric (not embedded)

After Tuesday's lecture and 3d-printed textile demo, I started getting trained on various equipment that could be useful for the week's experiments. II started with the xTool Omni, a 2.5D UV printer that could potentially be used to add full color spikes to fabric. An initial test, we just printed black text on fabric to see if the result would stick and flex, which it did. I also noticed that the lint on the fabric took on some color, an issue which should be avoidable when printing thicker layers.

I also got trained on the DTF transfer printer (xTool Apparel Printer Plus), which prints plastic-coated transfers to press onto fabric, or in our case, PLA prints, to add color and patterns. I already had experience with 3D printing, so I was able to start working with the printers on my own after getting the correct printer profiles added to PrusaSlicer.

After more research during the week, I decided not to move forward with either of these machines as they would not produce great results when used on materials outside their intended purpose.

Generative Design in Grasshopper

Basic Arrays

I had been wanting to learn Grasshopper for a decade before this course and had only really used it once, so I used this week as an opportunity to start working with the plugin. To start, I looked at the Fabricademy 2026 Bootcamp Grasshopper slides1 and, since I had already gone through the recommended official Grasshopper tutorial2 a few months earlier, went right into downloading and editing the provided grasshopper definition. The tutorial took an input of a curve, extruded it to a height set by the user, and then create a rectangular array of objects, with adjustable instances and spacing. I didn't want to just create a repetitive pattern, so I started with a 5mm circle and then added a random number generator to scale each object in the array to a different size. Switching to a blob created with a polyline in Rhino, I then added a second random number generator to rotate each object.

Random Voronoi

I wanted a more organic, random, and well nested pattern, so I moved away from the rectangular array and began creating a new generator that would take sheet size inputs and produce random 3D Voronoi cell patterns, with tuning controls for the user to play with.

A lot of Grasshopper is really just matrix manipulation, so having some experience in MATLAB helped me with conceptual understanding. Then I just needed to spend the time figuring out what components would do the manipulation I wanted. I often began with trial and error, then looked up "Grasshopper how to ___" to find the name of the correct component. In my limited experience with Grasshopper, I've found that there are often specialized components to do exactly what you want, if you have the right name, but you can spend a long time trying to manually create the manipulation before realizing that there's a better way to do it.

In order to get a better understanding of how components work and debug definitions, I would often add a 'Panel' or 'Display Matrix' component and wire it to the output of a component to visualize the result.

More Control

Once I had a randomly-generate pattern, I wanted to try starting with a controlled grid and then adding in movement and randomness. I found a number of tutorials online to follow and started working with Parametric House's Attractor Point video3, which went over using attractor points and the graph mapper to resize circles in a grid based on their distance from a point the user could drag around. After building out the initial Grasshopper definition while following the tutorial, I added an adjustable extrusion height and played around with settings to reach a pattern that I wanted to print.

If I had more time, I would go through more tutorials and try to pull my own Grasshopper definition together to generate a grid of cells, use attractor points to scale/rotate/skew, and then offer different options for tapered, faceted, and rounded extrusion. I will likely use Grasshopper for my final project, so I'll have a chance to go into more depth with it in the future.

Printing on Fabric

I experimented a number of time with printing with different filaments on various mesh fabrics, trying a new print for each pattern I designed in Grasshopper. For me, adding texture to existing textiles was more of a draw than printing flat sheets, so I mostly focused on this method.

FDM Print Settings

Apart from disabling supports I used the default print settings for each filament in PrusaSlicer, so I have just included the basics below:

  • Nozzle temperature: 230°C
  • Bed temperature: 60°C
  • Supports: none
  • Layer Height: 0.2mm
  • Infill: 15%
  • Nozzle temperature: 230°C
  • Bed temperature: 65°C
  • Supports: none
  • Layer Height: 0.2mm
  • Infill: 15%
  • NO RETRACTION WHEN USING FLEX FILAMENTS (set by default when using filament type: flex)

Rigid on Mesh (PLA)

As a first attempt, I printed my randomly scaled/rotate blob array onto stretchy mesh fabric (90% nylon, 10% spandex). I started the print and waited for the first two layers to complete, then paused the print, secured the fabric to the build plate with magnets, and restarted the print. Because the fabric was stretchy and I didn't want it spring back when released from the build plate, I barely held it under tension. This resulted in the printhead dragging and twisting the fabric a bit on the first few layers after restarting. Small printed areas separated from the build plate, but the larger parts stayed in place and recovered after a few messy layers.

4 photos depicting the steps of 3d printing orange blobs onto black mesh fabric

Steps to print randomly scaled/rotated bob array on mesh

We had some non-stretch sheer fabric from curtains, so I printed my attractor circles pattern on it to see if I could secure the non-stretch material to the build plate more easily than stretchy fabric. After the first two layers, I paused the print and secured the fabric to the build plate with binder clips, removing all slack but not over-stretching the material. After removing the handles from the binder clips, I restarted the print. One of the small parts on the print detached from the build plate during the pause, and after the print restarted, a few parts didn't extrude on the third layer. I let the print complete, but a few parts just didn’t adhere and got thrown around by the printhead as it moved. After the print finished, I pulled the part off the build plate without any tears in the fabric, even though it seemed delicate.

4 photos depicting the steps of 3d printing an array of orange circles on white mesh

Steps to print attractos circles pattern on non-stretch sheer fabric

I was intrigued by the idea of printing on stretched fabric and having the piece collapse into a 3D form when removed from the build plate ('4D' printing), so I copied the tripoint layout from a paper on '4D' textile printing4 to test out. I ended up creating the final layout manually in Rhino instead of generating one in Grasshopper, but with more time, I would work on an automated layout method. When extruding the curves into 3d objects, I set the height to that of four layers (0.2mm * 4 = 0.8mm), that way there would be two layers below the fabric and two above.

I printed the pattern in Prusament PLA on the most stretchy fabric we had, which happened to be the 90% nylon, 10% spandex mesh that I had used in earlier testing. The '4D' printing technique is usually done with Lycra or other really stretchy fabrics, so I wasn't sure how our mesh would perform. I tested stretching the mesh to determine how small to cut the piece, and for our 10" build plate, I cut the mesh to a 7" square. After the first two layers had printed, I paused the print and secured the mesh with binder clips, stretching the fabric to its limits to reach the edges of the build plate. After removing the clip handles, I restarted the print. Although the first object's third layer didn't extrude after the pause, the mesh was stretched wide enough that the plastic below and above the fabric still fused.

5 photos depicting the steps of 3d printing orange tri-point pattern on black mesh

Steps to print '4D' textile pattern on stretch fabric'

With the fabric I used, the pattern only resulted in a slight 3D effect, but I would be interested in trying other patterns and more stretchy fabrics to see what I can make.

Flexible on Mesh (TPU)

I thought TPU would stick better to the build plate and would therefore be a better material choice than PLA for patterns with small sections, so I printed my randomly-generated Voronoi pattern in Prusament TPU 95A on stretchy mesh fabric (100% nylon). I cut the fabric slightly smaller than the build plate so it would be under a little bit of tension when clipped in place around the edges. After the first two layers had printed, I paused the print, secured the fabric with binder clips, removed the handles from the clips, then restarted the print. It took some time for the filament to start extruding after the pause, so the first few cells didn't get a third layer. The TPU adhered really well to the smooth PEI build plate, so after pulling some areas up, I switched to a scraper to carefully remove the delicate back layers.

5 photos depicting the steps of 3d printing white gemstone shapes on beige mesh

Steps to print flexible random Voronoi pattern on mesh

The stretch of TPU filament typically requires it to be printed with no retraction, which is where pulls the filament back up a bit while moving (not actively printing). Because of this, there ended up being a lot of stringing between Voronoi cells, which combined with the small cell size, made it difficult to make out the details of the pattern. I just used the default Prusament TPU 95A profile, so the results could probably be improved at least a little bit with tuning, but the lack of retraction makes TPU a better fit for single object printing than arrays/patterns.

white textured gemstone pattern on beige mesh

TPU print with a lot of stringing

Because a few of the Voronoi cells didn't have the third layer embedding the print in the mesh, the bottom layers ended up detaching from the fabric. The layers printed on top of the fabric did stay pretty well secured, but it affected the look of the back.

white tranglular shapes forming battern on back of beige mesh, with 2-3 pieces missing

Missing bottom layers

Printing Textiles

TPU

As a quick test of printing textiles, I used one of the included patterns in FilaFabric, bubbles, and printed a 100x100mm swatch in Prusament TPU 95A. Instead of using the included print and filament profiles, I opened PrusaSlicer, selected my printer (Original MK4S with HF0.4mm nozzle) and the default Prusament TPU profile, then exported the printer config to upload to FilaFabric. I kept all print profile settings at the default 0.2mm SPEED settings.

I wasn't sure if the G-code generated by FilaFabric would include or trigger bed leveling, so I made sure to watch closely at the beginning of the print to stop it if the nozzle rammed into the bed. The printer did run through automatic bed leveling and the rest of the process went smoothly.

SLS Chainmail

Since our lab had SLS printing available, we ran a test print of chainmail to see how the print-in-place design would handle. Anastasia recommended a chainmail model5 with 11mm links and 1mm spacing, so I scaled the STL down to 50% scale in PreForm for a more detailed part.

Flexibility demo

Reflection & Thinking Towards the Future

For me, this week was really just for trying out different textile printing methods and getting started with Grasshopper. I definitely plan to continue building my Grasshopper skills for the final project. I wasn't focused on getting the best possible print results, but if I were to continue working with printed textiles, I would be more intentional about optimizing designs for printing and spend some time tuning filament profiles to reduce TPU stringing and improve PLA bed adhesion.

Out of all the printing methods I tested, I thought the short PLA print on non-stretch sheer fabric produced the best results. The non-stretch material could be pulled taught without deformation, the low extrusion height added texture while still allowing the fabric to drape, and the rigid material printed with better surface quality than TPU. I still ended up losing a piece of the pattern to poor bed adhesion and under-extrusion after resuming the print, for which a potential solution could be adding a sacrificial object outside of the main pattern and making sure it is the first area to print after resuming from pause.

Fabrication Files

References