A L G O R I T H M I C S K E T C H B O O K 2 015 , S E M E S T E R 1, L I A N C H E N N G
05 WEEK 1 17
PARAMETRIC VASES WEEK 2
PAVILION 26 37 51 61
WEEK 3 PATTERNS WEEK 4 EXPRESSIONS WEEK 6 SPIDER WEBS N O N -T E AC HIN G W E E K FABRICATION
PARAMETRIC VASES Task: Explore 5 strategies for creating a parametric vase. Then, bake 5 possible geometries for each strategies by changing the value of the variables.
Commands: Point - Circle - Radius - Vector - Unit Z - Surface- Loft 4 points in rhino are referenced to create 4 circles using grasshopper circle command. Then, number sliders are added to control the radius of the circles. Vector commands are connected to each of the point in order to move the circle to different heights by adding Unit Z vector. Surface command is connected to the bottom circle to create a base surface for the vase. All circles are then joined to loft command to make a volume surface for the vase. 5 variations of vases are created by changing the radius and moving the Unit Z vector of each circle.
SWEEP 2 RAILS
Commands: XYZ Point - XYZ values -Interpolate Curve - Curve Sweep 2 Rails 4 XYZ points with different XYZ values are joined into an interpolated curve. In order for make a volume surface with Sweep 2 Rails command, another set of points are needed as a second interpolated curve to work with a section curve which referenced from rhino. 5 different shapes of vases are created by changing the XYZ vector values of each points.
pop3d + voronoi
Commands: Populate 3D - Voronoi 3D - List Item - Brep - Mesh - Mesh Explode Using populate 3D command to set a box, then slider added to give a value to the number of points inside the box. Voronoi 3D command is added to give the box a voronoi form. Then, list item command is added to it to check the voronoi block created from each point inside the box through by sliding the index number to choose a specific point in the box. 5 different variation of vases are created by changing the points count within the 3D region. After baking all 5 variations of voronoi box, each of the box is make into a brep then mesh, to explode the brep to enable each block to be deleted for creating different cut-out vases.
voronoi 3d + pipE
Commands: Voronoi 3D- Deconstruct Brep (Explode) - Brep Edges Continue from strategy 3, voronoi 3D is exploded into its constituent parts. Then brep edges command used to extract the edge curves of the brep. Pipe is connected to the brep edges to create cage for the vase, then slider added to it to control the radius of the pipe. In this version, the voronoi is baked separately and exploded for deleting some parts of the surface to create a small geometrical vase. Then, it is put together into a designed cage which baked out from the pipe. 5 different variation of vases are created by changing the points count within the Voronoi 3D region and the radius of the pipe.
PLATONIC DODECAHEDRON + POLAR ARRAYS
Commands: XYZ Point - Platonic Dodecahedron - Polar Arrays By creating a XYZ point and giving it XYZ coordinate to connect to a Platonic Dodecahedron, then connected it to Polar Arrays command in order to create a circular repeated Platonic Dodecahedron pattern which eventually form an interesting ring vase. 5 different variation of ring vases are created by changing the radius of the plato dodecahedron and the points count for the pollar arrays.
PAVILION Task A: Within a space of 20x20m develop an installation / pavilion (freeform surface) on the site of Merri Creek depending on attractors. Generate different surface variation by changing the point of attractors. Then, use two material techniques to apply to the surface and evaluate a potential fabrication strategy. Task B: Use three different components “longest list” or “shortest list” or “cross reference” to manage data in the 3 different ways.
PAVILION / INSTALLATION
Commands: Divide Curve - Evaluate Curve - Catenary - Distance - Loft True Boolean - Split List - Flip Curve A base â€˜sâ€™ curve is referenced from rhino then set it as a varying attractor with the Evaluate Curve component within a parameter. Two curves (small and big) are referenced from rhino to be divide into equal length of segments with Divide Curve command. Catenary component is used to make catenary chains from the points on smaller curve to the points on the bigger curve. Then a length input (distance) for the catenary is needed for it to fully work, so the distance form the base curve to either one of the curves is computed using Distand command. In order to make a full complete loft for the catenary, loft options is used to set a true boolean surface. As the loft comes out entangled flipping the profile, split list operation is used to flip the curve as correction. 4 different surface variations are then created by changing the parameter of the varaying attractor.
PAVILION / INSTALLATION + WEAVERBRID
Commands: Weaverbird’s Picture Frame - Weaverbird’s Mesh Thicken To fabricate a potential surface, Weaverbird Picture Frame and mesh brep components are used to discretize the loft into a mesh. Then, using Weaverbird’s Mesh Thicken to give the mesh a thickness then to adjust the edge of the mesh from the custom mesh settings .
PAVILION / INSTALLATION + AA DRIFTWOOD SURFACES
Commands: Brep - Curve - Series - Offset - Extrude - Brep BBX Deconstruct Brep - Surface Split The baked surface after loft is first set into a brep. Then a curve is reference from rhino which then to be offset into a series of curves which later can be used as a reference to slice surfaces. The curves are extruded with a z vector. To generate a smooth surface, Brep BBX is then used to solve the intersections resulted from the two breps (extreuded curves & first brep). Then the brep finally split into surfaces according to the series curves with Surface Split command which then ready for fabrication.
DATA TREE MANAGEMENT Longest List
Commands: Curve - Divide Curve - Longest List - Shortest List - Cross Reference - Line 2 curves are refenced from Rhino to be divided into equal length of segments (distances). Longest List component is used to generate a collection of longest list. Then, a line is used to connect the points from both divided curves which results to most number of lines. Shortes List component is used to generate a collection of shortest list. Then, a line is used to connect the points from both divided curves which results to least number of lines. Cross Reference component is used to generate cross reference data of multiple list. Then, a line is used to connect the points from both divided curves which results to multiple number of lines.
PATTERNS Task: Develop 4 patterns using: 1 Grid data structure + Cull 2 Grid data structure + Cull + Flatten Tree 3 Image sampling 4 Voronoi + Cull
Data grid structure + cull One point
Commands: Square Grid - Cull - Curve - Divide Curve - Cross Reference - Line A Square Grid is created then connected with Cull to remove some of the list on the grid. A curve is refenced from rhino and connect to Divide Curve component to divide the curve in to equal lenght of segments. Then, the list created from the grid is cross reference to the list generated from the curve through the line. 3 different patterns are created by changing the value of the curve segments as well as tooggle of cull.
Data grid structure + cull + flatten tree One point
Commands: Square Grid - Cull - Curve - Divide Curve - Cross Reference - Line + Flatten Tree Similar to the previous method, however, flatten tree is added to compress a branch of lists into one list of data which somehow will simplfy the pattern. 3 different patterns are created by changing the value of the curve segments as well as tooggle of cull.
Commands: Square Grid - Point - Multiplication - Circle - Larger Than - Cull A square grid is set with (Ex-70, Ey100) to fit the chosen image then connected to a point. Then, circle is used to create pattern according the point on the grids. Multiplification is then added to give the circle radius according to the image black and white intensity (black small- white big). To remove some of the circles for creating interesting pattern, cull is used to with a larger than components so to select only circles larger than the number can be generated.
voronoi + cull
Commands: Surface - Divide Surface - Flatten Tree - Cull Pattern Voronoi - List Length - Series - Jitter - List Item - Partition List - Region Union - Offset A surface is divided into a grid using Divide Surface before connect to Voronoi. Using flattern tree to reduce the branch of lists into a single list. Then cull pattern is used to move some of the list by changing the toggle true or false. Another set of list by then created after listing length then jitter component used to shuffle the values of the list. To give more complexity to the pattern, a sublist is added by using partition list. Finally, region union is used to union the set of planar closed curves. The curves can be offset to give a thickness. 3 different patterns are generated by changing the values of the divided surface grid and the toggles.
EXPRESSIONS Tasks: Develop surfaces & patterns using: 1 Math equations 2 Math equations + If Conditions
EXPRESSION 1: sin(x) * cos(x)
Pi Factor: 4 Step: 42
Pi Factor: 6 Step: 42
Pi Factor: 8 Step: 42
Commands: Pi - Range - Golden Ratio - Expression - Point Polar - Curve - Interpolate Curve - Rebuild - Z | Move - Loft A range is used to generate a list of data with pi as the domain. A series of points is created by connecting the list as the angle for xy rotation using point polar component with Golden ratio set for the z-axis angle rotation and expression â€˜sin(x)*cos(x)â€™ as the offset distance. Then both curve and interpolate curve components are used to generate two different curves through the points. Rebuild component is used to smoothen the nurbs curve. One of the curve is moved to a different z coordinates in order to loft a surface between the two curves. 3 different surfaces are generated by changing pi factor.
EXPRESSIONs 2: SIN(X)2 * X | COS(X) * X SIN(X) * X | 2 * SIN(X)
Curve 1 Start: 0 End: 14 Steps:100
Curve 2 Start: 0 End: 22 Steps:100
Curve 1 Start: 0 End: 37 Steps: 38
Cu Sta End Ste
Curve 1 Start: 0 End: 21 Steps: 38
Curve 2 Start: 0 End: 10 Steps: 53
urve 2 art: 0 d: 17 eps:53
Commands: Domain - Range - Expressions - XYZ Points - Polyline - Loft - Mirror - XY Plane - Scale A range is used to generate a list of data with a set of numeric domain. A semi spiral curve is generated with Expression ‘sin(x)2 *x’ as the X-coordinates and ‘Cos(x)*x’ as y-coordintates using polyline. Then another wavy curve is created with expression ‘sin(x)2 ’ at x-coordinate and ‘2*sin(x)’ as y-coordinates using polyline. Both curves are lofted into a surface then another surface is mirrored at YZ Plane. Both mirrored surface and loft sorface are scaled uniformly to produce clearer and bigger surface. 3 different set of surfaces are produced by changing the domain values.
EXPRESSION 3: COS(x)2*-X | SIN(Y)*Y + IF CONDITION (X>Y, 10, 3)
Start: 0 End:23 Steps: 87
Start: 4 End: 35 Steps: 20
Start: 0 End: 26 Steps: 13
Commands: Domain - Range - Expressions - If Condition - XYZ PointsMirror - YX Plane - Line - Loft A range is used to generate a list of data with a set of numeric domain. A set of points is generated with Expression ‘cos(x)2 *-x’ as the X-coordinates and ‘sin(y)*y’ as y-coordintates. Then another set of duplicated points is created by moving the poins to YZ plane.Both sets of points are joined into line then loft into a surface. 3 different set of surfaces are produced by changing the domain values.
EXPRESSION 1: sin(x) + cos(x)
Pi Factor: 61
Pi Factor: 77 Step: 100 Commands: Series - Expression - Point Polar - Interpolate Curve A series of points is create with point polar component where the generated data list is used as the angle for xy rotation and expression â€˜sin(x) + cos (x)â€™ is set as offset distance for the points. Then the points is joined using interpolate curve to generate patterns. 3 different patterns are generated by changing steps for the series and the number of counts in the series.
EXPRESSION 2: SIN(X) * COS(X)
Commands: Pi - Range - Expression - Graph Mapper - Point Polar Interpolate Curve A range is used to generate a list of data with pi as the domain. A series of points is created by connecting the list as the angle for xy rotation using point polar component with expression â€˜sin(x) + cos(x)â€™ as the offset distance. A graph mapper is used to manipulate the z angle rotation of the points. Then interpolate curve components is used to generate the pattern through the points. 18 different patterns are generated by changing pi factor and steps (range).
EXPRESSION 3: COS(x)2*-X | SIN(Y)*Y + IF CONDITION (X>Y, 10, 3)
Commands: Range - Expressions - If Condition - Polar Points - Flatten - Graft - Voronoi A range is used to generate a list of data with a set of numeric domain. A set of points is generated with Expression ‘sin(x)*y’ as the X-coordinates and ‘cos(x)*y’ as y-coordintates connected to 2 ‘if conditions’ then connected as z angle radians to make 2 set of points from polar. Another expression ‘x*y’ is set as xy radians. The first set of points is flatten to produce single branches result and another set if grafted to make extra branches.Both sets of points are connected to Voronoi component to generate interesting pattern. A variation of patterns are produced by changing the domain and the y-values of the expression ‘x*y’.
SPIDER WEB Tasks: Examine different types of (real) spider webs. Extrapolate their structural behaviour, generation logics, overall principles. 1.a- Create a spider web on the x-y plane with Graph Controllers and relax it using kangaroo. 1.b- Create another spider web on y-z plane with Graph Controllers and relax it using kangaroo.
spider web 1A
Graph controller | xy plane
Commands: Range - Graph Mapper - Circle - Divide Curve - Cull - Voronoi - Explode (Segments) - Box Corners - Unary Force- Springs - Kangaroo A range of domain is added to control the radius/number of circles and connected with graph mapper to manipulate the radius distances between the circles. The circles are divided into equal length segments with points using Divide Curve component, then cull into â€˜false-true-falseâ€™ in order to generate slightly different outcomes with the Voronoi component. In order turn the voronoi pattern into a stretchable spider web, Springs component are used to apply spring principle onto the web and Kangaroo Physics Engine to run simulation test to explore the effects. The voronoi diagram is exploded into segments then transform into springs and vertices are connect to Unary Force as the point of loads acting downwards (Z- vector). The exploded segments are stored in a Line container and flattened before connected to Springs (line, rest length) and Kangaroo (force object, geometry). A box corner is used to create a boundary box with four corner points as anchor points by referencing a geometry in rhino. An interesting spider web pattern is generated by modulating the graph controllers. Although graph controller is powerful in generating patterns, in this case, it is limited somehow if complicated segments transformed into springs then the input to Kangaroo will become errors.
SPIDER WEB 1B
GRAPH CONTROLLER | YZ PLANE
Commands: Range - Graph Mapper - Circle - YZ Plane - Rotate - Divide Curve - Cull - Voronoi - Explode (Segments) - Box Corners Unary Force- Springs - Kangaroo Using the similar strategy to the previous exercise, another spider web is created on YZ-plane using rotate component. Y unit is used as the vector of the point loads so the web is stretchable to the sides instead of going downwards.
non - teaching W E E K
FABRICATION Tasks: Apply 3 different fabrication techniques to fabricate bench in 3 different ways or materials. a. Waffle Grid for Solid Geometries b. Unroll Polysurface c. Make Tabs with Cut & Score
FAB STRATEGY 01
WAFFLE GRID TYPE 2 | solid geometries
Learning Outcomes: Brep - Material Thickness - X & Y Divisions This component is useful for all kind of solid geometry fabrication. It divides the brep in perpendicular directions by taking the intersections of the sections to subtract notches so that the sections can be joined together. As it works similarly to sectioning and contouring, this component can be quite useful for those designs. The only limitation of this component is it does not allow for layout and labelling. For this, another script needed to retain the cut components documentation for assembly during fabrication process.
FAB STRATEGY 03
UNROLL brep | polysurface
Learning Outcomes: Brep - Unrolled This definition is useful for unrolling polysurface to flat surface on xy-plane to be cut and printed for fabrication. However, some complicated polysurface will overlap once unrolled. Unfortunately, the only solution for this is to explode the unrolled surface and rearrange it manually in rhino. In order to test how this component works, a simple yet facetated cut geometry is used in this exercise.
FAB STRATEGY 02
make tabs | cut and score
Learning Outcomes: Unfolded strip - Tab Width - Tab Scale - Cut - Score This clustered definition is an extended version of the simple tab making component which allows to make the fold line by extracting the boundary of the unrolled polysurface. It is very useful as also allows to bake the fold lines and the tabs line in different layers and colours. For instance, the fold lines is reference as score in red layer and the tab lines as cut in black layer. Through this exercise, it is found out that some of the tabs overlapping with another tabs. Hence, for this component to work efficiently, the unrolled surface have to be in shorter strip.