HTMAA course site

75 Amherst St, Cambridge, MA 02139

About

Name ---------- Daniel Harianto
Work ---------- Web Portfolio
Media --------- @danielharianto_
AffiliationMS, Architectural Studies - SMArchSMassachusetts Institute of Technology

** Open a selected work **
or visit the web portfolio

I explore how design and computation can make relationships between people, space, and complex systems more visible, legible, and actionable.

QR code

** Thank you and please come again **

Week 03

3D Scanning and Printing

09/30/26
Week 03 hero image

TLDR

I 3D scanned natural forked branches, inspired by Prof. Caitlin Mueller's research on non-standard wood assembly, then used Python in Grasshopper and the Hungarian algorithm to combine the scans into a dome and an egg-shaped lattice printed in PLA.

For the printing assignment, I began my final project by designing and printing modular bot pieces that connect with embedded magnets. The main lesson was that print scale matters for fine, organic geometry: my first branch prints were too small, so the supports fused to the model.

3D Scanning

This exploration was inspired by Prof. Caitlin Mueller's research on non-standard wood assembly, which uses the irregular geometry of natural wood, such as tree forks, as structural components instead of milling it into standard lumber (TAD journal article, MIT News). I wanted to see how 3D scanning could capture natural forms like these and bring them into a digital design workflow.

Collecting Branches

I collected small forked branches as natural objects to scan. Each one has a different Y- or V-shaped split, irregular bark texture, and knots that would be hard to model by hand.

Collected forked branches

Scanning Natural Objects

I placed each branch on a turntable and captured it with a handheld 3D scanner, scanning it in different orientations so the forks and undersides were fully covered.

Scanning a branch with a handheld 3D scanner on a turntable

Building the Dome (Python Grasshopper)

I wrote a Python script in Grasshopper that used the scanned branch meshes as building parts and arranged them into a dome structure.

To place the branches, I used a matching algorithm, the Hungarian algorithm. It solves the assignment problem: it pairs each item in one set with exactly one item in another so that the total cost of all pairs is as low as possible. Here, it matched each scanned fork to a node of the target network. The cost of each pair was the total angle difference between the fork's three arms and the node's three edges after the best rotation.

Slicing

I sliced the dome in Bambu Studio.

Slicing the branch dome in Bambu Studio

Printing

From the dome, I combined the matched branches into a full egg-shaped lattice.

Egg-shaped lattice composed from scanned branches

I printed it on a Bambu Lab P2S with a 0.4 mm nozzle (standard flow), PLA Basic filament, and the 0.20 mm Standard profile: 0.2 mm layer height, 0.2 mm initial layer, and an aligned seam.

Branch lattice printing on the Bambu Lab P2S

Final Result

The final print keeps the irregular forks, knots, and bark texture of the scanned branches.

Final printed branch egg

3D Printing

Designing the Bot Modules

For the 3D printing assignment, I started building toward my final project: a bot made of modular pieces. I modeled rounded tetrahedral modules, each with a central opening and small pockets on its faces to hold magnets, so the pieces can attach to one another.

Bot module design

3D printing suits these modules better than subtractive fabrication. Their double-curved faces, magnet pockets on every side, and hollow, lightly infilled interior would be difficult to mill from a solid block, while the printer builds each one in a single piece.

The idea of reconfigurable modules also draws on projects like CuGo.

Slicing

I sliced four modules on one plate in Bambu Studio with PLA Basic, the 0.20 mm Standard profile, 10% sparse infill, and tree supports under the curved surfaces. The plate used about 210 g of filament (29 g of it support) and was estimated at about 6 hours.

Slicing the bot modules in Bambu Studio

Printing

The four modules printed together on a Bambu Lab P1S.

Bot modules printing on the Bambu Lab P1S

Assembling the Bot

After removing the supports, I pressed magnets into the pockets and joined the modules. The magnetic joints let the pieces snap together and be rearranged into different configurations.

Assembled bot modules Bot modules in a low configuration Bot modules in a stacked configuration

Next, I will learn to develop the motors and articulate the bot's movement, so the modules can move on their own instead of only being rearranged by hand.

Reflection

My first prints of the branch shell failed because I printed the model too small. At that scale the thin branches sat so close together that the supports fused solidly with the model and could not be removed. Scaling the model up gave the supports enough clearance to separate cleanly, which showed me that print size is a design rule in itself for fine, organic geometry.

Failed small prints with supports fused to the model