ENCODED MATTER Rob STUART-SMITH | Tyson HOSMER Omar IBRAZ | Andrius LAURINAITIS Deniz TOPCUOGLU | Maria TOULOUPOU AADRL | 2015
INDEX Workshop Methodology ...........................01 Multiple Agent Simulations ......................03 Family_01 .....................................05 Family_02 ......................................11 Family_03 .....................................17 Family_04 .....................................23 Family_05 .....................................29 CNC Milling Tests ....................................33 Real Time Milling ......................................37 Family_01 ......................................39 Family_02 .....................................43 Real Time Milling Failures ........................49 RGB Simulations .....................................53 Real Time Milling with Arduino .................59 Further Investigation ................................67
Workshop Methodology | 01
Methodology Encoding Matter aims to fuse environment sensing, robotic behaviour, and algorithmic design within a singular design-production process. The workshop will undertake three core areas of investigation; environmental perception, computer simulation, and production. Robot computer vision using technologies such as Arduino will enable various sensor and visual perception functionalities to be added to standard production equipment such as CNC milling machines. Computer simulations will be developed in Processing that consist of event driven rules that relate robot perceptions to fabrication machinery operations in real- time. Simulations will provide feedback mechanisms where a machine is able to perceive the impact of its previous activities and utilise this to drive its subsequent operations. The work is able to operate within subtractive and additive manufacturing paradigms through real-time control of machines that utilise the material world they alter as a form of feedback, ensuring a generative production process recasts production as a design orientated process.
02 | Multiple Agent Simulations
Multiple Agent Simulations | 03
Multiple Agent Simulations
Multiple agent simulations are the representative way of swarming and flocking behaviours of agents. The relations between these particles define the characteristics of each agent itself and within the swarm and their behavioural actions in forming patterns. Cohesion, separation, alignment and wander are the basic relations analysed. Trail investigations are also a part of the behavioral analysis of the agents. The structured randomness in the overall swarm attitudes is the digital and coded part of the entire process. Constants & Variables - initial position (pos) - number of initial agents - number of added agents (mousePressed) - cohesion (coh) - separation (sep) - alignment (ali) - wander (wan) - trail (tra) - swim (swim) - rotation (rot) - range of vision (rangeOfVis) - types of agents (type) - velocity (vel) - maximum velocity (maxVel) - maximum force (maxForce)
04 | Multiple Agent Simulations _ Family 01
Multiple Agent Simulations _ Family 01 | 05
Family_01 Constants - types of agents (type) - initial position (pos) - number of initial agents - Agent Behaviors - separation (sep) - wander (wan) - range of vision (rangeOfVis) - velocity (vel) - maximum velocity (maxVel) - maximum force (maxForce) Variables - Agent Behaviors - cohesion (coh) - alignment (ali) - swim (swim)
Data for Constants - (type) = 1 - (pos) = random - no. of agents = 500 - Agent Behaviors - (sep) = 0.2 - (wan) = 0.1 - (rangeOfVis) = 140 - (vel) = random(-10,10) - (maxVel) = 3 - (maxForce) = 3
06 | Multiple Agent Simulations _ Family 01
cohesion | (0.05); separation | (0.2); alignment | (0.08); wander | (0.1); swim | (1.0); range of vision = 140;
100
400
200
500
300
600
Multiple Agent Simulations _ Family 01 | 07
cohesion | (0.05); separation | (0.2); alignment | (0.7); wander | (0,1); swim | (1.0); range of vision = 140;
100
400
200
500
300
600
08 | Multiple Agent Simulations _ Family 01
cohesion | (0.05); separation | (0.5); alignment | (0.2); wander | (0.1); swim | (2.0); range of vision = 140;
100
400
200
500
300
600
Multiple Agent Simulations _ Family 01 | 09
Simulation_01 Frame_100
Simulation_02 Frame_600
10 | Multiple Agent Simulations _ Family 02
Multiple Agent Simulations _ Family 02 | 11
Family_02 Constants - types of agents (type) - initial position (pos) - number of initial agents - range of vision (rangeOfVis) - velocity (vel) - maximum velocity (maxVel) - maximum force (maxForce) Variables - Agent Behaviors - cohesion (coh) - separation (sep) - alignment (ali) - wander (wan) - rotation (rot)
Data for Constants - (type) = 2 - (pos) = (boxheight/2, boxwidth/2) - no. of agents = 250+250 - (rangeOfVis) = 140 - (vel) = random(-5,5) - (maxVel) = 5 - (maxForce) = 3
12 | Multiple Agent Simulations _ Family 02
cohesion | (0.05); separation | (0.2); alignment | (0.2); wander | (0.01); rotation | (2.0); range of vision = 140;
50
200
100
250
150
300
Multiple Agent Simulations _ Family 02 | 13
cohesion | (0.2); separation | (0.1); alignment | (0.08); wander | (0.05); rotation | (2.5); range of vision = 140;
50
200
100
250
150
300
14 | Multiple Agent Simulations _ Family 02
cohesion | (0.2); separation | (0.1); alignment | (0.08); wander | (0.05); rotation | (5.0); range of vision = 140;
100
400
200
500
300
600
Multiple Agent Simulations _ Family 02 | 15
cohesion | (0.2); separation | (0.15); alignment | (0.08); wander | (0.05); rotation | (4.0); range of vision = 140;
50
200
100
250
150
300
16 | Multiple Agent Simulations _ Family 03
Multiple Agent Simulations _ Family 03 | 17
Family_03 Constants - types of agents (type) - initial position (pos) - number of initial agents - range of vision (rangeOfVis) - velocity (vel) - maximum velocity (maxVel) - maximum force (maxForce) Variables - Agent Behaviors - cohesion1 (coh1) - separation1 (sep1) - alignment1 (ali1) - wander1 (wan1) - cohesion2 (coh2) - separation2 (sep2) - alignment2 (ali2) - wander2 (wan2)
Data for Constants - (type) = 2 - (pos) = (boxheight/2, boxwidth/2) - no. of agents = 250+250 - (rangeOfVis1) = 140 - (rangeOfVis2) = 140 - (vel1) = random(-5,5) - (vel2) = random(-2,2) - (maxVel1) = 5 - (maxVel2) = 2 - (maxForce) = 3.5
18 | Multiple Agent Simulations _ Family 03
cohesion | (0.05); separation | (0.5); alignment | (0.08); wander | (0.1); cohesion | (0.05); separation | (0.2); alignment | (0.08); wander | (0.1);
100
400
200
500
300
600
Multiple Agent Simulations _ Family 03 | 19
cohesion | (0.05); separation | (0.5); alignment | (0.08); wander | (0.1); cohesion | (0.01); separation | (0.5); alignment | (0.01); wander | (0.05);
100
400
200
500
300
600
20 | Multiple Agent Simulations _ Family 03
cohesion | (0.3); separation | (0.1); alignment | (0.05); wander | (0.9); cohesion | (0.2); separation | (0.1); alignment | (0.08); wander | (0.5);
50
200
100
250
150
300
Multiple Agent Simulations _ Family 03 | 21
cohesion | (0.1); separation | (0.1); alignment | (0.2); wander | (0.1); cohesion | (0.2); separation | (0.2); alignment | (0.3); wander | (0.1);
150
600
300
750
450
900
22 | Multiple Agent Simulations _ Family 04
Multiple Agent Simulations _ Family 04 | 23
Family_04 Constants - types of agents (type) - initial position (pos) - number of initial agents - velocity (vel) - maximum velocity (maxVel) - maximum force (maxForce) Variables - Agent Behaviors - cohesion (coh) - separation (sep) - alignment (ali) - wander (wan) - trail (tra) - separation1 (sep1) - range of vision (rangeOfVis) - no. of added agents (mousePressed)
Data for Constants - (type) = 1 - (pos) = random (0,0) - no. of agents = 450 - (vel) = random(-10,5) - (maxVel) = 5 - (maxForce) = 3
24 | Multiple Agent Simulations _ Family 04
cohesion | (0.3); separation | (0.3); alignment | (0.1); wander | (0.1); trail | (0.6); separation1 | (5.0);
cohesion | (0.1); separation | (0.5); alignment | (0.05); wander | (0.1); trail | (0.9); separation1 | (3.0);
range of vision = 150; mousePressed count = 3
range of vision = 150; mousePressed count = 4
100
100
200
200
300
300
400
400
Multiple Agent Simulations _ Family 04 | 25
cohesion | (0.1); separation | (0.3); alignment | (0.6); wander | (0.1); trail | (0.6); separation1 | (5.0);
cohesion | (0.1); separation | (0.6); alignment | (0.6); wander | (0.1); trail | (0.6); separation1 | (5.0);
range of vision = 150; mousePressed count = 5
range of vision = 75; mousePressed count = 3
250
100
500
200
750
300
1000
400
26 | Multiple Agent Simulations _ Family 04
cohesion | (0.1); separation | (0.6); alignment | (2.0); wander | (0.1); trail | (0.6); separation1 | (5.0);
cohesion | (0.5); separation | (0.5); alignment | (0.1); wander | (0.5); trail | (0.6); separation1 | (5.0);
range of vision = 225; mousePressed count = 2
range of vision = 150; mousePressed count = 5
100
100
200
200
300
300
400
400
Multiple Agent Simulations _ Family 04 | 27
cohesion | (0.1); separation | (0.3); alignment | (0.6); wander | (2.0); trail | (0.6); separation1 | (5.0);
cohesion | (0.3); separation | (0.6); alignment | (0.6); wander | (2.0); trail | (0.6); separation1 | (5.0);
range of vision = 150; mousePressed count = 3
range of vision = 75; mousePressed count = 5
100
250
200
500
300
750
400
1000
28 | Multiple Agent Simulations _ Family 05
Multiple Agent Simulations _ Family 05 | 29
Family_05 Constants - types of agents (type) - initial position (pos) - number of initial agents - velocity (vel) - maximum velocity (maxVel) - maximum force (maxForce) Variables - Agent Behaviors - cohesion (coh) - separation (sep) - alignment (ali) - wander (wan) - trail (tra) - separation1 (sep1) - range of vision (rangeOfVis) - no. of added agents (mousePressed)
Data for Constants - (type) = 2 - (pos) = random (0,0) - no. of agents = 250+250 - (vel) = random(-10,10) - (maxVel) = 5 - (maxForce) = 3
30 | Multiple Agent Simulations _ Family 05
cohesion | (0.1); separation | (0.9); alignment | (0.9); wander | (0.1); trail | (2.0); separation1 | (1.0); range of vision = 140; mousePressed count = 3
100
400
200
500
300
600
Multiple Agent Simulations _ Family 05 | 31
cohesion | (0.05); separation | (0.3); alignment | (7.0); wander | (10.0); trail | (10.0); separation1 | (5.0); range of vision = 150; mousePressed count = 4
300
1200
600
1500
900
1800
32 | CNC Tests
CNC Tests | 33
CNC Milling Tests
CNC milling tests provide us the experience and knowledge for the working principles of the cnc machine, drill tools’ behaviours under certain parameters, such as material-drill relation, material density, tool examination or possibilities of the milling. Regarding this knowledge, the next step, real-time milling is easier to investigate. CNC is the material and mechanic part of the process.
Constants & Variables - method - material - white foam (density +) - blue foam (density ++) - white foam (density +++) - yellow foam (density ++++) - max depth - cutting tool - passes - cnc machine settings
34 | CNC Tests
Method: Frame Milling Material: Blue Foam (density ++) Max Depth: 10mm Cutting Tool: Ball Drill 3mm
Method: Frame Milling Material: Blue Foam (denisty ++) Max Depth: 10mm Cutting Tool: Ball Drill 3mm
CNC Tests | 35
Method: Frame Milling Material: Blue Foam (denisty ++) Max Depth: 10mm Cutting Tool: Ball Drill 3mm
36 | Real Time Milling
Real Time Milling | 37
Real-time Milling
Real-time milling functions work as a bridge between the computer |processing| and the machine |CNC|. The code that is running in the computer directly controls the behaviour of the drill, including its depth, direction and movement, according to the realtime changing situations in the code.
Constants & Variables - method - material - white foam (density +) - blue foam (density ++) - white foam (density +++) - yellow foam (density ++++) - max depth - cutting tool - passes - cnc machine settings
38 | Real Time Milling _ Family 01
Real Time Milling _ Family 01 | 39
Family_01
40 | Real Time Milling _ Family 01
Material: Blue Foam (density ++) Max Depth: 40mm Cutting Tool: 3mm Ball Bit Passes: 1 Pass
Material: Blue Foam (density ++) Max Depth: 40mm Cutting Tool: 3mm Ball Bit Passes: 1 Pass
Random Depth for agents
Perlin Noise for Depth
Real Time Milling _ Family 01 | 41
Material: Blue Foam (density ++) Max Depth: 40mm Cutting Tool: 3mm Ball Bit Passes: 1 Pass Sine Function for Depth
42 | Real Time Milling _ Family 02
Real Time Milling _ Family 02 | 43
Family_02
44 | Real Time Milling _ Family 02
Material: Blue Foam (density ++) Max Depth: 40mm Cutting Tool: Point Bit
Material: Yellow Foam (density ++++) Max Depth: 40mm Cutting Tool: 3mm Flat Bit
Passes: 5 Passes
Passes: 5 Passes
Real Time Milling _ Family 02 | 45
Material: Blue Foam (density ++) Max Depth: 40mm Cutting Tool: 6mm Ball Bit
Material: Blue Foam (density ++) Max Depth: 50mm Cutting Tool: 6mm Ball Bit 6mm Conical Bit
Passes: 8 Passes Passes: 8 Passes
46 | Real Time Milling _ Family 02
Material: Blue Foam (density ++) Max Depth: 40mm Cutting Tool: Point Bit 6mm Conical Bit
Material: Yellow Foam (density ++++) Max Depth: 40mm Cutting Tool: Point Bit Passes: 10 Passes
Passes: 8 Passes
Real Time Milling _ Family 02 | 47
Material: Yellow Foam (density ++++) Max Depth: 40mm Cutting Tool: 3mm Ball Bit
Material: Yellow Foam (density ++++) Max Depth: 40mm Cutting Tool: 6mm Conical Bit
Passes: 8 Passes
Passes: 5 Passes
48 | Real Time Milling _ Failures
Real Time Milling _ Failures | 49
Real Time Milling Failures
Constants & Variables - failure no.1 | coding a mistake in the processing code occured - failure no.2 | drill bit wrong drill bit is chosen - failure no.3 | z-depth wrong depth value is arranged for the z-axis
50 | Real Time Milling _ Failures
Failure 01: Coding
Failure 02: Drill Bit
Material: Blue Foam (density ++) Max Depth: 40mm Cutting Tool: 3mm Ball Bit
Material: Blue Foam (density ++) Max Depth: 40mm Cutting Tool: 6mm Ball Bit
Real Time Milling _ Failures | 51
Failure 03: Z-Dpeth Material: Blue Foam (density ++) Max Depth: 40mm Cutting Tool: 6mm Ball Bit
52 | RGB Simulations
RGB Simulations | 53
RGB Simulations
Regarding the RGB color coded LED light idea, RGB simulations tend to speculate on three types of agent behaviours, which change under certain rules and circumstances. In this way, the research towards the real time milling with the introduction of arduino will lay the coding background and expected behaviour of mechanical operations in unison with agent behaviours.
Constants & Variables - initial position (pos) - number of initial agents - number of added agents (mousePressed) - cohesion (coh) - separation (sep) - alignment (ali) - wander (wan) - trail (tra) - swim (swim) - avoid trail (avoidt) - range of vision (rangeOfVis) - types of agents (type) - velocity (vel) - maximum velocity (maxVel) - maximum force (maxForce)
54 | RGB Simulations _ Family 01&02
cohesion | (0.1); separation | (0.5); alignment | (0.5); wander | (0.01); trail | (15.0); trail1 | (10.0); trail2 | (20.0); separation1 | (0.5);
cohesion | (0.1); separation | (0.5); alignment | (0.5); wander | (0.01); trail | (15.0); trail1 | (10.0); trail2 | (20.0); separation1 | (0.5);
range of vision = 140; mousePressed count = 3
range of vision = 140; mousePressed count = 3
100
100
200
200
300
300
400
400
RGB Simulations_Family 03&04 | 55
cohesion | (0.1); separation | (0.5); alignment | (0.5); wander | (0.01); trail | (15.0); trail1 | (10.0); trail2 | (20.0); separation1 | (0.5);
cohesion | (0.3); separation | (0.3); alignment | (0.5); wander | (0.1); trail | (15.0); trail1 | (10.0); trail2 | (20.0); separation1 | (0.5);
range of vision = 140; mousePressed count = 3
range of vision = 140; mousePressed count = 3
100
100
200
200
300
300
400
400
56 | RGB Simulations _ Family 05&06
cohesion | (0.3); separation | (0.3); alignment | (0.5); wander | (0.05); trail | (15.0); trail1 | (10.0); trail2 | (20.0); separation1 | (0.5);
cohesion | (0.4); separation | (0.5); alignment | (0.5); wander | (0.05); trail | (15.0); trail1 | (10.0); trail2 | (20.0); separation1 | (0.7);
range of vision = 140; mousePressed count = 3
range of vision = 140; mousePressed count = 3
100
100
200
200
300
300
400
400
RGB Simulations_Family 07&08 | 57
cohesion | (0.3); separation | (0.5); alignment | (0.5); wander | (0.05); trail | (15.0); trail1 | (10.0); trail2 | (20.0); separation1 | (0.7);
cohesion | (0.001); separation | (0.3); alignment | (7.0); wander | (0.01); trail | (15.0); trail1 | (10.0); trail2 | (20.0); separation1 | (0.5);
range of vision = 140; mousePressed count = 3
range of vision = 140; mousePressed count = 3
100
100
200
200
300
300
400
400
58 | Real Time Milling with Arduino
Real Time Milling with Arduino | 59
Real-time Milling with Arduino
Task: To create a behavioural loop inbetween three mediums of action - machine, matter and code. Approach: Arduino acts as a connecting medium, taking values, transfering them, so the loop could go on. Process: The light has been selected as a tool to trigger data flow for taking measurements and making desicions. Proximity sensor adds same value of importance in decision making. The color of the light, underneath the foam, is sensed by the RGB sensor. Value has been taken by Arduino and sent to the Processing. In various situations, and agent behaviour, the operations of drill bit changes while milling. The removed foam lets light to shine through, yet changing the values of RGB sensors - changing the values in the Processing.
Constants & Variables - method - material - white foam (density +) - blue foam (density ++) - white foam (density +++) - yellow foam (density ++++) - max depth - cutting tool - passes - cnc machine settings
60 | Real Time Milling with Arduino Material Catalogue
White Foam 19 kg/m 3
Density Increase
Blue Foam 30 kg/m 3
White Foam 38 kg/m 3
Yellow Foam 240 kg/m 3
Drill Bit Catalogue
3mm Ball Bit
3mm Flat Bit
6mm Ball Bit
6mm Rough Bit
6mm Conical Bit
Point Bit
Real Time Milling with Arduino | 61
AGENT CODE (PROCESSING)
ARDUINO CODE
Feedback Loop
CNC
SENSORS
MDX - 540
LIGHT COLOR DISTANCE
(r, g, b, dist); color
distance
Sensor Kit Color Sensor Distance Sensor
Blue/Orange/White Foam
4 Wires ground red green blue
LED Light Strips
Card Board
62 | Real Time Milling with Arduino
100
200
300
Real Time Milling with Arduino | 63
400
500
600
64 | Real Time Milling with Arduino
RGB RealSimulations_Family Time Milling with Arduino 03&04| |65 15
Material: White Foam (density +) Max Depth: 40mm Cutting Tool: 3mm Ball Bit Passes: 8 Passes
Material: White Foam (density +) Max Depth: 40mm Cutting Tool: 3mm Ball Bit Passes: 8 Passes
Material: White Foam (density +++) Max Depth: 40mm Cutting Tool: 3mm Ball Bit Passes: 8 Passes
66 | Further Investigation
Further Investigation | 67
Further Investigation
In general, the development of approach is clear and for future cuts few points should be introduced: - Local behaviour versus global behaviour. At the moment, the LED and RGB sensor connection relation is more global. Playing with the three elements alltogether (Material properties, Sensor positioning, coding), could lead to increase in resolution, i.e, the the decisions and behaviours are dependent on the one position, but at the same time they are related to global circumstances. - Different LED positioning underneath working foam, could lead into different results. - Writing the code in 3D space, combining the play in-between Machinic Z axis and virtual Z axis.