Page 1

architecture design studio justine 2

lenkiewicz 389679 0 1 4


algorithmic sketchbook

WEEK 01 l ofti ng cur v e s

The first week’s online tutorials were about getting us familiar with the Grasshopper interface and a few of the key functions. We started off lofting curves by drawing three separate curves in Rhino, and then referencing them into three separate ‘curve’ components in Grasshopper, which were then plugged into the ‘loft’ component in order to create an undulating surface.

As a node-based editor, Grasshopper was able to first store the information about the curves before outputting the data into the loft component; which then provided greater freedom when transforming and altering the 3D model in Rhino via the model’s control points.

page | 2

d elauney

The videos also explored the use of prepackaged triangulation algorithms in generate patterns across 2D and 3D surfaces. The delauney algorithm is a quick way of producing triangles between points in 2D geometry, and is useful as a quick way of generating terrain using a set of contours.

v o r o no i The Voronoi 3D algorithm works on the same premise, but is applied to 3D objects. Once your 3D geometry has been referenced in Grasshopper, your baked Rhino model is divided up into cells. which can then be adjusted individually or deleted to create irregular and complex geometries.

page | 3

WEEK 01 exper iment in g w ith g rid s

iteration /01

iteration /02

page | 5

WEEK 02 vector fund a m e nta ls

In week 2, we were introduced to computational methods of modelling through the use of points and vectors. Vectors are used to specify direciton and magnitude in a Grasshopper definition, and they can be useful for performing transformations on objects such as movement, scaling, ratios and rotations. Unit vectors are also used to quickly and accurately set the length of an object. Meanwhile, points are used to specify the position of something, and planes are used to specify orientation.



04. 03.

01.Panel list used for custom notes and text values 02.Unit vector component which has a value of one 03.Transforms a unit vector so that is it parallel with the x axis 04.Vector display viewport



05.Projects a point or vector onto the XY plane 06.Constructs a plane along an origin input

page | 6

Grasshopper also has the capacity to perform vector summation through the addition of the x, y and z components of each vector)


08. 09.

07.Deconstructs a vector into its component parts 08.Mathematical addition of x, y, and z components of a vector 09.Creates a vector from the x, y, and z components

page | 7

WEEK 02 mesh geom e try

Through algorithms, we can use a list of vertices and points, and connect them together to make a mesh from scratch. The mesh menu also provides numerous methods of analysis for surfaces, including triangulation which breaks a surface up into individual triangular faces. It is also possible to create meshes by using points and then the quad system component to instruct how points are to be connected together. A NURBS surface that has been created in Rhino can be referenced into Grasshopper with the Brep (boundary representation component) and then converted into a mesh segmented into a series of vertices and faces. This process has been optimised to run quickly by making only an approximation of curves, so it is a particularly good alternative if you don’t need to be precise.

page | 8

11. 10.



10. Component which allows you to alter a mesh with custom settings 11.Creates a mesh by approximating a referenced Brep geometry 12.Optimises the mesh by merging together identical vertices 13. Softens the vertices of a mesh to produce a smoother mesh

page | 9

WEEK 02 messing wi th m e s h

page | 10

page | 11

WEEK 02 creating a rc s

Through the divide and arc building functions in the curve menu, Grasshopper allows you to create arcs from a series of points and planes that has the potential to result in complex and intriguing geometry. In order to do this, we first had to reference our two curves into Grasshopper and then divide the curves by plugging them into a Divide curve component. To create arcs along the z plane, the Arc component needed an input of referenced points that make resulted from a division in the curves. A second z plane component then had to be plugged in to determine the base plane of the arcs. The lattice effect was created by then repeated the process but using the referenced arcs as the input information. The Divide Length component includes allows you to set a unique length between divided segments along the arcs with a second input option. A curve is finally fed through the divisions via the Interpolate Curves component.

page | 12





15. 14.Divide curve component 15.Creates arcs along the z plane 16.Creates an arc 17.Divides arcs up into segments with adjustable lengths 18.Interpolates a curve through the segments

page | 13

WEEK 02 transfor m m e n u - 2 D p la n e s The transform menu is useful in the creation of 2D planes to contour surfaces, which can then be projected as elevations of the geometry onto X and Y planes. This becomes a useful took in the fabrication methods. `

Loft three curves together | Reference loft as a surface which can be contoured | Use a slider to adjus of projection plane | Loft projection to create planes

p ro jecting g e o m e try o n to c u r v e s

Divide contours | Assign a planes using the division as origin points | Orient planes to wrap around the contours

page | 14



20. 19.Contour component with parameters for distance and direction 20.XY plane component 21.Projection component

st elevation

24. 22.


28. 25.


26. 22.Divide component that breaks up contour into a series of points 23.Constructs a plane at a specified point of origin 24.Orients plane according to specified parameters 25. Distance component to adjust distribution distance of planes along contours 26. Bounds component that has ‘flattened’ the data from previous parameter into a single list 27. Remapping component that redistributes planes along the contours 28. Scale component that adjusts the size of planes

page | 15

WEEK 02 curve inter se c tio n s

Input multiple curves data | Select indices and parameters of curve in plane to intersection points | Draw

page | 16

31. 30.


29.Solves intersection points for multiple curves 30.Retrieves specific items for a list 31.Deconstructs a plane into its component parts

ntersections | Evaluate the intersection points | Assign a geometry along plane

page | 17


sp her e inte rs e ction s

Draw a sphere and set multiple radius within | Populate geometry with points to create more intersections | Randomise placement using jitter component | Draw circle shapes through a set of predetermined points from a list of extracted data | Loft between specified radiuses to achieve coil-like sphere shape

page | 18






32.Creates a spherical surface 33.Populates geometry with points 34.Randomly shuffles list of values 35.Extracts the data and outputs into unique lists 36.Draws a circle using three defined points from the list of data

page | 19


creating a grid s h e ll

Draw three separate cruves | Divide curves | Explode the tree data into separate branches | Create a branch lists | Offset the lists by an integer to create diagonal arcs | Construct a geodesic surface betw create height page | 20





37.Using three points to create an arc 38.Rebuilds curves with a specific number of control points 39.Offsets the order of the list by a value 40.Constructs a geodesic surface from a series of points

arcs using data from three separate ween the points | Extrude the arcs to page | 21


expr essions

page | 22

page | 23



41.Constructs a lofted surface from three curves, deconstructs the Brep so that the surface can be divid extreme, and uses that as a source value to reparametrise the object 43.Script components that allow according to set plane, and edits the attributes of the circles by adding dots, colour, and fuzz

page | 24

44. 43.


ded 42.Creates a field charge from a referenced point, then extrapolates one maximum and one minimum you to input a function and operate on a number of variables and remaps the 44.Contours the curves

page | 25


fractal tetr a h e d ro n

page | 26

page | 27


fractal tetr a h e d ro n

page | 28

page | 29




45.Constructs a polygon along the XY plane using adjustable parameters 46. Uses a mathematical fun parts to be evaluated, scaled, trimmed, and arrayed uniquely. This process is repeated several times

page | 30

nction to extrude the geometry 47. Constructs a brep, which can then be deconstructed into its constituent to achieve the desired effects.

page | 31

WEEK 04 eva luating f ie ld s

page | 32

page | 33

Curve Divide

Point Charge Decay

page | 34

Spin Force Field and Point Charge Decay

page | 35

WEEK 04 g rap hing se ction p rof ile s Graph Mapping can be used to convert a 2D drawing into a 3D object, and allows greater amount of control but making smalls transitions and large vertical pushes by breaking up the 2D curves broken up into list of points and then mapping them to a new Z coordinate.

Curve Divide

page | 36

Setting range for divisons | Remapping to unit z

Interpolate curves

Graph iterations

page | 37

WEEK 04 g rap h controlle rs Graph mappers allow you to generate 2D and 3D geometry with great flexibility. In this tutorial, we simply took grid circles and manipulated their radii, combined with the prepackaged voronoi component to produce cells that resemble a crystal like pattern.


48. Create up the curv curve divis

page | 38



es the original 2D circle geometry, using a bezier graph to determine the mapping of the range of curve 49. Divides ves by a given number of segments, flattens the list of points so that the cull pattern operates uniformly across all sions 50. Generates a voronoi cell pattern and interpolates it through curve divisions

page | 39

WEEK 04 g rap h controlle rs Bezier graph and curve division iterations

True False True Cull

False True True False Cull

page | 40

Parabola graph and curve division iterations

page | 41

WEEK 04 i ma ge sa m p ling This tutorial demonstrated who to map an input surface space using the space of an image sample. In this example, we generated a series of overlapping and offset grids of appertures to replicate the surface of the Herzog and de Meuron ‘De Young Museum’



51. Subdiv domain 5 Shifts the s

page | 42


vides an input surface using an image sample and mathematical expression to map circles within a particular 2. Create two additional overlaying circle patterns using another image sample and mathematical expression 53. second overlaying circle pattern up along the z vector at a given radian angle

page | 43

Adjusting angle

Using a different image sample for overlaying grid pattern

Using a logarithmic expression to adjust angles and heights

page | 44

es and heights

page | 45

WEEK 05 d ri ft wood fra m e s In an earlier tutorial, we recreated a pavilion using a set of curves that were then offset to create contours, and extruded across a brep to create a series of intersecting planes. We then used the split face component to create a layered, driftwood-like surface.

page | 46




54. Brep and original inner curve are separately referenced into Grasshopper 55. Inner curve is then offset and extruded along the z vector according to specified parameters 56. The intersection for each brep is solved, and the deconstructed constituent faces of the contoured breps are used to split the face of the pavilion brep

page | 47

WEEK 05 d ri ft wood fra m e s For this week’s tutorial, we took this surface and created frames which could be used to then fabricate the structure.



57. Both inner and outer curves are referenced into Grasshopper and then divided; where the inner curve divisions are pr vector between the division points on the inner and outer curves, and then data is grafted to individual branches and sim resolved to shift according to given parameters that can be altered at any time 60. The end points are identified, joined to

page | 48



rogrammed to occur at the closests points on the outer curve division 58. Planes are drawn along the z mplified 59. The intersection points between both breps are solved, and the planar surfaces are algorithmically ogether, and then booleaned to create a singular, continous frame for fabrication procedures

page | 49

WEEK 06 g rad ient d e s ce nt Create a recursive pattern using a gradient descent algorithm over a topologically altered surface.


61. Referencing in the topological surface and clustered to simplify the iterative process 63. Ge

page | 50



dividing it into a set of points to use as references for the recursive pattern 62. Customised algorithms that have been enerating a set of nurbs curves along the surface topological surface

page | 51

Computational error

page | 52

Vector amplitude iterations

Vector rotation iterations

page | 53

WEEK 07 tensile and rig id b od ie s 65. 66.


page | 54

64. Referencing mesh geometry into Grasshopper and using Weaverbird component to ensure all edges and vertices are joined 65. Extracting the edges of the mesh and referencing them as lines to be used as springs when computing through Kangaroo simulation 66. Kangaroo Physics component which applies a force to the referenced geometry in response to referenced springs and anchor points, resulting in a physical mesh

page | 55

WEEK 07 L- s y stems a nd h o o p s na k e




page | 56

67. Create parametric lines in Grasshopper from a series of parametric points 68. Reference as line geometry 69. Deconstruct plane into component parts in order to determine vertical vector direction 70. L-system algorithm, defined by guide vectors and points 71. Hoop snake component which creates a running loop for the L-system algorithm, conditioned to run ‘true’ for a total of 6 iterations after which it runs ‘false’



page | 57

WEEK 07 voussoir clou d inp ut

page | 58

page | 59

WEEK 07 voussoir clou d f orm f in d in g


page | 60

72. Inputting mesh geometry, using mesh edges as connection and rest length, and achieving final form using the Kangaroo Physics simulation, guided by a unary force

page | 61

WEEK 07 l i ve data fe e d s a nd re s p o n s i ve g e o me t r y w i t h f i r e f l y : d ECO i a r ch ite cts - h y p o su r f a c e


page | 62

73. Creating a rectangular surface and converting into a mesh face, where the face normals and centre points alternate in response to a referenced point location 74. Referencing audio data from microphone and displaying wavelengths as a series of points 75. Remapping face normals in response to live microphone data feed



page | 63

WEEK 07 stru ctur a l a n a ly s is w ith ga l a p a g o s: Bo l l i n g e r a n d Gro hmann - S k ylink






page | 64

76. Reference in lines drawn in Rhino to create prarametric structural frame 77. Using millipede components to assign anchors as point supports 78. Referencing columns as frame curves and assigning them with cross section, material and material thickness 79. Referencing trusses as frame curves and assigning them with cross section, material and material thickness 80. Determing vector direction for point load 81. Testing deflection


page | 65


84. 83. 86.

82. Dividing up top and bottom trusses, and grafting and exploding data onto separate branches 83. Drawing individual trusses in preparation for Galapagos component 84. Using Galapagos Evolutionary Solver to determine the best structural arrangement for minimal deflection 85. Assigning a cross section and materiality to trusses

page | 66

page | 67


87. Final result after running Galapagos Evolutionary Solver

page | 68

page | 69

WEEK 07 i sosur fa cin g a n d m in im is i n g w i t h mi l l i p e d e : M a r k Fornes - Un d e r Te ns io n




88. Referenced curves and bounding box 89. Referencing geometry and bounding box into Millipede Geometry Wrapper component, and then referencing as an isosurface and creating a single mesh geometry by welding the mesh together 90. Deconstructing mesh surface and grafting to single branches to allow minimisation of surface 91. Using referenced point locations to determine contour arrangement on surface

page | 70


page | 71

JustineLenkiewicz_389679 Algorithmic Sketchbook  
JustineLenkiewicz_389679 Algorithmic Sketchbook