Skip to content

2. Digital bodies

Research & Ideation

This week I’ve been thinking about the body in a different way — not just as something we see, but as something that can show what’s going on inside. Kind of like a portal or a communicator of our inner world. I wanted to play with that idea using 3D clay printing.

I’m pretty comfortable with Rhino, but Grasshopper is still new territory for me. So instead of spending the whole week perfecting a concept, I spent a lot of time just learning the software and experimenting (with plenty of trial and error along the way!).

Here are a few references that caught my eye — some about clay techniques, others about how to represent the body digitally. They’ve been shaping how I think about this week’s work.

References

Digital Bodies References. Curated by Pattarporn (Porpla) Kittisapkajon.

Concept Development

Concept Image by Pattarporn (Porpla) Kittisapkajon.

I’m exploring how the body can act as a communicator of our inner world. For this experiment, I’m working with my body scan and creating a weave effect — almost like the clay is flowing out from inside the body and melting outward. I’m also playing with gravity and the natural behavior of the material to shape that effect. To make the contrast clearer between the body itself and what we wear on top of it, I’m focusing the effect only on the skin areas in Grasshopper, and leaving out clothing and hair.

Tools

Process and workflow

3D Scanning

For this week’s assignment, I used PolyCam (easy to grab from the App Store). The process is pretty straightforward:

  1. Walk around your object and snap lots of photos from different angles and heights. (Tip: make sure each photo overlaps about 50% with the last one so the software can stitch them together nicely.)

  2. Upload the photos and let PolyCam process them.

  3. Review the 3D model.

  4. Edit if needed — cropping and remeshing are super easy with the tools at the bottom panel.

  5. Export. I saved mine as a .obj file so I could bring it into Rhino/Grasshopper for mesh play.

PolyCam Crop PolyCam Remesh PolyCam Export

Mesh Manipulation Using Grasshopper

This part definitely ate up the most time (and patience). Since I didn’t really know how Grasshopper worked, I just jumped in and started clicking around, testing different techniques. Lots of trial and error, with plenty of “why isn't this working?!”.

Mesh Setup in Grashopper

To start manipulating a mesh, the first step is linking the imported mesh from Rhino into Grasshopper. You do this by inserting a Mesh component, then right-clicking it and selecting the mesh you want to work with.

Mesh Setup In Grasshopper by Pattarporn (Porpla) Kittisapkajon.

Experiment #1 – Voxelization in Grasshopper

I wanted to figure out how Maria Immaculata made those Lego-style bricks in Grasshopper, so I tried out a YouTube Tutorial that walked through the workflow. By trying it out myself — seeing what worked and what didn’t — I started to get a basic understanding. You could probably do something like this more quickly in Blender, but since I want to learn how to generate custom toolpaths for 3D clay printing, I’m focusing on Rhino and Grasshopper instead.

Workflow: So here I’m starting with a mesh, wrapping it in a 3D grid of boxes, and checking which ones actually touch the shape. That way I can quickly separate the boxes that intersect from the ones that don’t, and focus only on the ones I want to play with

Voxelized Grasshopper Script by Pattarporn (Porpla) Kittisapkajon.

Experiment #2 - Weaving in Grasshopper 1 with Point Attractor

For this experiment, I adapted Joseph Oster’s Grasshopper script from theRhinoceros Forum. His original workflow started with surfaces, but since I’m working with meshes, I modified the script to take mesh input instead.

Workflow: Left to right: I contour the mesh and sample points, find their closest positions and normals on the mesh, remap distances into control values, then use those values to displace points and weave them into printable paths.

Weaving with Point Attractor Script by Pattarporn (Porpla) Kittisapkajon.

Creating G-code for a 3D Clay Printer to Use

What is G-Code?

G-code is the “language” that tells a 3D printer or CNC machine what to do. Each line is an instruction — like where to move, how fast, or how much material to push out. Think of it as a recipe of step-by-step moves that the machine follows.

How to Create G-code with Grasshopper?

So here’s where the weaving pattern actually turns into G-code. First, I break the curves down into points and pull out their X, Y, Z coordinates. Then I calculate the extrusion amount based on the distance between each point, so the clay flow matches the line length. Finally, I format everything into proper G-code lines, add the start and end code, and combine it all into a single file that the printer can read. YOu can watch Youtube Tutorial on G-Code Basics for 3d Printing with Grasshopper by Diego Garcia Cuevas for a more in-depth explaination

Weave Pattern to G-Code Workflow by Pattarporn (Porpla) Kittisapkajon.

Testing G-Code in G-Code Viewer

I tested my G-code using Prusa Slicer It’s as simple as going to File > G-code Preview and uploading your file. The preview looked fine, but my first print still failed — so I had to go back and adjust the G-code before trying again.

GCODE TEST

G-Code Test in Prusa Slicer by Pattarporn (Porpla) Kittisapkajon.

3D Printing

For this step, I had access to the LUTUM 4.6 printer. It’s actually the easiest part — you just send your G-code to the printer and let it run. The tricky part is all the setup and cleanup, which can be pretty tedious. For my first test, I went through the whole setup only to realize my G-code wasn’t working, even though it looked fine in the viewer. Below is a helpful video by Yao van den Heerik that shows how to set up and start a print.

Setup and Print with Lutum by Yao van den Heerik

Test Print 1

1.1 The clay started floating because the extrusion setting was too low.

Under-Extruded Clay Print Result

1.2 I increased the extrusion power so the clay could come out properly.

Under-Extruded Clay Print Result

WARNING:

  • Keep an eye on your print or make sure your end G-code resets correctly — mine went back to the original position while I was away, and the printer arm crashed into the clay.

G28 Back-to-Origin Crush (End Code Error)

  • Make sure the print stays within the 0x, 0y, 0z origin space. In this test, part of the model extended past 0y into the negative y-axis, causing the front side to print flat.

G28 Back-to-Origin Crush (End Code Error)

1.3 For this design, the control points are quite dense, so I lost the dripping look I was going for.

Model Partially Outside Origin Plane (0x, 0y, 0z) — Flattened Base in Print

Test Print 2

2.1 I adjusted the control points and weave lengths to bring out a more fluid, dynamic movement.

Sparse Control Points and Longer Weave Length (Dripping Effect)

It’s fascinating how, when working with clay, so much of the outcome slips beyond our control — the material starts to take the lead and becomes a kind of co-designer. The surface patterns and textures are shaped not just by intention, but by the clay’s own behavior and physical forces. Still, the final print doesn’t clearly express what the form is meant to represent, so I plan to keep experimenting — refining the design and exploring how glazing might help reveal its underlying rhythm and structure.

Form Shaped by Clay’s Behavior and Physical Forces

Test Print 3

To improve legibility, I decided to print only the hand so I could scale it up to a 1:1 size. However, the dense control points and overlapping curves around the fingers caused the clay to slump and distort during printing, creating a more abstract and expressive texture.

1:1 Hand Print — Digital Density Meets Material Flow

1:1 Hand Print — Multi-Angle View

Final Outcome

Undergoing Firing and Glazing

Fabrication files


  1. File: 3d modelling of mannequin 

  2. File: Laser cut sheets