GENERATIVE ALGORITHMS
(eel Nelea SEU =a MeN SAWN cy
ZUBIN KHABAZGENERATIVE ALGORITHMS
CONCEPTS AND EXPERIMENTS
1_WEAVING
ZUBIN KHABAZI
(© 2010 Zubin Mohamad Khabazt
This book produced and published digitally for public use. No part of this book may be reproduced in any manner whatsoever
without permission from the author, except in the context of reviews,
To see the latest updates visit my website or for enquires contact me:
www. MORPHOGENESISM.com
[email protected]Generative Algorithms, Concepts and Experiments
Introduction to the Series
“Generative Algorithms which published on-line, was aimed to biing forward subjects and concepts on
geometrical isses elated to architectural design and some basic experimentsusing paramettic modeling
and algorithmic approach with Grasshopper. Snce then, readers of the book while got involved with
different projects, have asked for help on topics, methods solutions and defintions and proved that
Grasshopper is fast growing and more detalled resources to disuss contemporary subjects of desgn are
needed. That's why | sarted these series of ‘Generative Algorithms, Concepts and Experiments’ through
which Iwant to share some specific areasof knowledge and my researches and achievements in design
with algorithmic approaches.
‘The subject and method comes trom a seriesof global communication with readers while | realized a gap
yetween Themes, approaches, and methods in geometry with final products. We can simply find ots of
imagestrom these algorithmic experimentsin webbgsand websites because of the availabilty of toolsin
digital realm (CAD and Algorithmic/ Parametric 30 softwares) but the eashess of this production, or their
availabilty, sometime causes contusion, sometime shows lack of sufficient knowledge about the inherent
properties of these systems or possb ltias of their material outcome / Fabrication and als performances
which can be achieved ftom them. in this stuation, studies on the albject, physical experiments and
obsenvations and searching for different algorithmic solutions could be the minimum requirements to
understand these gystemsand to be able to implement them into our design fields
In this seves, ‘Generative Algorithms, Concepts and Experiments’, | am trying to search for concepts and
methods, combine physeal and digital experiments on topics that seem “Generative” as prototypes for
posible applicationsin architecture, to extend the catalogue of available systemsand methodsin design.
hope thes» experimentsbenefit your design issuesor line of research, asmine.
Good ck!
‘Zubin M Khabazi (\teaer of meigent Technobgiesand Design / AA)
Notice: Going all the way through to the details of projects | assmed you already have the base
knowledge of how to work with Grasshopper which I believe by now, you have gudied “Generative
Algorithms and you know what does '
’, ‘Domain’ or ‘Vector Amplitude’ mean, otherwise
check the ‘notes’ section of thisbook.Contents
1_Generatice Algorithms, Conceptsand Experiments 1_Waeving..
11 Introduction: 5
1.2 Weaving.
2 Loom Project.
2.4 Where should start? 9
2.2 How should weave?..
2.3 The Loom Algorithm...
3 Jacquard Weave 20
3.4 Jacquard Loom.
3.2_Principlesof Operation ina Jacquard Loom
3.3 Jacquard Loom Project. 2
3.3.1 Pattem of Weaving...
3.3 2 Target Space/Form of Weaving ..
3.3.3 Potting Pointsonto Target Surface.
31
3.3 4 Weaving Target surface by Pattem.
3.3.5 Yarn Geometry Generation... os sii 46
4 Concluson..
54
Note:1.wiaeving
1_Generatice Algorithms, Concepts and Experiments_1_Waevin
Parametric Geometty & a powerful tool and even more, a methodology in dedgn, in auch a way that
claimed asa syle: Parametricisn. *We pursue the parametric desgn paradigm all the way, penetrating
into all comersof the discipine, Systematic, adaptive variation, continuousdilferentiation (rather than mere
variety), and dynamic, parametic figuration concemsal design tasks from urbanisn to the level of
tectonic detail, interior fumishings and the world of products...ontemporary avant-garde architecture is
addressing the demand foran increased level of articulated complexity by meansof retooling its methods
on the bass of parametnc design gems The contemporary architectural syle that has achieved
pewasive hegemony within the contemporary architectural avant-garde can be bes understood as a
rewarch program based upon the parametric paradigm. We propose to callthisstyle: Parameticism.”[1]
‘The notion of parameticism stated with the advancesin computational geometry and digital tools (both
software and hardware) and developed through lots of design projects In CAD spaces and resulted in
loads of images and conceptsin digital pace which was let's say, fist phase of the parametricism. But
‘s00n after that, pursuing these concepts and ideas in practice, potentials of this new method leads
architectsto transler properties of dmple material systems into base computational congnucts in order to
use their potentials as generative logics and small scale components in really. Under the influence of
methods and techniques of parametricisn, these g/stems proliferated on larger spans and set up a new
system of material outcomes based on real physical, small scale constucts The shit that we encounter in
Parametricism now, isftom Top-Down, resut-based design to a Bottom-up, system-development approach
which embed properties of material stem as parameters of larger scale products which demonstrate
quaiitiesof underlying material system [2] and sometimesmore. [3]
Fo.1.1. Experiments with ‘Hartened Pneumatics’ leaded to explore potentials of woven products and
weaving algorithmsin orderto transfer materialpedormancesinto parametric computations
In order to transler a material system into digital parametric realm, one needs to study and observe the
system in different levels to understand its behavior, its inherent properties which is affected by material,
geometry, shape, ... and if needed, its sructural behavior, physicaland chemical specifications and © on6 | 1 ceneratce Algortims, Conceptsand Experiments 1 Waeving
and so forth. & thisisnot just transformation of geometry, but it encountersthe implementation of material
behavior into a digital product which isparameterized by ts own properties That'swhy careful studies and
analydsistied up with this level of parametricisn and ‘Generative Algorithms, Concepts and Experiments
also follows this method by a research and desgn approach.
Fig.1.2. Development of digital parametric models based on remarches on ‘Hardened Pneumatics,
experimentsat EnTech Sudio, AA school of architecture, London.
1.2 Weaving
‘Among the broad catalogue of material systems, handmade old-to-new products biological and natural
systems and s0 on, weaving is one the concepts that sounds easy enough to be explored as a base
consiuct that can be used in parametric notion, and complicated enough, to be the generator of
complex hierarchical systems. Because of the intrinsic propemties of the fabric which makes it free-form
object, yet comprised of small continuous element, its trandormation into digital algorithmic space would
be helpful for development of simiar free-form surfaces with the same properties and a generative logic
behind.
Fig.1.3. Fabrics are close to our body in everyday ite. They are flexible, sot and delicate with different
pattems cobrs and they accept various methods of desgn. While they cover our bodies they have
potential to cover spaces as well; without any prediction about functional or structural abity, their sytem
and concept worth looking closer, in detail7 | 1 ceneraice Algostims, Conceptsand Experiments 1 Waeving
Weaving described as a systematic interlacing of two or more elements to form a structure [4]. More
specific, in fabric or cloth, there are setsof parallel yams called Warpsthat are being interlaced by a filing
yam called Wett in a process of weaving. This process has been done by a device called ‘Loom’
According to Webster, a Loom is'a frame or machine for interfacing at right angles, two or more sets of
threadsor yamsto form a cloth. [5]
The Process of weaving, using a loom machine can be described in a repetitive three stage operation: 1
Fist stage is Shedding. Shedding is the rising of a group of wamps (dmpled is every other yarn) to make a
‘Shed (an empty space between raised and unraised yams) through which the fling yam (weft) passeswith
a device called Shuttle. The yams are hung by Heddleswhich are connected to Hamesses that move up
and down and make sheds repeatedly. 2. Second stage is Picking which refersto the single crosing of the
shuttle (that contains the weft yam) from one side of the loom to the other side. This part lays down one
layer of welt between raised and unraised warps 3. Third stage is Battening. In this tage another frame
called Reed, pressesor battens he filing yam (weft) to make the fabric. i tightensthe welt into the edge
of fabric (woven part) and not-yet-woven warps Thisline between the woven fabric and the rest of wamps
called Fell. The rest of the processisthe same. The hamessesshould move (at lea one up, one down) and
‘a new shed would be created and picking and battening and = on. (6)
ig.1.4. Loom machine, Wampsand Weftsand a woman who weavesfabric !
Based on techniquesand machineries, different typesof textile can be woven. Three base typesof textile
weaving are Plain weave, Satin Weave and Twil weave. For example it depends on the number of
harnesses that can raise the warpsat each time or the offset pattem of weftswhen take tum to go under
orabove warps,8 | 1 ceneraice Algorttms, Conceptsand Experiments 1 Waeving
Weaving isnot Imited to fabrics. Basketry isanother branch which isweaving of natural fiberslike leavesto
create baskets and bags and other types of holding and containing tools Weaving could be range from
‘smooth fabricsfor clothes up to tough ones for making tents and harder onesin basketsand even more in
wallsand fenceswith metals. Today, more than just type or material, there are other functionsthat canbe
achieved by fabrics ike ETextiles which are aimed to perform disributed sensing or computing actionsin
small scalesingde the structure of a textile. (7]9 | 2toompoicct
2.loom Poject
The aim of this chapter is to set up an algorthm (using Grasshopper as plattorm) that works as a loom
machine and weaves virtual textiles In order to set up the algorithm, to simulate textile, concentration on
operation of the loom is needed because properties of the final product (Textile/Fabric/Cloth) are
dependent on this operation, In fact vatious types of fabrics are aswciated with looms which work
differently and result in multiple products Invesigations of weaving and loom machines sarted by sudies
and experiments with a smple plain-weave loom machine which would resull in a smple Crise Cross
pattem.
Fig.2.1. ‘Weaverat the loom’ by Vincent Van Gogh.
2.1_Where should sat?
The algorithm is aimed to be versatile, and not limited to weave flat-tensioned fabrics This concept
wanted to be customized, used in different stuations and as. generate congruct for various purposes.
‘S what isthe final product and how final geometry can fitsinto that?
Textiles are usally flexible, free-form objects They can get any shape based on their postioning. itis
noticeable that asnon-elastic solid objects creases and folds appear when fabiics get complex foms,
different than their base intial flat shape, but even consdering these folds, lel’s define them asfree-form
aurfaces In geometrical tem, let's define the general form of textile (final state of product) as a NURBS
surface in the algorithm,
it should be noticed that any form of surlacesmight not be achievable by a single piece of fabric because
of the creases and folds that mentioned before and to get special forms, Cutting-Pattem needed. This is
what talorsdo when they want to make dresses rom fabric. But in order to set up an algorithm here, since
there isnot any fabric and the algorithm aimed to weave i, weaving any free-form but one piece NURBS
surface asumed posible10 | 200m reject
2.2 How should weave?
‘Textile as mentioned, in its smplet construct, has two sets of parallel yarns, which are orthogonal and
interlaced into each other. Looking closer into its aructure, small wavy threads can be seen going up and
down of other pempendicular sets of threads endlesdy. Based on the precision and smoothness of the
textile, wavy pattem of threadsshould be visble in warps, and wefis should be straight, but in rough fabrics
orfor example in baskets, elementsare both wavy, interweaving each other.
Yams are badc ingredients of weaving textiles. Yams ‘conssts of fibrous matter astwised together during
the processof spinning’ [8]. Aber materials can be natural or synthetic. They include wool, nen, cotton, sik,
acyylic, polyester and s0 on. Sendemess snocthness and other properties of yams affect the behavior of
the textile.
Fq.22 Any sngle war (if welts imagined as straight geometries has a wavy form while though its
comugation goesabove and under the welts
2
Fg.2.3. Geometrical analyss of waved warpsand weftsin a digital textile constrict. Both warps and wefts
are comugated forms which go above and under each other repeatedyy11 | 200m peject
it seems that if the algorithm generates wavy objects (ike pipes or cyinders) upon the final-state NURBS
aurtace of the algorithm, the product meets the basic quaities that one might ask for desgning a digital
textile
2.3 The Loom Algorithm
Let's gant the algorthm by an overall view to its process and flow of information. The input geometry which
isa NURBSaurlace shoud be introduced to the algorithm. Warpsshould be generated in itsU direction and
welts in V direction, Each warp or welt is look lke a sne graph, a corrugated curve or equivalent sold
geometry. In order to draw thes curves a lis of points needs to be provided for each one. These points
are disributed across the surface in its certain U and V iso-curve postions and goes up and down the
aurface in its normal direction. Foints would move repeatedly in an order ike one point up, next down, then
up. down, up, down... and goes on to the edge of the surface. There are two important points in their
sructure
1. Every warp (or welt) if started with a point UP, the next row would start with a point DOWN. This
meanshaif a module shift of comugation in each row ishappening.
2 At any point on the aurface, if the point moves +A in the direction of the surface nomal to
generate a point fora warp, it should move -A to generate a point for associate welt on that point
(and vice-versa}
Based on the above conception, the algorithm in Grasshopper can be developed astollows:
Fig.24. start the algorithm, as mentioned before, a geometry component is needed to
introduce the general form of final digital textile to canvas as a NURBS surface. it renamed to
.12 | 200m poject
Fig.2.5. The is d based on the number of wampsand welts defined by two
and connected with two . With this component, ‘Divison Points’ and
‘Normal’ of the surface at thos divison pointsare accessble.
Fig.26. Asmentioned earler, division pointshave to move above and under the surlace to generate points
for waps and wefts Tb do that, group of vectors wih a value that is should be
generated (this value defines the amount of displacement of points from the aurface). The
component here isF.X) =-X (which setsthe displacement value in other direction of the surface). Here by a
component @ group of numbers comprised of displacement vakies or comigation height in
postive (+) and negative (-) vakiesare generated.13 | 2t00m reject
Fig 2.7. Wamp Generation. With this part of the algorthm all points needed for curvesas.axis of threadsare
generated. A component, asit sounds repeats the pair of displacement postive and negative
values it repeatsdata with the number of wefts (the numbersof pointsin each warp isequal to number of
welts. These values used to set the of normal vectors of target surtace once directly and
another time by their negative values (Rx) = -x). That's because to generate another set of curve'spoints
whose samt point is opposte. Although it generates two sets of points for each warp, since for each row,
the postion of fist pont should be diferent than previous and next one (if previous and next one are
above the surface, it should be under the surface) s0 by this technique, point sets are generated for both
stuations but then would be ed every other one to get the desred cures with opposte stan points
Finally all sibdivison pointsof the surface (Via ) are moved with both vector groups
Fig.2.8. All subdivison points ( connected to Pport of ) are moved with both setsof
vectorsand one group of displaced pointsisselected. The most important point is when using a repeated
Ist of both postive/negative heights.as vector values the order of pointsis one UP, one Down,14 | 200m poject
Fig 2.9. Asa result, d points connected to components two sets of minored curves
as axis of threads in the postion of warps would generate. Now thew lits should be components has been used and then by two with inverted Boolean values all
Axis Curvesfor warps which are comugated and shited half a module in each row are achieved.
Fig 2.11. The overallview of the Loom algorthm for the warp generation part.15 | 210m poject
_Weft Generation
a ———_
Fig 2.12. for the next part of the algonthm different methods and techniques has been examined to
generate welts As component, amangesdata in branches based on Udwvision, data needed
fo rearange in order to branch by V direction. Here, to soWve the problem in an easy way, the
copied in ils place and its U and V direction swapped in Phino. So by using the same
sepsasforwams weftscan be generated.
‘h order to do this following steps in Rhino should accomplish:
1. Sect the Target Surface
2 Type folowing commandsin Phino command ine.
Copy (Enter)
(Eten
Dir(Enten)
S(Enter)
(Enter)
(hes commands copy the surface into is orginal place (i), then by swapping UV
direction (9 of the surfaco a surface with replaced Uand V directions but with same so
and postion would generate)
3. Assign this new surface to the second geometry component which is renamed to
.16 | 200m poject
Fig 2.13 Here again this suface subdivided. Notice that the Upor, of the isconnected to the
numberof weftsand the V por, to the number of wapsand the data for vector valuesis ed by
the numberof wamsthistime. The rest of the algorithm isthe same.
Fig 2.14. Both stdesof the algonthm look the same forwampsand wtts17 | 200m Poject
Fig. 2.18. Be aire that for -
Fig.2.16. The last bit. Tweadsare aimed to simulate aspipes® theirradiusor the thicknessof threads should
be wt, here manually controlled by a sider.
Fig 2.17. connecting allcomponents containing cuvesto a with a manually controlled radiuswhich
is componentsand s different thickness values for wampsand wefts aswel18 | 200m Poject
Fig 2.18. The Overall bok of the Loom Algorthm which weaves. digital textile with a plain weave format.20 | 9 Jecquarc weave
3. Jacquard Weave
Although the loom algorithm accomplished simple plain-weaving, it was the simplest technique to weave
textile. in the history of weaving, people's desire to achieve more colortul, more interesting textiles with
different pattems, pushed the industry and inventors to work on more advanced machines to be able to
control the pattem of textile, get various productstor different purposes
Development of machineries and tools several looms created in ordar to differentiate the pattem and
ease the production. Fit it was the invention of the iron-cast, powered loom that revolutionized the
industry]. But among different inventions Dobby loom wasone of the influential ones ‘Dobby loom 8 wom in
which each hamesican be manpulaied indvidualy, Disise convas to a teade Wom, where ihe hameswsare attached to 8 number
of afferent readies depending on the weave aructur. [...Dobdy kom A type of bom on which anal geomene fguescan be
woven asin a regular pattem. Orgnaly the type of loom needed a Wobbyboy" who sat on the lop ol the bom and drew up warp
{veadsto tem a patton. Now the weaving Is done entrely by machine. Ths bom dlifers hom a plan bom Mn that f may have up 10
‘hity-wo hamessesand a pattam chain and tsermensve weaving. [10]
Having control over the warps in different groups (attached to muttiple hamesses rather than one), in a
dobby loom itis possble to make pattems in textile by weaving welts through certain groups of warps
instead of arbitrary every other one. Observing this increased degree of control over groups of warps to
weave textiles, Joseph-Marie Jacquard invented a system to faciltate the abilty of the loom for generating
pattemseven more; he invented Jacquard Loom.
3.1 Jacquard loom
bh weaving, device neoporates in specie! looms 10 contro!
‘ndndual wam yams # enabled boms © produce fabres having
Inuicate woven patloms aich 28 tapeary. Decade. and damask
‘and thasalw been adapted 10 the production of pattemed kntied
‘abies He sacqvard em was developed 1 1804-05 by Josp?
‘Mare Jacquard of Fance, but son gread elzowhore. He srz0m
Improved on the punched-card technobgy of acques de
Vaucanen’s bom (1748). Jacquard's loom tied
interchangeable punched cardsthat contoied the weaving ofthe
Cloth @ that any desred pater cout! be obtained automaticaly.
Tew punched canis were adopted by the noted Engksh
Inventor hares &bbage 28 an Rputouput_medum for his
propowd anayteal engine and wer ud by the Ameman
‘Zatecian Herman Holerino teed data to hecensvemachine. (11)
This advanced sytem, has control over every single
yam instead of groupsof them. & asa result, with the
machine that hassingle-end warp control, it became
posible to weave numerous pattems in textile. In
order to get these pattemsin product, they siould be
desgned in a way to trander to the loom by a
medium. The method developed for that was
Punching the pattem in cards Based on those yams
that should be raised, they punched some cardsasa
means of hamess controler whose punched data
became relevant to the actions that machine should
perform (which yams should be raised and which
should remain unraised)
Fig.3.1. Jacquard loom21 | 9 Jacquare Weave
3.2 Piinciples of Operation in a Jacquard Loom
‘Exch hole nthe card comeapondsto a Bou hook which can ether be up oF down. Th hook alesorlowersihe hames whch cames
‘and guitesthe wam tiead thai the weft wiletherle above or below a. The quence of raed and bwered theads ewha! crates
the pattam. Each hook can be comecied vn the hamassto a numberof fyeads aibwing more than one repeat of a pattem. A bom
vein 400 hook head might have fourteadscomected to eachhook reaiting ia labne thats 1600wam enda wife wth ourrepeats
ofthe weave gong aces: [12]
8.3 Jacquard Loom Project
While simple looms operate on an arbitrary fashion and weave a simple pattern, as experienced eatier,
Jacquard looms operate on a sngle-end warp control method which needs a designed pattem to be
transered into machine. Refering to the basic undertanding of smple algorithmic loom machine and its
geometrical necessities an algorithm for the Jacquard system needs following steps to operate on digital
space and weave desied digital textile.
3.3.1 Firt of alla Pattern needed for weaving. Pattem should be trangented into numerical data,
readable by the algorthm, and thisnumeric data should be retrieved to be used in geometry.
3.3.2 A genetic form (tke a NURBSsuface asprevioussmple loom) should be considered asthe final
sate of the resukant geometry. This could be Target Surface.
3.3.3 system should be developed in order to pbt the pattem onto the Target Surface
(considering sale, repetition, ..)
3.3.4 Basc geometiesforyamsof the textile should be generated based on the plotted pattem.
3.3.5 Finally the geometry of digital textile should be created
3.9.1 Pattern of Weaving
As discussed, in earlier Jacquard looms pattem provided by punch cards, associated with hamesses that
controled yams to ral or remain unraised. There wasa special process to make cardsbased on dested
pattems
Fig 3.2. Punch cardsona jacquard loom and examplesof pattem punch cards [13]22 | 9 Jecquarc weave
‘The age of punch cardsis over now. There are multiple ways to desgn a pattem for weaving textile in
digital formats it could be designed manually on paper asa drawing and then tranderred into digital data
or it could be generated digital, with software packages from scratch. Moving into Grashopper
algorithm, data, to represent pattem, can be provided in multiple formats aswel
Ea Fc 27 ND orem a
‘loa se a
RAVAN
verde_freddo 20x12 =:
Fig.3.3. Software Packagesfordesgning pattemsfor fabrics23 | s Jacquare weave
‘Although using softwares to design a pattem isfunctional and interesting, these softwares are designed for
special loom machines and theit output data managed to fit them. In a Grasshopper algorithm, possble
methods to generate a pattern can be asfollows:
1+ Pattem Data asa stream of Booleans (Tiue/False). Boolean valuescould associate with the warps, tell
them which one should be raised, which one not. (Le. TAFT TAT.)
2 Pattem Data as Tables (ie. Excel / bread sheets). Valves on the table (like 0/1) can be associated
with warpsto go up and down,
3 Pattem Data as Graphic reference (ie. Btmap images). These images can be used from extemal
resources tke vigsal output of software packagesor huge amount of graphical referencesof pattems
available in booksor on-line.
Fg 3.4. An ample of graphical pattemstor weaving purposes
4. Pattem Data can be st intemally via avalable Grasshopper componentswhich ismore abstract and
probably numerical (inckides seriesof numbers random values, domains...)24 | 9 Jecquara weave
Discussion and Selection of Method
Although it is posible to provide Pattem Data by codes from Spreadsheets or Boolean dreams or
Numerical Data, but these sourcesof data are abstract and need data-preparation processwhich istough
and sometimes non-sense. Using software packages is aks not viable option for all users. Thes® softwares,
are not free and ea9y to use and their output is suitable for machines, not for any geometrical algorithmic
use. Looking at posible applicationsin Grashopper and available resources in industy, it semsthat using
graphical referencesisa more viable method for algorthmic purposes.
Graphical resources are visual representations of dested pattems which make them more tangible. t is
easy to understand the pattem from graphics rather than code. It iseven easerthan code to provide auch
data, using graphical softwares Athough it might not considered, i isreally important that there are ots of
drawn pattems available in resources {rom printed ones up to ondine that enrich the catalogue of possble
optionsquite a lot
SS SEES BARRE
Fig 3.5. Varouspattems provided digtaly asgraphics (Bitmap images)
_Implementation of the selected method into Grasshopper.
Having asa component in Grasshopper makesit easy to import images into canvas and
art to extract data from them. This useful component isthe base material for pattem-data trandommation
into algorithm in thisexperiment but certain considerations needed
fig.26. The 1 isimportant to plot points onto the center points of cells otherwise
they would gather wrong data
Fig.38. When looking closer to the source image, there
are pixels with mid-tones which might provide wrong
data when the poht of evaluation postions out of the
centerpointof the cell26 | 9 Jecquarc weave
Generating Points for process.
hn order to generate sampling points a grid of pointsneeded. The number of pointsin rows and comns,
should be matched the number of celsingde the image. The eadest way to extract these information from
an image file is to find image sze and each cell dze and then divide image sze by cell size to get the
number of cellsin rows and columns The image dze is easy to read from the file and to find the cellsze, itis
easy to “Crop” a cellin a graphic software and get the cell sze from that image (both szesin pixel).
Fig.3.9. mage sze and Cel sze are set manually (X represents width of the image and Y represents its
height). Dividing image size by cell sze in x and y direction gives the number of cells in each direction.
Using a , FX)=Fix(x) would resut in integers because the number of celsmight be a real number
with decimalsand that happens when the source mage hassme cellswhich are not the same as others
and this stuation mighe accure because source images are generated by different techniques ike
scanning and thes small fauts are probable. it is needed to change the cell sze to real numbers
sometimes, to solve thisproblem.
Having basc ingredients, points should be generated now. Asmentioned before, points should be in the
centerof cells Thismeans that i the frst point shifts half-size of the cellin Xand Y direction it will post on the
centerof the first cell, Now if the ditance between thisfirt point and other pointsin the grid set by cel sze
in both X and Y direction, all points would be in the center points of cells The number of points in each
direction isequal to the number of cellsin that direction, calculated in the previous dep
Although it would be eaderto use a component based on the above description, it isnot precise
‘enough. Here the bes way isto set a domain and divide this domain to get points with more precison.27 | 9 Jecquara weave
Fig.3.10. Hall of the cell ze in X and Y direction used as the start value of the numeric domain (which
means shifting the first point into the first cell's midpoint). On the other hand, Image sze minus cel's half
ze, both in Xand Ydirection, the upper limit of the numeric domain. Dividing these numeric domain by
component wil provide numerical values to generate points The componentsdivided
by number of cels (in each direction) minus one (1) snce range produces N+i values when divides a
domain into N pans.
Fig 3.11. Both componentsare used to generate coominatesfor samping poinisto feed component. Using a component for ¥ vauiesof points, each row of data (pointswith the
same Y vate) wil sort in one data branch. So in esence, the resukant pont grid would have data
branchesasmuch ascellsin Y direction and in each data branch there are pointswith the number of cells
in X direction. Analyticaly this means that if any row of cels asumed asa representative of a wet, each
weit issorted into one branch of data tree.28 | 3 Jacquare weave
Image Samp Settings
SOISCHeeo®
epalate
[C\Users\ZUBINDeskiopy
J) Atoondas
Fig 3.12. Another important bit of the image samping. , Having tesed different techniques for subdividing
this, kotrim --has been selected instead of divide surface (it wil discuss why)
In onder to get sub-surlaces, the domain of the surface divided firs in ts V direction. That's why the U input
of the is set to . Tb divide the V direction here, two factors are important. The
component receives data from the < Cell No_Y Fic from previous part. This
item is arbitrary for subdividing surface and means the pattem wanted to repeat only once, the surface
should be divided at least with the amount of pattem cellsin ts ¥ direction. And if the designer wanted to
control the amount of repettion (Seale of pattem on the ) then it should be multiplied by a
given integer from ema 92 > Gemini 08
Fig.3.18. Subdividing the into sub-aurfaces t.pattem wil repeat once, 2. Pattem wil repeat
twice and 3. Pattem wil repeat three times
“Fig.3.19. In the second sep, previously subdivided surfaces are again divided but this time in their U
direction. So the same concept hasbeen used but thistime their domain divided -using -
by Vat and Usccell.No_X Fix> * component here shows why this process of sub-dividing happened in two steps The
second component and its resultant proves that data has been branched as
‘much as divison factor for V direction, and each data branch, contains asmuch vaties.asdwvison factor
in Udirection.
oO?
(cmmmenlo L — (Gemaanio* — mmastal— 2
ee > (demain 2 ———
th seme soe Cae) a
Fig.320. Sutace subdivison in both Xand ¥(Uand V) directions33 | 9 Jecquarc weave
Now all subdivided surfaces are available in both Uand V (X and Y) directions, it istime to extract points
from them. Considering each subdivided aurface asa cell which can associate with the pattern cells, the
bes point to extract from these aurfacesistheir mid-point.
Fig 3.21. The midpoint of sub-surtaces are calculated by an component which gives the area-
centroid of urfacesaswell. These points then d again on sub-surfacesusing and
in order to have access to both ‘Points and also ‘Normals’ of aurfacesat the same
time.
Fig 3.22. At the end of this phase, al points should be d, using ‘Normaf' vectorsof each point. But
the direction of movement and the amount of movement hasto be set, using data collected in previous
step from pattem image. Asit s stown by a vector component, all ‘Nomal' vectors now have
same direction which does not create any comugation. Here using a vector would define
vector length and its direction (postive or negative) for this displacement. Vatues for amplitude are what
pattem should passto the rest of the algorithm and waiting to be set now.34 | 9 Jecquarc weave
Fig 3.28. Surface Subdivision phase of the algorithm = far.
Why using sub-surfaces instead of divide surface
Using divide aurface in this algorthm would result in points on surfaces that gant from one edge and end at
the opposte one. Thismeans that when pattern repeats, at each border from one complete pattem to the
nest one, last point of the first pattem and fit point of the second pattem would overlap (because their
aurface edges are seamless and connected). But each cell of the pattem shoukd have its own aswciate
Point on the surface and this overlapping would damage the pattem. So itisbetter to use the concept of
‘aurtace subdivison’ and ‘area-centroid’ instead of dividing the surface.
3.3.4 Weaving Target surface by Pattem
The component by AX)=Round(X), all valves are Rounded into their nearest
decimal values which are Oand 1. Now the lst comprised of only 0 and 1 values36 | 9 Jecquarc weave
All Evaluated values from FX=(t t= +1
Xa > RX=(0+0)-t=-1
Haigh of Yorn Corrgatien
Fig.3.27. Fnally, using a component and a , the Ist of vector ampitudesis now ready to
apply on points37 | 9 Jecquarc weave
Fig 3.28 Generation of vectorampitudesasthe result of mage sampling process.
_Matching Data ists
The number of valuesthat the generated © farisasmuch ascelisthat pattem has But
as implemented insde the algorithm, plotting the pattem onto Target Surlace hasa pattem repetition
factor. So while the pattern repeated and reailed in more points and vectors than ofiginal pattem cells,
the lit of vector amplitudesals needed to repeat aswell, to maich the vectors.
Let's preview the stuation in Figure. 3.29 again to have an insight into the ree of the algorithm analytically
Selected sin all three figuresare our target to compare.
1+ In the fied figure, while both sider values are set to 1, the ) and 17 valuesin each branch of data (equal to
the value from )
2 Inthe second figure, the sider set to 2 and doubled the pattem in Y direction. Asa
result, the numberof data paths doubled, but the amount of valiesin each path remained the same.
3 Inthe third image, opposte the previous tep, the sider set to 2 and doubled the
pattem in X direction. As.a result, in thistime the number of data pathsremained unchanged, but the
amount of valuesin each path doubled38 | 9 Jecquarc weave
Fig 3.29. 1.23. comparison of data ructuresin different repetition factors39 | 9 Jecquarc weave
Comparing all these data structuresin order to match vectors amplitude list, lets summarize everything: by
repeating pattem in X direction, the values for vectors’ amplitude should be duplicated insde each
branch while repeating pattem in Y direction needs data to be repeated entirely by its branches or let's
say data paths should be copied this time and values insde each branch wil remain unchanged. To
achieve thisconcept, some data management components should implement into the algorithm.
F.3.30. Two siders that define the repetition factorsof the pattem are important vauesin this part of the
algorithm. Both are connected to componentsio affect the number of data duplication.
Fig.3.31. In the fet step, data from the lat phase (amplitude of vectors) is duplicated by the amount of
. Asit isshown in instead of because data branches
wanted to be copied. A bit complex part of the algorithm is preparation of the (L) port of the . Lis
the length of final pattem s i should be the amount of valvesin each branch. That's why the of
the previous component used. But this vale should be duplicated by itself as much as
branches we need in the final data lis in order to copy data paths S asa result component
repeatsallbranches ol data with allof their values(twice in thisexamph). Asitisshown in the third now data paths are multiplied by the value comestrom
Basically with the first part, data duplicated inside each branch, but in second padt, data paths repeated
with entire values in each path and branches! data tee increased
Although if one looksat the final components defined to avoid disraction in canvas They all
attach to the values coming from the second phase of the alorthm, or Target Surface Subdivison. Pay
attention to the names They are repeated in the rest of the algorthm so many times.
( Receiver_Target_Srt_Cell_Y
Fig 3.96. Five diferent partsof Data paths should be generated. The firt one isa sting which is {0:0; . This
item d and the number of duplication isset by target surface celts number in Y direction (the
whole ist length).
Fig 3.97. The second part of the string: a of numbers generated with the length of pattem’scelsin
Y direction. This ist of numbers converted to 0, 1, ..). and then into s and
then duplicated. The number of dupfcation isequal to the pattern repetition in Ydirection.43 | 9 Jecquarc weave
Fig.3.38. The thid bit: of ';0:0;" isduplcated lke the fet bit. The number of duplication isequal to
the numberof target surface celsin Ydirection (the whole Is length).
Fg.3.39. The fourth bit of string: here another s and then d. the
‘number of duplication is equal to the number of pattem’s cells in Y direction. Notice that the Boolean
switch for retaining the order isset to ‘False
Fg 3.40. Final bit, a of only) again duplicated by the numberof target surface celsin Ydirection
(the whole list leng th).44 | 9 Jecquara weave
Fig 3.41. Looking back at what hasbeen done @ far, all ith pats of the sting memged together, using a
function with Variable Expression. The function set to Ra.b,c.d,x) =a &b&c &d &x
Thisfunction with & between string vaniablesadds different pansof the sring together.
Fig 3.42. Looking at reat, series of data paths hasbeen generated with planed order asdiscussed before.Fig.3.43. Now itis time to check these data paths Fist of al, a component used to extract
data by predefined data paths This component fed by data that has been provided in the thid phase of
the algonthm by ing all amplitude values
Fig.3.44. Finally the 'sP port, fed by generated data paths Let's check the result in geometty.46 | 9 Jecquarc weave
Fig 3.45, Redistributed/Resorted data has been used as vector amplitudes and then points d and
again d curvesare generated to check the resut. Although the pattem isnot recognizable in
the above figure but i ispretty much clear that single ines did not repeat this time and the whole pattem
duplicated from the red point.
3.3.5 Yan Geometry Generation
‘The last phase of the algorithm isto generate yam geometties in this experiment, again geometries
has been chosen but other type of extrusion along curves are possble methods Another point is that to
make the rest of the algorithm simple, filing yams designed simple, without comigation,
Fig.3.46. Intepolated cues ued to generate geometios by controlable radius as
.Sees tere yg) $$$
Fig 3.47. Asexplained in the frst Loom algorthm, here to generate filing yams.a UV Swaped surface again
introduced to canvas To do this in Fhino these commands should be appled to the target surtace:
Select the surface and then:
Copy (Enter / (Enter) / Dir(Enten) / (Enter) / (Enter)
Assign the second aurface to the
Fig.3.48. Valuesof main surface subdivison again assigned to two componentsto subdivide the
second surface aswel48 | 9 Jecquarc weave
Fig.3.49. Second auface subdivison (this part of the algorithm is amos the same as second phase when
the subdivided, instead here for filing yamsin a reverse fashion firt U direction subdivided and
then V direction): domain is divided by a using
component, al of them sorted into separate data paths Thew ed audace domainsagain divided
but this time by as V port of and again surfaces are
subdivided. The Area-Centroid of all these surfacescaulated using component.
F.3.50. The area-centoidsare ed and resultant curves.used to generate geometries
asiilng yamsof the digital textile, again with controlable radius as and