designcoding
Search
About Table of Contents Keywords Support designcoding!

Robotic Milling for a Reciprocal Structure

August 7, 2026 | 38 views
Grasshopper | Pavilions | Robotic Fabrication | Workshops
iaac | kuka | milling | reciprocal | structure

The 2025 IAAC Istanbul Summer school was conducted at İstanbul Bilgi University last year. Yesterday, a video was published about it on YouTube. It was prepared by Arkitekt. Here is the video:

This reminded me the workshop and I decided to write about my side of the study. The reciprocal structure was designed by Gamze Gündüz, where she finalized it using a Grasshopper code. Then, the timber elements were labeled and sized with the help of Grasshopper again and integrated into my robotic fabrication code. My task here was carving out the notch details on each wooden stick. Carving these notches, which were two, three, or four per stick on a total of 97 sticks, located on different surfaces and set at different angles, required using a bit of Grasshopper and a bit of Kuka-PRC. On this project, I had the opportunity to mount the milling spindle on the robotic arm for the first time.

the finished pavilion

First, we made the necessary calibrations, coded the sticks, and cut each one to its length. We made a custom clamp to secure them in front of the robot. Since milling introduces vibration and mechanical load, it was crucial for the sticks to be fixed on the designated plane. What I wanted Kuka-PRC to do was scan these intersections of the sticks, which form parallelograms. Doing this for a single stick is easy, you can draw the path and define the planes. However, doing it for a large number of sticks requires abstract thinking. In fact, these abstractions are what attract me to this kind of work in the first place. The first task was to group all the sticks together with their intersecting ones and move them to the calibrated position. If I remember correctly, this part was done manually, unfortunately. Last year, I only had three days to complete the fabrication, so the code turned out much more complex and longer than necessary. Meryem Yabanigül ve Almir Sinanoğlu helped me a lot. The reason for this complex code was that after thinking a setup worked fine for one case, errors and collision issues appeared when moving to other sticks, requiring continuous control and collision-avoidance patches to the code.

reciprocal structure diagram in Rhino
animation showing the robotic milling

This process doesn’t work simply by subtracting two sticks from each other because, in the real world, the edges of those notches need to be ninety degrees so they can actually interlock. As soon as you realize this, you understand that the robotic milling code won’t be that simple. You get why interlocking systems are usually ninety degrees and end up getting annoyed at your designer! Right after that, the second shock comes when you calculate how much material needs to be removed from each stick at the joint detail. If a plane passes right through the middle of the intersection object of both sticks, you can join them by removing equal amounts of material from each. But when these joints have three-dimensional angles, defining that interface requires a whole separate level of geometric acrobatics.

robotic milling of the sticks

We were a crowded group of instructors and students. I particularly enjoyed the robotic fabrication part and working with wood. In this post, published exactly one year later, I am sharing an instructional demo of the Grasshopper definition. The Kuka-PRC addon must be installed for the code to run. In our project, this turned into an extremely complex because of the issues I summarized above. In the attached file, however, there is a simplified demo for you to examine. I usually don’t like sharing such long and messy scripts, but cleaning it up would have meant starting completely from scratch.

closeup view of the reciprocal structure
Robotic Milling for a Reciprocal Structure Grasshopper definitionDownload
  • Search

  • Categories

    • Education
      • Basic Design
      • Design Geometry
      • Design Mathematics
      • Digital Fabrication
      • Parametric Modeling
      • Tutorials
    • Philosophy
      • Analytical Tradition
      • Phenomenology
    • Practice
      • 3D Models
      • Projects
      • Publications
      • Workshops
    • Research
      • 3D Printing
      • Artificial Intelligence
      • Building Facade
      • Calculus
      • Climate Analysis
      • Compass Constructions
      • Computational Geometry
      • Curves
      • Decorative Arts
      • Digital Fabrication
      • Evolutionary Solvers
      • Folding Structures
      • Fractals
      • Graph Theory
      • Interlocking Structures
      • Islamic Patterns
      • Linear Algebra
      • Minimal Surfaces
      • Muqarnas
      • Non-Euclidean Geometry
      • Paneling
      • Parametric Curves
      • Parametric Objects
      • Parametric Surfaces
      • Pattern Deformations
      • Patterns
      • Pavilions
      • Polyhedra
      • Rammed Earth Structures
      • Robotic Fabrication
      • Shape Grammars
      • Simulation
      • Space Syntax
      • Surface Constructions
      • Tessellations
      • Tools
      • Vector Fields
      • Virtual Reality
    • Tools and Languages
      • 3DS Max
      • 3DS Max Script
      • Grasshopper
      • Photoshop
      • Physical Prototyping
      • Revit
      • Rhino
      • Rhino Macro
      • Rhino Python
      • Rhino Script
      • Unity
  • Monthly Archive

    • August 2026 (5)
    • October 2025 (1)
    • June 2025 (2)
    • May 2025 (2)
    • April 2025 (5)
    • December 2024 (40)
    • August 2024 (5)
    • July 2024 (6)
    • April 2024 (4)
    • March 2024 (10)
    • February 2024 (10)
    • January 2024 (8)
    • December 2023 (10)
    • August 2023 (3)
    • July 2023 (3)
    • June 2023 (7)
    • May 2023 (8)
    • April 2023 (7)
    • March 2023 (2)
    • February 2023 (2)
    • January 2023 (3)
    • December 2022 (6)
    • November 2022 (7)
    • January 2022 (1)
    • December 2021 (1)
    • October 2021 (3)
    • September 2021 (4)
    • August 2021 (4)
    • May 2019 (2)
    • April 2019 (1)
    • March 2019 (5)
    • January 2019 (2)
    • December 2018 (1)
    • November 2018 (4)
    • October 2018 (9)
    • July 2018 (1)
    • June 2018 (3)
    • May 2018 (1)
    • April 2018 (4)
    • February 2018 (2)
    • January 2018 (7)
    • August 2017 (9)
    • July 2017 (6)
    • October 2016 (1)
    • May 2015 (5)
    • April 2015 (8)
    • March 2015 (12)
    • February 2015 (4)
    • January 2015 (11)
    • November 2014 (1)
    • August 2014 (1)
    • June 2014 (2)
    • May 2014 (12)
    • April 2014 (5)
    • March 2014 (3)
    • February 2014 (6)
    • January 2014 (4)
    • December 2013 (5)
    • November 2013 (11)
    • October 2013 (2)
    • September 2013 (9)
    • August 2013 (4)
    • July 2013 (2)
    • June 2013 (14)
    • May 2013 (4)
    • April 2013 (10)
    • March 2013 (11)
    • February 2013 (11)
    • January 2013 (10)
    • December 2012 (10)
    • November 2012 (6)
    • October 2012 (13)
    • September 2012 (2)
    • August 2012 (5)
    • July 2012 (14)
    • June 2012 (6)
    • May 2012 (17)
    • April 2012 (15)
    • March 2012 (9)
    • February 2012 (16)
    • January 2012 (18)
    • December 2011 (20)
    • November 2011 (2)
  • Support designcoding!

    Enjoying designcoding? Support its future with a small donation on Patreon. Thank you!

    Patreon


    copyright 2026 designcoding.net | about | table of contents | keywords | privacy policy | end user license agreement