Portfolio Volume 4 - Selected Technical Explorations

Page 1

V O L U M E _ 4.0.py subtitle

= Exploring Means & Methods

dateime.now()

= 2018-01-28

subject

= Technical-Portfolio

author

= Patrick_Griffin

23:15:12.001

[1]


Last login: Mon Jan 28 22:24:01 on console MacBook:~ Pat$ python Python 2.7.10 (default, Jul 15 2017, 17:16:57) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin >>> >>> exit() MacBook:~ Pat$ MacBook:~ Pat$ cd desktop MacBook:desktop Pat$ python ./bio.py

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

def main(): print name

P ATRICK G R I F F I N personalinfo = 'birthday' 'hometown' 'hobbies' }

{ : : :

07.21.1995, Chicago, Sailing, Video Editing, Piano,

personalinfo['hobbies'].append("...sometimes coding") # i'm not that good at it yet contactinfo = {'phone', 'email', 'website', 'location'} for key,val in contactinfo.items(): print("{ } = { }".format(key, val)) 'phone' 'email' 'website' 'location'

: : : :

773.870.0823, pat.c.griffin @ gmail.com, https://www.patrickcgriffin.com 38.958, -95.250, +309m

if __name__ == "__main__": print("bio.py = complete") else: print("bio.py is being imported into another module")

bio.py = complete MacBook:desktop Pat$ _


MacBook:desktop Pat$ python ./foreword.py

1 print ("Hello, World") 2 3 Hello, World 4 5 # A Simple Program 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

''' "Hello, World" are often the first words used in a new programming language to illustrate basic syntax and sophistication of a simple program. It allows a newcommer to see the inner workings of software and begin to understand what happens behind a screen. Throughout my life, it has been the revelation of these construction lines, or how things are made, that have influenced and pushed me further as an individual by challenging me to reconsider relationships that I previously thought were obvious and inutitive and realize this was not the case. In my prior portfolio I had used java as a means of denoting the construction lines that had appeared to me through the project. Upon further learning, I realized java would only help me in arduino and custom hardware applications and abandoned the pursuit so I could try my hand at another language. Python is the chosen tool to expression of this technical portfolio. It is a more straightforward tool and interphases with a breadth of software to allow for custom plugins. Similarly it will allow me to define or outline a process that is the constant between my work, and allow for deeper conculsions to be drawn about what I learned and the nature of how I do research. The "#" is how commenting is done in python - it's not a hashtag. ''' # I hope you enjoy! print("foreword.py = complete")

foreword.py = complete MacBook:desktop Pat$ _

[3]


# education

University of Kansas, Lawrence, KS Master of Architecture Program- M. Arch (In Progress - 2018) Current Cumulative GPA — 3.63

Loyola Academy, Wilmette, IL Class of 2013 Final GPA — 3.7

# t e c h n i c al skills

CNC Operation RhinoCAM, TechnoCNC, Rhino3D, Some MaterCAM, Custom Gcode Prepared

Laser Cutting Universal Laser Systems, AutoCAD, Adobe Illustrator Organized and taug

KUKA Robot Operation Grasshopper export of custom Gcode, KUKA PRC, KUKA Mastering Suite Internship in t

Woodshop Background Tablesaw, Joiner, Belt Sanders, Band Saw, Pannel Saw, and Variety of Hand tools Marvin Hall S

Grasshopper & Python Kangaroo 1 & 2, Lunchbox, DIVA, Flux, Firefly, Weaverbird Independen

Videography and Storytelling Final Cut Pro, Adobe Premier, Some Blender, Some AfterEffects Instructor for m

Graphic and Layout Skills Adobe InDesign, Adobe Photoshop, Adobe Illustrator, Revit Graphic Dialogue Financial officer r

*Custom Hardware and Soldering Arduino IDE, Rasberry Pi, Firefly for Grasshopper Design+Build


# experience

Fabrication Technician - KU Arc/D Woodshop Lawrence, KS [ Spring 2014 — 2018] Worked as a supervisor and as a training resource for all tools and facilities.

Co-op Internship - Gensler Chicago, IL [ Fall 2017 ] Internship and thesis work as part of a 5th year professional option.

Healthcare Architecture Internship - HKS Dallas, TX [ Summer 2017 ] Summer internship as a part of the Healthcare Red Team.

Digital Fabrication Instructor- KU Arc/D Lawrence, KS [ Fall 2016 ] Taught 20 students the basics of Rhino, Grasshopper, and small manufacturing.

R&D Engineer Internship- Zahner Kansas City, MO [ Summer 2016 ] Internship as part of research and development team - emphasis on glass.

Construction Manager - Dirt Works Studio Lawrence, KS [ Spring 2016 ] Academic designbuild program construction oversight

Sailing Instructor - Sheridan Shore Sailing School Wilmette, IL [ Summers 2012 — 2016 ] The best job I'll ever have - coaching sailing with my friends.

# awards

You've Got 5 Minutes Kid - AIA Dallas Museum of Agnotology [ Fall 2016 ] The Museum of Agnotology was selected out of a vast group of projects to be presented at the Dallas Center for Architecture to a group of 40 professionals about using architecture as a catalyst to fight ignorance and misinformation in the world.

Best Student Design Build Projects Worldwide - ArchDaily Sensory Pavilion [ Fall 2016 ] The Sensory Pavilion, a Dirt Works Studio project was recently recognized by ArchDaily Website as one of the "Best Student Design Build Projects Worldwide 2016" publicly on the website and put in a sideshow on the homepage.

Best of Design for Student Work 2016- Architects Newspaper Sensory Pavilion [ Fall 2016 ] The Sensory Pavilion, a Dirt Works Studio project was recently recognized by The Architect’s Newspaper (AN)’s inaugural 2013 Best of Design Awards. They based their judgments on evidence of innovation, creative use of new technology, sustainability, strength of presentation, and, most importantly, great design.

Undergraduate Research Award - University of Kansas Museum of Agnotology [ Fall 2016 ] After being recognized at YG5MK, the school presented an award to further the research on using architecture as a catalyst for social change. This was a financial award and assisted in the expenses for Dallas.

Merit Award for Unbuilt Design - AIA Florida Modular Adaptation [ Spring 2018 ] "Adaptation strategies for Urban Areas in the Costal Zone - Brooks + Scarpa with FAU, USC, and KU Schools of Architecture" was recognized in the spring of 2018 as one of the 2017 award winners. Work Completed during fall of 2016.

[5]


MacBook:desktop Pat$ python ./table_of_contents.py 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

def main(): print "table_of_contents" projectlist = { '6-axis_ceramics' : [ ] 'automated_mosaic' : [ ] 'microfractured_glass' : [ ] 'metal_duct_cover' : [ ] 'rammed-earth_formwork' : [ ] 'cnc_zippered-kerf' : [ ] } for key in table_of_contents.items(): key.append( projectproperties = [] maxLengthList = 5 while len(projectproperties) < maxLengthList: type = input("What was the context for research?") projectproperties.append(type) tools = input("What tools were used?") projectproperties.append(tools) medium = input("What were the materials involved?") projectproperties.append(medium) people = input("Who was the research for?") projectproperties.append(people) time = input("When did the research happen?") projectproperties.append(time) ) for key in table_of_contents.items() print("{ } = { }".format(key, val)) if __name__ == "__main__": print("table_of_contents.py = complete") else: print("table_of_contents.py is being imported into another module")


table_of_contents

6-Axis_Ceramics partner project [+ Nate Kaylor] KUKA AGILUS 6 robotic arm percelain, terracotta Paola Saguanetti-Rivas Spring 2017

automated_mosaic Individual Research Grasshopper, Illustrator Print John Trefry / Inside the Castle Summer 2017

microfractured_glass Individual Research 75W ULS Laser Cutter Glass Panel Ben Brown / KU Craftshop Spring 2017

Metal_Duct_Cover partner project [+ Perry May] Grasshopper, Rhino Digital, Punched Metal Zahner R&D Summer 2016

Rammed-earth_Formwork Personal Focus / Group Project Grasshopper, KUKA, Hotwire Foam, Concrete, Rammed Earth Chad Kraus, Craig Long Spring 2016

Plywood_CNC-zippered-kerf Individual Research Techno CNC 3-Axis Mill Baltic Birch Plywood Paola Saguanetti-Rivas Spring 2018

[7]



6-Axis_Ceramics

[9]


MacBook:desktop Pat$ python ./6-Axis.py

Ceramic

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

import import import import

Math, sys Ceramics_Team Custom_Extruder Robolab

def main (): print ("6-Axis_Ceramics",{ }).format(material)

an inorganic compound, non-metallic, solid material comprising metal, non-metal or metalloid atoms primarily held in ionic and covalent bonds. dir (Ceramics_Team) [Patrick Griffin, Nate Kaylor] + [Paola Saguinetti-rivas, Kadim Al-Asady] dir (robolab) [6-axis-KUKA, hotwire, router, white-board, central-location] print (inquiry)

How do the advent of 6-Axis Extrusion and the material properties of Clay Body, afford new opportunities in formal experimentation? Resolution = input("Does it have higher fidelity to alpha?") Form-Exploration = input("Can new shapes be made?") Gravity = input("Does it need to be layered, or can it stand?") Modularity = input("Can it be printed in parts?") ''' In the Spring of 2017 the 'cermaics team' formed - composed of two students (Patrick and Nate) and two teachers (Paola and Kadim.) The team was formed out of a desire to prototype and identify a workflow for 3D-Printing with Concrete using the Robotics Lab. The goal of the semester was to use Clay Body (porcelain and terracotta) as an analog for concrete until a dispenser system for the concrete could be identified. With this in mind, the semester began with a groundwork exploration of layering clay (typical 3D printing) and some material exploration to identify feeds, speeds, and pressure required for extrusion. Later work was a attempt at identifying ways that printing could be achieved outside of convetional methods due to material strength and other properties. The following is documentation of this exploration in custom toolpathing, custom hardware design, formfinding, and which ultimately resulted in the design of a workflow and process for printing with clay and materials of similar viscosity. '''

''' This documentation reflects the work of everyone involved, due our number and process, it would extremely difficult to distiguish ownership any single idea. '''


56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

from ClayTests import p-data def displaystats ( print-id ): if print-id in d.p-data(): print ("Name: ", p-data[print-id][0], '({})'.format(print-id)) print ("Made: ", p-data[print-id][1]) print ("Clay: ", p-data[print-id][2])

metrics = {'Force': ,'H20': ,'speed': ,'nozzle': ,'Layer': } itteration = 5 while len(metrics.value()) < itteration: for key, value in p-data[print-id][3].items(): metrics[itteration - 1] = value print(metrics.format(key, val)) return

[ 11 ]



Automated_ Mosaic

[ 13 ]


MacBook:desktop Pat$ python ./mosaic.py

Mosaic

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

import Math, sys import theFtext from grasshopper import doodlebug import mosaic def main (): print ("mosaic",{ }).format(material)

an image or pattern produced by arranging together small colored pieces of hard material, such as stone, tile, or glass set in mortar. dir (theFtext) [Douglas Lyman] + [John Trefry (inside the castle)] dir (doodlebug) [automate-adobe-illustrator] print (inquiry)

How can digital tools be used to automate an analog process and allow for artifacts to occur due to processing? Resolution = input("Does it have higher fidelity to alpha?") Process = input("Does it reflect how a physical mosiac is made?") Artifacts = input("Does it allow for notable anomalies?") Beauty = input("Is the final image beautiful?") ''' '''

''' This documentation reflects the work of everyone involved, due to the process, it would extremely difficult to distiguish ownership any single idea. '''


56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

from Mosaictests import m-data def imagestats ( print-id ): if print-id in d.p-data(): print ("Name: ", p-data[print-id][0], '({})'.format(print-id)) print ("Made: ", p-data[print-id][1]) print ("type: ", p-data[print-id][2])

metrics = {'size': ,'points': ,'time': ,'colors': ,'edges': } itteration = 5 while len(metrics.value()) < itteration: for key, value in p-data[print-id][3].items(): metrics[itteration - 1] = value print(metrics.format(key, val)) return

[ 15 ]



Microfractured_ Glass

[ 17 ]


MacBook:desktop Pat$ python ./glass.py

Glass

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

import import import import

Math, sys Shop_staff Laser-cutter Laserlab

def main (): print ("Micro-fractured_glass",{ }).format(material)

an inorganic compound, non-metallic, solid material comprising metal, non-metal or metalloid atoms primarily held in ionic and covalent bonds. dir (Shop-staff) [Ben Brown] + [Patrick Griffin] dir (laserlab) [ULS 75W Lasers, 3D Printers] print (inquiry)

How do you Laser Etch a material that's Transparent and very Brittle? Resolution = input("Does it have higher fidelity to alpha?") Form-Exploration = input("Can new shapes be made?") Gravity = input("Does it need to be layered, or can it stand?") Modularity = input("Can it be printed in parts?") ''' '''

''' This documentation reflects the work of everyone involved, due our number and process, it would extremely difficult to distiguish ownership any single idea. '''


56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

from ClayTests import p-data def displaystats ( print-id ): if print-id in d.p-data(): print ("Name: ", p-data[print-id][0], '({})'.format(print-id)) print ("Made: ", p-data[print-id][1]) print ("Clay: ", p-data[print-id][2])

metrics = {'Force': ,'H20': ,'speed': ,'nozzle': ,'Layer': } itteration = 5 while len(metrics.value()) < itteration: for key, value in p-data[print-id][3].items(): metrics[itteration - 1] = value print(metrics.format(key, val)) return

[ 19 ]



Metal_Duct_Cover

[ 21 ]


MacBook:desktop Pat$ python ./glass.py

Metal Duct Cover

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

import import import import

Math, sys Zahner_staff Metal-Punch R&D Knowledge

def main (): print ("Metal Duct Cover",{ }).format(material)

a vent cover through which air is blown into or out of a room for circulation back to the central heating or central air conditioning. dir (Shop-staff) [Perry May] + [Patrick Griffin] dir (Metal-Punch) [Union Steel Workers, and Metal Punch] print (inquiry)

How do you bitmap a gradient onto punched or stamped metal? Resolution = input("Does it have higher fidelity to alpha?") Form-Exploration = input("Can new shapes be made?") Gravity = input("Does it need to be layered, or can it stand?") Modularity = input("Can it be printed in parts?") ''' '''

''' This documentation reflects the work of everyone involved, due our number and process, it would extremely difficult to distiguish ownership any single idea. '''


56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

from ClayTests import p-data def displaystats ( print-id ): if print-id in d.p-data(): print ("Name: ", p-data[print-id][0], '({})'.format(print-id)) print ("Made: ", p-data[print-id][1]) print ("Clay: ", p-data[print-id][2])

metrics = {'Force': ,'H20': ,'speed': ,'nozzle': ,'Layer': } itteration = 5 while len(metrics.value()) < itteration: for key, value in p-data[print-id][3].items(): metrics[itteration - 1] = value print(metrics.format(key, val)) return

[ 23 ]



Rammed-Earth_ Formwork

[ 25 ]


MacBook:desktop Pat$ python ./rammedearth.py

Rammed Earth

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

import Math, sys import dirtworks-robotics-team from robolab import hotwire import formwork def main (): print ("rammedearth",{ }).format(material)

compressing a damp mixture of earth into an externally supported frame or mold, forming either a solid wall or individual blocks. dir (dirtworks-robotics-team) [Craig Long] + [10 Designbuild Students] dir (formwork) [modularity, cost, formal opportunities, labor] print (inquiry)

How can formwork be created to sculpt a material made by applying vast ammounts of pnumatic pressure? Resolution = input("Does it have higher fidelity to alpha?") Process = input("Does it reflect something repeatable") Mass Timber = input("Does it use wood?") Carbon Sequestration = input("What is the carbon footprint?") ''' As a collaboration between the robotics lab and Dirt Works Studio, I was tasked with coming up with an implementation or opportunity for collaboration between the two entities. The solution was this: to use the hot wire on the robot to cut foam inserts for formwork so that we could produce a new wide array of shapes with the material. After significant challeneges with the neumatic rammers and compression issues up against low strength foam, we realized that designing the column, our primary structural element, with this new form of making was perhaps too ambitious. The collaboration later developed off of the constraints of the sensory pavilion, that it needed to include a place for a bronze bust. A few students collaborated to develop a bust for the sculpture outside of the pavilion. Some were meant to reflect Noguchi's art, others were just platonic shapes made from an interesting material. '''

''' This documentation reflects the work of everyone involved, due to the process, it would extremely difficult to distiguish ownership any single idea. '''


56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

from Mosaictests import m-data def imagestats ( print-id ): if print-id in d.p-data(): print ("Name: ", p-data[print-id][0], '({})'.format(print-id)) print ("Made: ", p-data[print-id][1]) print ("type: ", p-data[print-id][2])

metrics = {'size': ,'points': ,'time': ,'colors': ,'edges': } itteration = 5 while len(metrics.value()) < itteration: for key, value in p-data[print-id][3].items(): metrics[itteration - 1] = value print(metrics.format(key, val)) return

[ 27 ]



# spiral evolution

01_90°-twist

04_360°-twist(linear)

# prototype-I

One of my first parametric exercises ever came in the spring of 2016. I had to generate a column design that was a composite of rules surfaces, so that it could be made with the hot wire using the medium of foam.

02_360°-twist

05_360°-twist(parabolic)(chamfer)

03_non-manifold(null)

06_270°-twist

the image on the left depics a 90° twist column made from rammed earth. we cut the foam positive, cast concrete around it, removed the foam, and then rammed inside the concrete negative.

[ 29 ]


72 def main (): 73 print ("HANDCRAFT",{ }).format(CRAFT) 74 75 76 77 78 79 80

in the age of perfect duplication, and dying handcraft, where is the mark of the mind?

# made by brain, not hand

Noguchi was an excellent sculptor, but an even better artist. I make this distinction because while his craft is second to only perhaps a few, his statements through his work are second to none. it was this statement and thoughtfulness that we attempted to emulate using our robotic tools. Some of his work was extremely raw, and almost indecipherable from a natural formation other than the occasional clearly unnatural mark- rhythm, square corners, sharp linear edges - intention. We began with several shapes, each with the path carved in, and gradually moved to things that where less clearly developed. Each corner was truncated twice to disguise the square form, but also make it look like an object from the earth. Along some corners you will see rhythmic cutouts. It was my intention that in a world with no mark of the hand, there must be some way to identify intention; the mark of the mind.


[ 31 ]



[ 33 ]



Plywood_ Zippered-Kerf

[ 35 ]


MacBook:desktop Pat$ python ./rammedearth.py

Zippered-Kerf

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

import Math, sys import independent-research from craftshop import cnc-mill import kerfing def main (): print ("zippered-kerf",{ }).format(material)

subtracting material between teeth so that rigid sheets of plywood may be bent and placed into symmetrical compression (like a dovetail) with eachother. dir (independent research) [Patrick Griffin] dir (kerfing) [milling, spacing, compression, tension, forces] print (inquiry)

How can plywood be bent easier; using less time and energy than molds and forms? Resolution = input("Does it have higher fidelity to alpha?") Process = input("Does it reflect something repeatable") Mass Timber = input("Does it use wood?") Carbon Sequestration = input("What is the carbon footprint?") '''

'''

''' This documentation reflects the work of everyone involved, due to the process, it would extremely difficult to distiguish ownership any single idea. '''


56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

from Mosaictests import m-data def imagestats ( print-id ): if print-id in d.p-data(): print ("Name: ", p-data[print-id][0], '({})'.format(print-id)) print ("Made: ", p-data[print-id][1]) print ("type: ", p-data[print-id][2])

metrics = {'size': ,'points': ,'time': ,'colors': ,'edges': } itteration = 5 while len(metrics.value()) < itteration: for key, value in p-data[print-id][3].items(): metrics[itteration - 1] = value print(metrics.format(key, val)) return

[ 37 ]


The Way it Should Work

The adjacent graphic is based on a sketch by Victor Leung that details out the variables present within the system and geometry.

D Θ

X - Skin Thickness The thickness of the remaining face leftover that flexes to achive the bend.

Lt

Y

Li Le

Θ - an angle "A" is the angle between the slope oof the teeth and perpendicular D - a distance "D" is the distance between teeth or how often the centerline is divided.

x

D Θ

x Lt

Y

Li Le

Figure 1.0 - Curved Construction lines

Y - Tooth thickness The thickness of the solid portion that interlocks to create a rigid solid form. Lt - Length of Tooth The distance from one side of the base of a tooth to the other. Li - Length of Internal Skin The distance from one tooth to another on the inside face of the system. Le - Length of External Skin The distance between teeth, similar to "Li" but projected to the outside face of the system. Mc - Material Compression This variable accounts for the compression or stretching of the wood due to bending stress.

Lt

Li Le

Figure 1.1 - Flat Construction Lines


Figure 1.2 - Offset Curve Prime

Figure 1.3 - Divide Curve Prime

The first variable in the system is how thick the 'skin' or flexible portion of the bend should be after removing material - this is tied to the original input

The second variable is how frequently the teeth should be spaced along the centerline profile.

Figure 1.4 - Create Perpedicular Vectors

Figure 1.5 - Rotate Perpendicular Vectors

After spacing is determined, vectors perpendicular to the centerline profile or prime curve are calculated to create a basic tooth form.

After the perpendicular vectors are calculated, they are adjusted in an alternating pattern to create the wedge shape in the teeth which ultimately allows

Figure 1.6 - Intersect Alternating Vectors

Figure 1.7 - Sort Leftover Geometry

Trim alternating vectors to create tooth edges. Then use the tooth edges to shatter internal skin curve and create the tops and spacing between teeth so the form may be unrolled.

Final Assembled Geometry

[ 39 ]


True (1) False (0) False (0) True (1)

0 - branch 1 0;0 - item “Aa” 1 - branch 2

pattern Tree A Tree B

Python

Tree A

No Errors

out Q

1;0 - item “Bb”

1 - branch 1 1;0 - item “Ab” 1;1 - item “Bb” 1;2 - item “Cb”

0 - branch 1 0;0 - item “Ab” 0;1 - item “Bb” 0;2 - item “Cb”

2 - branch 3 2;0 - item “Db” 2;1 - item “Eb” 2;2 - item “Fb” 2;3 - item “Gb”

1 - branch 2

Figure 1.9 - The Script Though it could be more efficient with resources and processing, it gets the job done.

0 - branch 1 0;0 - item “Aa”

Tree B

1;0 - item “Db” 1;1 - item “Eb” 1;2 - item “Fb” 1;3 - item “Gb”

Tree Q

Figure 1.8 - Weaving Data Trees Because there were multiple processing methods, it became important to be able to sort the data back into one structure that would work for all of

4 - branch 4 4;0 - item “Bb”


pattern boolean list equal to total number of branches (on all trees)

Tree A DataTree with mulitple branches

pattern Tree A Tree B

Python

Error message log

out Q

Tree Q New DataTree composed of all former branches in 'pattern' order

Tree B DataTree with mulitple branches 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

import ghpythonlib.components as ghcomp import Rhino.Geometry as rh from Grasshopper.Kernel.Data import GH_Path from Grasshopper import DataTree tree = DataTree[object]() #new empty data tree asteps = 0 bsteps = 0 while asteps+bsteps <= pattern.Count-1: if bool(pattern[asteps+bsteps]) == True: tree.AddRange(treeA.Branch(asteps),GH_Path(asteps+bsteps)) asteps += 1 elif bool(pattern[asteps+bsteps]) == False: tree.AddRange(treeB.Branch(bsteps),GH_Path(asteps+bsteps)) bsteps += 1 else: print "...you're fucked" Q = tree

[ 41 ]


Skin Thicness Material Thickness Tooth Thickness Tooth Width Tooth Side Angle Milling Hardware CNC Offset Spacing Adjustment

: : : : : : : :

1.35mm 17.55mm 8.4mm 15.4mm 17ยบ 3.6ยบ taper N/A 0.00


Skin Thicness Material Thickness Tooth Thickness Tooth Width Tooth Side Angle Milling Hardware CNC Offset Spacing Adjustment

: : : : : : : :

1.35mm 17.55mm 8.4mm 15.4mm 17ยบ 3.6ยบ taper N/A 0.00

[ 43 ]


Figure 1.10 - Mitering the Edge In order to accentuate the aesthetic of teeth interlocking, opposing mitered edges were applied

Figure 1.11 - The Rail System Due to the torque put on the teeth due to the parallel finishing path, and because of the up-cut fluted bits being used, edge rails offered the rigidity


Figure 1.12 - Glue-up In a rapid fury of blind ambition and total ignorance, I attempted to make a chair without coding or

Figure 1.13 - Assembled In a rapid fury of blind ambition and total ignorance, I attempted to make a chair without coding or

[ 45 ]


Figure 1.14 - Flexibility & Thickness In a rapid fury of blind ambition and total ignorance, I attempted to make a chair without coding or knowing if the process would work on plywood. The results speak for themselves.


Figure 1.15 - Assembly The angle of the teeth play a key role in how assemble-able the overall form is at the end. if the teeth are too tight and too tall, the teeth can not be put together without colliding. Too large and the curve is very fragemented.

[ 47 ]


contact

farewell

= www.xGRIFFIN.com

Let me know what you thought about it?

I hope you enjoyed it.

= Thank You For Reading!


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.