AIR ALGORITHMIC SKETCHBOOK
AMANDA DO TRAN 586541
CONTENTS WEEK 1: LOFTING CURVES
4
TRIANGULATION ALGORITHMS
6
WEEK 2: FUNDAMENTALS OF VECTOR GEOMETRY
8
CREATING ARCS
10
TRANSFORMING MENU
12
SURFACE GEOMETRIES
15
SURFACE GEOMETRIES - EXPLORATIONS
17
REPRESENTING DATA
18
WEEK 3: CREATING A GRIDSHELL
23
CREATING A GRIDSHELL - EXPLORATIONS
27
PATTERNING LISTS
28
WEEK 1:
LOFTING CURVES The first week’s online tutorials focussed on familiarising us with the interface of Rhino’s node-based algorithm editor Grasshopper. The editing plugin allows users to define logical relationships between multiple design parameters that define a parametric model. A model wherein the parts of its design relate and change in a coordinate way, as defined by various parameters and dependencies set by the designer. Where only ‘one-level’ of history can captured using the ‘Record History’ tool in Rhino, Grasshopper was created to allow users to retain and use history of parametrics in design projects. Hence, each state of a surface is the bi-product of the changes caused to the algorithm. Our first task was to loft several of curves using Grasshopper and create a series of interesting surface explorations.
4
Above: The main definition used to generate lofted surfaces iterations.
Above and Below: Moving control points in Rhino to investigate differentiated geometry.
Above and Below: Exploring new relationships between geometries, investigate differentiated geometry, and capturing differentiated models through baking in grasshopper back into Rhino.
5
WEEK 1:
TRIANGULATION ALGORITHMS The week’s videos also explored the use of triangulated algorithms in generating interesting 2-dimensional and 3-dimensional patterns. Unlike organised grid systems, explorations of hexagonal grids with equilateral triangle grids through the ‘Delaunay Edges’ and ‘Voronoi’ components can generate patterns with great orgnic qualities.
Below: The ‘MetaBall’ component was used to generate circular cell-like patterns within the organic grid. The threshold was manipulated using a number slider.
6
Above: Points created within a simple box using ‘Pop3D’ component were used to generate 3-dimensional cell patterns within the geometry through ‘Voronoi3D’. Altering the density of points and deleting various cells created many interesting iterations.
Above: ‘OcTree’ components used to generate boxes based on surface’s populated point grid. Varying of grid density generates different results which are then baked and further manipulated.
7
WEEK 2:
FUNDAMENTALS OF VECTOR GEOMETRY Week two introduced us to more transformations, sections and more complex geomeries in Grasshopper, as well as methods of computational modelling through the use of vectors. Vectors define a direction and a magnitiude in a Grasshopper definition, and are useful for applying transformations on objects, such as translation, scaling and rotation.
Above: The Grasshopper definition of a simple vector in space - essentially the ‘base’ definition to all vectors. Below: Plane created based on a vector definition.
8
Above: Definition used in adding two vectors to create a ‘head-to-tail’ vector. Highlighted is the simpler approach to doing so. Below: Vectors mentioned with ‘head-to-tail’ vector, highlighted.
9
WEEK 2:
CREATING ARCS Through the ‘DivideCurve’ and ‘Arc’ building components of Grasshopper’s curve menu, you are able to create arcs from a series of grid points upon a surface. These arcs can then be used as references for further geometrical development. Two curves are referenced into Grasshopper by ‘setting’ them into two ‘Curve’ components. The ‘Divide’ function is then used to divide generate the control points along each curve, and through the ‘Arc’ function, arcs are formed to run through and connect each of the start points those to the end points. By ‘Flipping’ the arcs and putting them through ‘InterpolateCurves’, arcs are created along both the length and width of the surface, to generate a point grid system.
Upper Right: Inital arcs created from dividing referenced curves using ‘DivideCurve’ Middle Right: Intersecting grid system created from interpolating the surface’s arcs and flipped arcs
Right: ‘Geodesic Curve’ component used, creating curves between two points on the surface, that is the shortest path possible between them.
10
Above: Definition from which the following explorations were created.
Above: Explorations with ‘Polylines’ component. Connects points on an arc with straight polylines to simplying the geometry and enable ease of fabrication.
Left: Definition from which geodesic arcs were generated.
11
WEEK 2:
TRANSFORMING MENU The transform menu of Grasshopper proved to be a powerful tool digital geometry manipulation, due to its ability to create variations of great extents in the most efficient of definitions. Elements such as site contours can hence be generated and represented in plane to allow physical fabrication.
Above: Surface contours projected onto XY-plane using ‘Project’ component. Above Right: Projected contours lofted relative to surface to create contour planes.
Right: Contour planes layed our and oriented to allow fabrication.
12
Above: Definition used in the generation of the lofted contours below, in which contours are generated for a lofted surface using the ‘ContourSrf’ function. Adjustments to the offset distance using a number slider allows variations in the contour density.
Above: Lofted surface contours, with variations in density as determined by offset distance slider and other manipulations.
Above: Contour Plane Definition The surface contours are horizontally projected down onto the XY-plane using the ‘Project’ component and setting the XY-plane as the base plane. The projected contours are then lofted relative to the surface to create a series of contour planes, which are then oriented through ‘Orient’ to remove overlapping and ready for FabLab.
13
14
Above: Surface with generated box grids through the ‘Sbox’ function
Above: Surface boxes acts as panel on which patterns are projected
Above: ‘Sbox’ height increased to allow a sharper and more defined pattern
Above: Projected pattern
WEEK 2:
SURFACE GEOMETRY
Patterns can be projected onto surfaces through the use of surface box grids, or the ‘SBox’ component. ‘SBox’ projects box grids onto the surface of a curve using its grid points. These boxes then act as panels on which patterns can be generated. Its height can be manipulated using a number slider to create highter or flatter patterns.
Above: Definition from which surface pattern is created
Above: Triangular mesh used in ‘Morph’ to create surface pattern
A mesh is set as the base to the ‘Morph’ function, with the box grids as its threshold to project a pattern onto the surface, within the box grids.
Above: Mesh applied into box grids using ‘Morph’ to generate triangular patterns onto the surface
Above: Final baked result of projected triangular pattern.
15
Above: Further explorations of geometry projections on surfaces with variations in Grasshopper definition and mesh settings.
16
WEEK 2:
SURFACE GEOMETRY - EXPLORATIONS
17
WEEK2:
REPRESENTING DATA In relation to the week’s topics of geometry transformations and surface projections, we were to select a data set of our choice and creatively represent it in a visual manner. I chose to have fun with it and visualised a set of fun data from three variables and represent them as a set of points in Grasshopper. The three variable were: x - Number of assignments due within that week y - Hours of sleep that night z - ‘Happiness’ scale of 1-10 the next day A surface was created based on the points through inputting them into ‘SrfGrid’.
Above: Surface based on data points created from inputting points into ‘SrfGrid’
The surface is then plugged into the ‘SBox’ component to generate a series of box grids, on which a mesh pattern is then applied through the ‘Morph’ tool to generate an interesting visual representation of the initial data.
Above: Mesh in which morphed pattern is based upon
18
Above and right onwards: Final baked result of data representation
Above: Surface box grid from ‘Sbox’, with exaggerated height to create a sharp pattern
Above: Projected pattern through ‘Morph’
19
20
WEEK2:
REPRESENTING DATA
Below: Grasshopper Definition of Data Representation
21
Three curves divided into their controls points through ‘DivideCrv’
Above: Arcs created from exploded data branches
Three curves are divided into its control points, and the ‘Tree Explode’ function is applied to ‘explode’ each point into their respective lists of co-ordinates. Each co-ordinate is then plugged into ‘Arc’ and rebuilt to create a complex intersecting grid system through the curves. ‘Shift’ is later used to offset the grids that allows the creation of a more dynamic system. Where there was an issue of lofted surface not joining together, as outputs are polysurfaces and not a single continuous surface , curvs were rebuilt via the ‘ReBuild’ component. A continuos lofted surface is then achieved. A geodesic created from
22
surface is the resulting
finally points.
WEEK 3:
CREATING A GRIDSHELL
Arcs flipped and an offset value applied to create diagonal grid
Above and Below: Arcs offsetted to create potential architectural structure
23
3. Points exploded into separate ‘branches’ of points (it’s co-ordinates) through ‘Explode Tree’ 1. Three curves drawn in Rhino that are to be lofted and developed in Grasshopper
2. Curves divided into its controls points through ‘DivideCrv’
24
WEEK 3:
CREATING A GRIDSHELL
Below: Grasshopper Definition of Gridshell Generation
4. Arcs created from exploded point branches and rebuilt to ensure smooth continuous lofted surface
Lastly, geodesic surface created based on points and arcs
5 Offset applied to arcs through ‘Shift” to create diagonal effect
25
Above: Further explorations of gridshell generation with different surfaces
26
WEEK 3:
CREATING A GRIDSHELL - EXPLORATIONS
27
WEEK 3:
PATTERNING LISTS Patterning lists is a great way to create patterns beyond the simple repition of shapes, but enable the generation of organic systems. Using the ‘Cull’ component of Grasshopper, a sequence of numbers is created to represent the sequence in the list of ‘Cull’. This sequence is then shuffled around so that instead of cells being orderly organised as 0, 1, 2, 3, they will now be randomised into something like 25, 44, 13, 0. This shuffilng can be created using the ‘series’ components where you alter the coutning series, or through the ‘Jitter’ function which automatticaly shuffles the list of values.
Below: Grid created through the 2-dimensional population of a rectangular boundary and cells achieved through ‘Cull’ and ‘Voronoi’.
28
Above: ‘Cull’ and ‘Voronoi’ settings adjusted to create variation in cell density and tesselation
Below: Offset and manipulated ordering of grid points to create further cell interations of greater definition
29
WEEK 3:
PATTERNING LISTS Below: Grasshopper Definition of Patterning List
1. Surface divided into its control points
2. Points then flattned and put into ‘Cull’ component to create cell patterns within grid
4. ‘Voronoi’ component creates further pattern variations
3. Alternating True/ False inputs set as ‘Cull’ parameters to allow organic cell interations
30
5. ‘Jitter’ component ensures cells’ inputs are shuffled and randomised
6. After great explorations of other various components, the cells are offsetted to create one last iteration and introduce greater definition to the final pattern.
31