10 June 2009

Radiolarian Ceiling

Continuing my collaboration in the Radiolarian Walls project, I presented an alternative design for the ceilings, which served as the starting point for the continuation of that part of the project by other colleagues in the research line.

Also, I did some advice to these colleagues, suggested modeling strategies and developed some scripts to generate different patterns of holes for the roof.

Vertical Milling problem

In some moment in the Radiolarian Walls project, I came out with a zigzag joint solution to the continuity issue in the wall tessellation. That implies that we no longer leave the original boundaries of the provided material for the finished panels, but we had to mill in a vertical way to get our custom borders.

As part of planning for machining, I developed a series of simulations in which we could visualize a problem in this cases that require vertical cuts. The study showed that depending on the depth of cut, the head of the tool may collide with the material, breaking it. It also showed that in cases of milling a surface with a certain slope, the milling itself provided enough space for the movement of the tool head (that’s the reason why it hadn’t happened before). Thanks to this, we could foresee the purchase of a longer tool.

Radiolarian Walls project

This is a project conceived and directed by Alberto T. Estévez within the Genetic Architectures research line at ESARQ. Is an opportunity to get research ideas to the real world, addressing a client of Estévez who requested the interiors of a therapy and treatment office in Barcelona.

The project consists of a system of dry-walls and ceilings designed as an interpretation of radiolarians bone structures. This project develops a series of hexagonal cells that repeats as a tessellation throughout a plane and, following a bone structure logic, generates volumes that get thicker at nodes, forming spikes and leaving circular holes. From the modeling point of view, this is done from a grid of hexagons, each with a circle inscribed in its center. The size of the circles corresponds to another system for increasing diameters that define it.

My work began when, due to a rethink on the size of wall panels, I had to set another hexagonal grid, and therefore, recalculate the diameter of circles. After, I rebuild the methodology of modeling from the new circles and hexagons, so that they could contain spikes and holes in a single NURBS surface per cell. Once the new methodology was solved, I implemented it in RhinoScript, creating an automated tool for modeling complex surfaces that form each cell of that panel.

As part of the script, forms are generated oriented for machining a Polystyrene foam panel in the three-axis milling machine, one side at a time.

30 May 2009

Incremental Random Surface script

Once I get to introduce arrays and loops to work with points, I’m used to introduce nested arrays and loops to follow the constructive geometry logic of going to the next level: curves. And since is pretty obvious by itself, I go one more step to surfaces. The key concept to understand here is that a curve needs an array of points —which are arrays of numbers, so is an array of arrays— and a surface needs an array of curves —an array of arrays of arrays!

To set this level of nested arrays with loops, you have to nest the loop as well. The simplest example to understand this in RhinoScript is presented here. I’m using x and y as iteration variables, so the relation with the point arrays and the geometrical output is more clear. For the z component, I’m using the pseudo random function (Rnd) in order to get a differentiated output without adding more lines of code.

A student once told me that it looks like a tsunami and remembering it I did this second image, with 21 iterations in x and 51 in y dimension. Notice that Rnd has no specified seed, so it’ll generate a different surface every time it runs. The script:

Call IncrementalRndSrf()
Sub IncrementalRndSrf()
    Dim Pts(20)
    Dim Crvs(50)
    Dim x, y
    
    For y = 0 To 50
        For x = 0 To 20
            Pts(x) = Array(x, y, Rnd*x)
        Next
        Crvs(y) = Rhino.AddCurve(Pts)
    Next
    Call Rhino.AddLoftSrf(Crvs)
End Sub

28 May 2009

Connections: MAG-DA.EU

I’ve had the opportunity to teach in the Design, Image and Architecture (DIA) and in the Design, Environment and Architecture (DEA) postgraduate programs at ELISAVA. Together, DIA and DEA form the Masters in Design and Architecture, all directed by Ignasi Pérez Arnal. Recently they’ve being building MAG-DA.EU – the digital magazine of the Design and Architecture Master program, edited by Carlos Sant’Ana.

Thanks to Ignasi and Carlos for publishing my professor profile in MAG-DA.EU.

Tooling workshop at ELISAVA

On November, 2008, Affonso Orciuoli organized a ‘Tooling’ workshop: digital tools for design and fabrication in the Design, Image and Architecture postgraduate program at ELISAVA. I was part of the staff along with Maruan Halabi, Juan Pablo Quintero and Affonso. Maruan taught NURBS modeling with Rhino, Affonso and Juan Pablo worked on CAD/CAM strategies and fabrication with RhinoCAM and MEDIO’s machine, and I introduced PanelingTools and RhinoScript to bring more advanced tools to the range of strategies.

The first image is the panel of fabricated pieces from all projects. Secondly, project ‘Orchideae’, by Carlos Briceño, Leila Pablo González, Helena Bayona, Osian Abreu and Daniela Martínez; milled on a Krion board. The last one is a zoom on the piece from project ‘Bioro’, by Africa Arreola, Arturo Rodríguez, Gabriela Velarde, Daniel Gómez, Laia Feixas and Rita Rodrigues; based on the Simple Spiral script, milled on high density polyurethane resin. Original photos by MEDIO.

I have to recognize the effort of Juan Pablo and María León at MEDIO in finding material providers, working extra hours in their machine and publishing everything in the blog.

22 May 2009

Simple Spiral script

In page 37 of David Rutten’s RhinoScript101 there’s a PointSpiral script as an example to understand point coordinates as arrays of three numbers, once you’ve got loops and an introduction to arrays. Since I usually have a short period of time to introduce this, I’m used to present a simplified example to address an introduction to both issues, with the argument that in this scripting strategies (constructive geometry methods, and further, generative design); points are, by far, the most representative use of arrays and one of the most common needs for incremental loops in those algorithms.

In the image is also interesting that, since we’re creating separated elements, it seems to be six spirals instead of just one, because distances from points in consecutive iterations are larger than distances from other spins of the spiral. The script goes:

Call SimpleSpiral()
Sub SimpleSpiral()
    Dim Pts(2)
    Dim i
    For i = 0 To 49
        Pts(0) = i * Sin(i)
        Pts(1) = i * Cos(i)
        Pts(2) = 0
        Call Rhino.AddPoint(Pts)
    Next
End Sub

Connections: MEDIO Design

MEDIO is an atelier for design and production of spaces and objects based in Barcelona, directed by architects Juan Pablo Quintero and María León. They have a large CNC machine with which they develop products under their own philosophy of Playful Rationality; they give consulting and digital fabrication services for architecture, design and communications; and they organize workshops.

Thanks to Juan Pablo and María for reference me in the blog of the workshop we did together.


MEDIO es un estudio-taller de “diseño y producción de espacios y objetos” radicado en Barcelona, dirigido por los arquitectos Juan Pablo Quintero y María León. Disponen de una gran máquina de CNC con la que desarrollan productos bajo su propia filosofía de Racionalidad lúdica; dan servicio de consultoría y fabricación digital para la arquitectura, el diseño y la comunicación; y organizan talleres de formación.

Gracias a Juan Pablo y María por referenciarme en el Blog del curso que dimos juntos.