VVVVVStéphanie Vilayphiou

7. Computational Couture

Inspiration

Arnaud Pfeiffer

This is not 3D printing, but very inspirational parametric designs.

Instagram post embedding not available.
Watch it on Instagram
Instagram post embedding not available.
Watch it on Instagram
Instagram post embedding not available.
Watch it on Instagram

Amandine David + Esmé Hofman

Amandine David and Esmé Hofman have been collaborating for quite a while in mixing traditional crafts and contemporary technologies. The project Meshes is based on parametric lasercut modules designed in Grasshopper by Amandine David in Brussels. She sends those to Esmé Hofman in Eindhoven to weave them. Below are pictures from Dutch Design Daily.

Amandine and Esmé.
Grasshopper parametric lasercut modules by Amandine.
Esmé Hofman weaving with the modules.

Studio Minimètre

Studio Minimètre is a Brussels-based 3D printing studio. They are very accurate on their tools and eco-conception. They optimize their prints to save time and materials. For example, a classical mask holder would take between 105 and 150 minutes to print. Their design (see below) prints in only 10 minutes. They are researching eco-friendly material such as filaments made of food waste (coffee, mussels…) and 3D printing ceramics. They recycle their PLA waste into new filaments and recently they are grinding metal waste from furniture design into powder to insert it into their DIY-recycled PLA.

:: instagram CAGLobfBVzT

Instagram post embedding not available.
Watch it on Instagram

Full Control xyz

Full Control XYZ is a software to directly generate gcode designs. You can either make your own models in Python or you can alter the designs already existing and play with parameters.

Instagram post embedding not available.
Watch it on Instagram
Instagram post embedding not available.
Watch it on Instagram
Instagram post embedding not available.
Watch it on Instagram

Krizia

I am not a big fan of her aesthetics, but Krizia has a lot of interesting 3D printing fabrics techniques.

Instagram post embedding not available.
Watch it on Instagram
Instagram post embedding not available.
Watch it on Instagram
Instagram post embedding not available.
Watch it on Instagram

Kate Reed

Kate Reed, Fabricademy 2021.

Haneen Jaafreh

Haneen Jaafreh, Fabricademy 2022

Chainmail knit

Didn't have time to print this, but this model looks very fun to play with! Could be added on the sides of any 3D printed fabrics to assemble pieces.

https://www.thingiverse.com/thing:3619166

Tools

Tiling path effect in Inkscape

As a first and very quick & dirty prototype, I made a parametric pattern in Inkscape using the Tiling path effect. I used the randomizer to change randomly the size of the clones.

Different renderings of the randomized tiling path effect in Inkscape.

Then I imported the .svg file in TinkerCAD to extrude it and make an .stl file. Then I printed it with PLA on a lacey fabric. I like a lot the hard but flexible textile it produces. I block the fabric on the plate with magnets and clips, but with other prints, I figured it was not so stable, the fabric is sometimes not stretched enough. A better solution is to remove the plate, and tape the fabric underneath the plate. Also, you need to raise your Z-level as the fabric has a thickness. I used the "Live Z adjust" of the Prusa machine to do it live and not having to calibrate each time you change a fabric.

3D print of randomized triangles with PLA on lacey fabric.

Infill method

The 3D printer at Green Fabric is a Prusa Mini. So we usually use Prusa Slicer to translate .stl files into .gcode files. It is a very interesting software and you can also use it for other brands. They have a lot of presets for a lot of machines and filaments.

Krizia from Sew Printed shows in this video how to use infill parameters to make 3D printed fabric.

I used this method to 3D print concentric circles on a fabric directly with Prusa Slicer.

Recipe
    1. Right-click on the canvas.
    2. Add a cylinder.
    3. Change its dimension on the right panel (in my case: X:150mm, Y:150mm, Z:1mm).
    4. Go to the "Print Settings" tab.
    1. Layers and perimeters
    2. Vertical shells/Perimeters: 0
    3. Horizontal shells/Solid layers/Top: 0
    4. Horizontal shells/Solid layers/Bottom: 0
    1. Infill
    2. Infill/Fill density: 5% (change according to what you like)
    3. Fill pattern: Concentric
    1. Skirt and brim
    2. Skirt/Loops: 0
    3. Brim/Brim type: No brim
Step 1. Cylinder.
Step 2. Remove shells.
Step 3. Concentric fill type.
Step 4. Remove skirt and brim.
Step 5. Slice.
3D print with PLA.
3D print with TPU flex.

After seeing Paraprint's recitation on Wednesday, I wanted to try her trick to print transparent filament onto a sublimation paper. Sublimation is a physical process where something goes from solid state to gas state without passing through liquid state. We actually did not have that specific type of paper but only regular transfer paper from my Fabricademy fellow Eileen. Both work the same way, you need to print your design on the paper with an inkjet printer. According to this website, sublimation paper uses sublimation ink or a sublimated surface on the target object. We gave it a shot anyways with Eileen and it did work! I used a rectilinear fill type whereas Eileen used a Gyroid fill type; hers looks much better as it gives a kind of fabric texture. Go have a look at her page to see the result.

3D print with transparent TPU flex on transfer paper.

Update: ironing

I wanted to test ironing different sheets on a 3D printed object to see if they would stick to it.

Ironing stuff on 3D print.
Ironing transfer paper: FAIL.
Ironing heat transfer vynil: FAIL.
Ironing aluminium foil art: SUCCESS!

Grasshopper

I was very curious to give a try at Grasshopper but I got actually discouraged after a couple of hours trying to understand how it worked. I managed to draw a triangle directly from it after a couple of hours, and understood how to add an element drawn in Rhino into Grasshopper. But I eventually gave up as I use Rhino/Grasshopper on a Virtual Machine on my Linux OS. And because of this, my Windows window is quite small and I can't use an external screen to put Grasshopper on the side. Also, I feel like Grasshopper is not super fluid to work with compared to other nodal programming software like Pure Data. It is very difficult to understand what type of inputs and outputs a component asks for. It is important to me to build something frmo scratch to be able to understand how a software works, and I found it quite difficult to continue with Grasshopper…

Open SCAD

So after Grasshopper, I gave a shot at Open SCAD. I have been curious and overwhelmed about it for a while. But in the end, it was super easy to dive into it, I was able to build a triangle in 5 minutes.

Open SCAD is a 3D modelling software but only through programming. It has its own programming language, but it is the same paradigm as Python which I know well so it was easy to get to it. I find its language quite elegant and was quite amazed by its system to build a GUI (Graphical User Interface) to change your parameters. It also has a sort of command line prompt at the top (like the one in Rhino), which makes it quite convenient to code without knowing all methods by heart.

A simple for loop.
/////////////////////////////////
// NESTED FOR LOOPS (notably to make a grid of elements)
/////////////////////////////////

// Parameters of 3 points of a triangle
A=[0,0];
B=[10,10];
C=[10,0];

for (x = [-20 : 10 : 20],
     y = [0:10])
    translate([x,y*10]){ 
        color("blue") 
        polygon([A, B, C]);
    }
/////////////////////////////////
Nested for loops.
/////////////////////////////////
// LINES / SUN
/////////////////////////////////

// Change this number to choose how many lines you want, 
//the angle of the lines will be calculated automatically
LINES = 50;

for (i=[0:360/LINES:360])
    rotate(i)
    translate([0,10,0])
    color("pink")
    cube([0.5,i%2 * 15 + 15,1]);
/////////////////////////////////
Circle with alternating line lengths.
3D printed in PLA, 0.4mm nozzle.
3D printed in PLA, 0.4mm nozzle.
3D printed in TPU flex, 1mm nozzle.
3D printed in TPU flex, 1mm nozzle.

Stipples

I was amazed by Julia Koerner's Setae project.

Julia Koerner, Seta project. Photography: Ger Ger.

I thought to give it a try with an image I made a few years ago: a portrait of Ada Lovelace already dithered with the software Texturing. It's quite easy in OpenSCAD to import a .png image and extrude the pixels.

/////////////////////////////////
// EXTRUDE PNG
/////////////////////////////////
// replace "ada.png" by your image file
// change the scale values [X, Y, Z] according to your needs
scale([0.5, 0.5, 0.1])
surface(file = "ada.png", center = true, convexity = 1, invert=true);
Original image.
Image extruded according to black values of pixels in OpenSCAD.
Sliced model in Prusa Slicer. One day of printing!!!

Because it was too long to plot, I used StippleGen 2 to have less dots but still having a legible image. StippleGen is a software to dither your images based on Voronoi diagrams. It was especially thought to plot images on eggs or other spherical objects. Using such a dithering does not deform the image when printing on a round object.

Different settings in StippleGen2.
Ada put through StippleGen2 and Prusa Slicer. 4h of print.

I didn't have time to print it. And by looking at it now, I think this image does not work very well with this technique. I think it would work better with a grayscale images which would then give different heights instead of different thicknesses.


/////////////////////////////////
// EXTRUDE SVG
/////////////////////////////////
// replace "ada.svg" with your .svg file
// change height according to your need
linear_extrude(height = 20, center = true, convexity = 10)
import(file = "ada.svg", layer = "plate");

It is still quite long to print and didn't have the time to print it as we are three to share the 3D printer this week.

Chainmail

I've always wondered how chainmail kind of 3D prints could actually be 3D printed and be flexible at the same time. To fully understand that, I wanted to create one myself in OpenSCAD. I found this Blender tutorial to understand the logic of it.

It took me quite a while to modelise the grid so that the triangles would not touch themselves. When I succeeded I made a 3D print which was very abstract! Because the grid was not dense enough.

First try at a triangular chainmail.
Chainmail mess.

Thanks to the parameters and the nice automatic GUI OpenSCAD makes out of your parameters, I managed to change the thickness of the triangles to make a denser grid.

Denser triangular chainmail by playing with the parameters on the right panel. The parameters are generated from the comments you add next to your parameters in your code (left panel).

Prusa Slicer warns you when there might be issues in your print.

Prusa Slicer warning about stability issue.

To prevent those stability issue, I added a support enforcer. It's a very nice feature in Prusa inbetween an automatic and manual support making. Don't forget to check the option in "Print Settings/Support Material/Generate Support Material" but without the "Auto-generated support".

Add a block as support enforcer.
Resizing and placing support enforcer.
Selecting “Generate support material”.
Preview of slicing with support enforcer.

I had issues to print it still as the first layer is only very small parts, they were not sticking to the bed. I decreased the first layer speed to 10mm/s and raised the first layer bed temperature to 70°C. It helped the first layers to print. But then, it got messy again when I was not looking and I didn't have time to launch the print again.

Code
/* [TRIANGLE] */
A=[0,0];
B=[10,20];
C=[20,0];


/* [TILING] */
rows= 5; //[0:10]
columns= 4; //[0:10]


/*[VARIABLES]*/
rotation=13; //[0:40]
SHIFTX=22; //[0:40]
SHIFTX2=22; //[0:40]
SHIFTY=14; //[0:40]
SHIFTY2=14; //[0:40]
Z=3; //[-10:10]


// BUILD THE OUTLINE OF A 3D TRIANGLE
module triangleOutline(){
    difference() {
         linear_extrude(2) offset(r = 2, delta=10, chamfer=false) {
            polygon([A, B, C]);
         }
         linear_extrude(2) offset(r = 0.2) {
            polygon([A, B, C]);
         }
    }
}

// RED GRID OF TRIANGLES
for (i=[0:columns],
     j=[0:rows])
        color("red")
        translate([i*SHIFTX,j*SHIFTY,-Z/2])
        rotate([rotation,0,0])
        triangleOutline()
;

// BLUE GRID OF TRIANGLES
for (i=[0:columns],
     j=[0:rows])
        color("blue")
        translate([i*SHIFTX2+11,j*SHIFTY2+6, Z/2])
        rotate([-rotation,0,0])
        triangleOutline()
;

3D Models