ALGORITHMIC SKETCHBOOK 1
ALGORITHMIC SKETCHBOOK
1
2
[F] Explorations of PixelPark game
4[A] Week1-3 Algorithmic Sketchbook
[B] Explorations of Unity
[C] Explorations of Initial If Statements
[D] Explorations of Colour Scheme
[E] Re-defining If Final statements
12
18
32
46
58
CONTENT PAGE
[G] Exploratons of camera angle 70
[H] Overall game reflection 108
3
Week 1 - 3Algorithmic sketchbook
4
5
Algorithmic Grasshopper sketch
6
Creating a sphere in Rhino than referencing it using populate geometry using grass-hopper. After playing around with the number of points in the sphere [SEEDING], I used Delaunay Edges to connect all the points up. Next I connect pipes to the Delaunay Edges and played with the radius. [GROWING]
After getting to the second part, I start deleting some of the polylines to come to a shape that I think looks interesting to me. [PRUNING]
Using populate 3D, I created a cube and started to play with the number of points. [SEEDING] After deciding on the points I connected voronoi 3D to it. [GROWING]
After baking the shape, I started choosing different parts to delete and got a shape that I am satisfied. [PRUNING]
7
Using populate 3D, I created a cube and started to play with the number of points. [SEEDING] After deciding on the points I connected voronoi 3D to it. [GROWING]
After baking the shape, I started choosing different parts to delete and got a shape that I am satisfied. [PRUNING]
Creating a Pyramid shape in Rhino than referencing it using populate geometry using grasshopper. After playing around with the number of points in the sphere [SEEDING], I used Delaunay Edges to connect all the points up. Next I connect pipes to the De-launay Edges and played with the radius this time going thinner. [GROWING]
After getting to the second part, I start deleting some of the polylines to come to a shape that I think looks interesting to me. [PRUNING]
Algorithmic Grasshopper sketch
8
9
Algorithmic Grasshopper sketch
10
11
12
Exploration of Unity
13
CLOCKAfter going through some basic tutorials on how to use unity, We than move on to something simpler by creating a clock and allowing it to move at the same time as the computer does.
FRACTALA definately more advance coding we start getting into. This was very different from the initial clock tutorial we had. It was more challenging than the clock tutorials. We move on to a more advance one in looking at how to spawn shapes using and object and when played the object would be able to rotate and move randomly
TUTORIALS
14
FRACTALThe fractal uses code to randomly generates a list of shapes that was given to it. It will never generates the same shape the next time you press the play button.
15
16
// Update is called once per framevoid Update(){
myX = Mathf.RoundToInt(transform.position.x); myZ = Mathf.RoundToInt(transform.position.z);
//accumColor = attributA if (manager.GetComponent<tileManager>().att == 1) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt1; }
else if (manager.GetComponent<tileManager>().att == 2) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt2; }
else if (manager.GetComponent<tileManager>().att == 3) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt3; }
else if (manager.GetComponent<tileManager>().att == 4) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt4; }
myRenderer.enabled = false;
visitedTileNo = thisObject.GetComponent<xyzToI>().TileNo;
slaveVisited = manager.GetComponent<tileManager>().hasVisited [visitedTileNo]; slaveTimesVisited = manager.GetComponent<tileManager>().timesVisited [visitedTileNo]; hasSpawned = manager.GetComponent<tileManager>().hasSpawned[visitedTileNo];
if (manager.GetComponent<tileManager>().trace == true) { // visited colour if (slaveVisited == true && thisObject.GetComponent<xyzToI> ().tileWithinRange) { myRenderer.enabled = true; colourVal = new Vector4((float)slaveTimesVisited / 100, (float)slave TimesVisited / 100, (float)slaveTimesVisited / 100, 1); Color myColor = colourVal; //Color myColor = new Vector4 (slaveTimesVisited/10, slaveTimesVisited/10, slaveTimesVisited/10, 1); myRenderer.material.color = myColor; }
//////////////////////////////////////////////////////////////////////////////////// REF1 ////////////////////////////////////////////////////////////////////////////// if (accumColor > 0.5f && accumColor <= 0.6 && hasSpawned == false) { int SpawnChance = Random.Range (0, 2); if (SpawnChance > 0) { shapeInt = 0; shapeToHash (); } else { manager.GetComponent<tileManager> ().hasSpawned [visitedTileNo] = true; } }
The coding here is giving each images in the CSV files an attribute number to allow changes to be made in the Gameframe.
The if statements here allows me to indicate the tiles that i wanted to spawn objects when the reader scans through it.
17
18
Exploration of Initial If Statements
19
GROUP 1GENERATION
- Voxels growth- Voxels inheritance values- Voxels resiliense values
GROUP 3LANDSCAPE
- Site analysis- Algorthmic analysis- Csv files value maps
GROUP 2INTERACTION
GROUP 4ARTEFACT
- Deciding attributes of the park to the map - Deciding park elements to be spawn by which voxels- Creating character scenerios
20
GROUP 2INTERACTION
Creating If statements for the landscape [Group3]
- Receiving landscape CSV fles from group 3 and applying it to the scene
Seeding the landscape with the voxels [Group1]
- Receiving different voxel patterns from group 1 and matching up them up with the landscapes
Exploring Optimum settings for building the game
- Trying out different configurations in the scene for the game to run smoothly in the phone
I am currently in this group in charge of creating If state-ments and combining others group work into the unity program.
21
22
FIRST TRAIL [TUBE - PATH]IF STATEMENT : >0.6 - 1<DEAD ZONE : 5[TRYING OUT THE SHAPES. SEEING HOW IT FORM THE LANDSCAPE. HOWEVER DOES NOT SHOW MUCH OF THE PATH]
SECOND TRAIL [TUBE - PATH]IF STATEMENT : >0.6 - 1<DEAD ZONE : 4[SECOND TRAIL WAS LOWERING THE DEADZONE . BY LOWERING THE DEADZONE IT SHOWS A LITTLE MORE OF THE PATH]
THIRD TRAIL [TUBE - PATH]IF STATEMENT : >0.6 - 1<DEAD ZONE : 3[THIRD TRAIL WAS LOWERING THE VALUE AGAIN. THIS SHOWS MORE INTERSECTING AND MORE PATHS.]
FOURTH TRAIL [TUBE - PATH]IF STATEMENT : >0.6 - 1<DEAD ZONE : 2[FOURTH TRAIL SEEMS TO HIGHLIGHT THE PATH. HOWEVER IT TENDS TO CLUSTER THE SHAPES MAKING IT LOOK LIKE A MESS.]
Part a- Assigning meaning to the different shapes- Assigning deadzones [ Using just one set of If statement but changing the deadzone ]
23
If statement: if (Pathness > 0.6f && Pathness <= 0.9f && hasSpawned == false) : if (Treeness > 0.6f && Treeness <= 0.9f && hasSpawned == false)
[First scenerios is to show interaction between path and tree, Showing the environment of these two will allow the landscape shape to be created]
Scenerios 2 - Noise voxel x Interesting voxel
[Second scenerios is to show interaction between noise and interesting places, The relationship between the different noises and things that might be happening at the area]
[Third scenerios is to show interaction between path, Interesting places and Noiseness, to show the different areas where people gather the most and see the more popular areas that is being chosen]Scenerios 4 - Path voxel x Interesting voxel x Noise voxel x Tree voxel
If statement: if (Noiseness > 0.6f && Noiseness <= 0.9f && hasSpawned == false) : if (Interestingness > 0.6f && Interestingness <= 0.9f && hasSpawned == false)
Scenerios 3 - Path voxel x Interesting voxel x Noise voxel
If statement: if (Pathness > 0.6f && Pathness <= 0.9f && hasSpawned == false) : if (Interestingness > 0.6f && Interestingness <= 0.9f && hasSpawned == false) : if (Noiseness > 0.6f && Noiseness <= 0.9f && hasSpawned == false)
If statement: if (Pathness > 0.6f && Pathness <= 0.9f && hasSpawned == false) : if (Interestingness > 0.6f && Interestingness <= 0.9f && hasSpawned == false) : if (Noiseness > 0.6f && Noiseness <= 0.9f && hasSpawned == false) : if (Treeness > 0.6f && Treeness <= 0.9f && hasSpawned == false)
[Fourth scenerios is to show interaction between path, Interesting places, Noiseness and Treeness as an overall. To show the different relationships between the different paths and social relationship]
Part B- Using the assign name to try out on different scenerios- standardizing the deadzone for now. [ Using just one set of If statement in different scenerios that we have choose]- Changing the colours to show difference in the map
Scenerios 1 - Tree voxel x Path voxel
24
Part C- Seeding the landscape using If statements and applying different deadzone- Using colours to show difference in the map
Scenerios 1 - Tree voxel x Path voxel
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
Scenerios 2 - Noise voxel x Interesting voxel
25
Scenerios 2 - Noise voxel x Interesting voxel
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
If statement : 0.6f && <= 1
Scenerios 3 - Path voxel x Interesting voxel x Noise voxel
Scenerios 4 - Path voxel x Interesting voxel x Noise voxel x Tree voxel
26
If statement : 0.6f && <= 1Interesting : [Pinkish purple] #ff33ff RGB = 255/51/255Noise : [Blue] #330099 RGB = 51/0/153Path : [Brown] #993300 RGB = 153/51/0Trees : [Green] #0AFF0A RGB = 10/255/10
Part D- Using colours to show difference in the map- Creating inter section colours in the map- Creating Loop and giving different inersection different colours to highlight it
Trees + Path : #666600 RGB = 102/102/0Noise + Interesting : #6666FF RGB = 102/102/255Path + Interesting : #99004D RGB = 153/0/77Path + Noise + Iinteresting : #660033 RGB = 102/0/51Path + Noise + Interesting + Tree : #660000 RGB = 102/0/0
Hey how does the CSV file work in Grasshop-per? I cant seem to get it to work. It does not really give me any data.
I might have the same problem as you. The data that is stated in the excel file all comes out as 0,0,0. There is no numbering that stats there is data in.
That’s weird. Did you guys check that the plugins for Grasshopper are all in the correct position?
Yup! All the plugins are correct. Or is there something wrong with my images?
I dont think so. I have tried multiple images but it still works everytime I plugin. Or did u acci-cently press something for the image sampler.
I think I might have get it. My problem was just that I have plugin the wrong area. The Image sampler was suppose to go into entwine before going in to Attribute CSV I might have accident-ly tangled the connections
Hmm. Thats strange all of the connections are correct and to place. I have duble click the Imag-es sampler and it does not really show is there is something wrong with it or not.
When you double click the images sampler, directly choose the images from there. The interpolate must be tick in order for it to work. And your x and y domain both must be rang-ing from 0.0 to 0.1
Oh! I got it. I didnt tick the interpolate that might be the reason. Let me try and see if its going to work this time round
GETTING CSV FILES TO WORK
27
28
Guysss. Unity keeps giving out red errors stating that there is a problem with the script. I have tried looking at the script but there seems to be no problem.
Did you change the coding in the script to make sure it matches?
Oh okay! I think I might hsve gotten it. I have forgotten to match the numberings with the elements in the manager page.
Okay I will take 0.5 to 0.7 for explorations.
Yup! After getting the number than you will have to divide them each by 255 than sub in to the numbers in the colour script.
IF STATMENTS & COLOUR CODE
You need to make sure that ur numbering for the attribute matches the one in your manager. Example if ur if statement is talking about att 1 that att should be the one in the manager stated as element 1.
Oh okay. Than I will take the range 0.8 to 1.
Oh and before I forget. I have taken the values from 0.2 to 0.4 to test out on the If statements.
Just a quick question. How do we assign colors from our own colors scheme again?
I think you need to get the numbers for the RGB values first. You can either go online to get the numbers or you could just use photoshop to check color value.
And dont forgot to add in f if there is a decimal point.
Alright I got it. Thanks!
29
R u sure part c needs that much of screen shots? The plan and elevation looks quiet similar to part b, cause the scenarios r the same
Ohh I see. I finally got it. I was still abit con-fused I thought we would have to put double of the 160 Images but this clears things up .Thanks!
you only choose some photos out. That day alex said right. Choose only a selection of photo to compare the new and the old. 160 Images should be in part 2 where they wrote to include images in white background
Sorry but can you give me a more indepth of what should be written in part 3? About the part where we response to mid-sem.
In Part 3 is reponse to midsem. So based on the different comments we got what did we do .
For example like the original problem we had was just to printscreen and crop images out which in negative point of view it is not cleared and might be pixalated
RESPONSE TO MID-SEMESTER
I think would be better to choose one set of dead zone and do a comparison to the part b ones on each scenario
Dicuss what did we do to improve the quality of the images. Than give an idea of how it worksLike comparing to other groups what are the difference and difficulty we faced when we were trying to prepare for the Mid-sem Preseanta-tion.
However we started exploring different tools of getting images from unity. We were able to download programs to help us get a clearer views
Yup Yup! You got it.
30
31
Scenerios 3 - Path voxel x Interesting voxel x Noise voxelPath Deadzone : 1Interesting Deadzone : 1Noise Deadzone : 1
Path Deadzone : 3Interesting Deadzone : 3Noise Deadzone : 1
Path Deadzone : 6Interesting Deadzone : 4Noise Deadzone : 1
Path Deadzone : 6Interesting Deadzone : 6Noise Deadzone : 6
Path Deadzone : 3Interesting Deadzone : 5Noise Deadzone : 2
32
Exploration of Colour scheme
33
Getting to discover more about colour schemes. Using the Plugin Colr we were able to come out with a variety of colour scehemes which introduces the idea of using gradient. The idea of the Gradient was to choose two colors and it will looks like the colors was combine together. I was fairly impress as I was able to produce a huge varieations of gradient colours.
For these few images, I had just constantly choose to have all the different surfaces to have a common color gradient and tested it out.
REDEFINING EXPLORATIONS
34
35
36
37
38
39
Gradient = White and PinkGradient = Beige and Purple
Next I discovered that I could play around with the different surface. I could pick a colour for the front and another colour for the back. And thus using this concept, I tried combining a few colours that I originally have above and tweak a little to see how it would appear.
COMBINATIONS OF GRADIENT IN A CUBE
40
Gradient = Grey and Orange
41
42
43
VARIETION OF COMBINING COLORS
44
45
46
Re-defining Final If statements
47
48
//////TC00 visible tiles /// /// //accumColor = attributA if (manager.GetComponent<landscapeManager>().attDisplayedOnTile == 0) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt0; }
else if (manager.GetComponent<landscapeManager>().attDisplayedOnTile == 1) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt1; }
else if (manager.GetComponent<landscapeManager>().attDisplayedOnTile == 2) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt2; }
else if (manager.GetComponent<landscapeManager>().attDisplayedOnTile == 3) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt3; } else if (manager.GetComponent<landscapeManager>().attDisplayedOnTile == 4) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt4; } else if (manager.GetComponent<landscapeManager>().attDisplayedOnTile == 5) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt5; }
else if (manager.GetComponent<landscapeManager>().attDisplayedOnTile == 6) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt6; }
else if (manager.GetComponent<landscapeManager>().attDisplayedOnTile == 7) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt7; }
else if (manager.GetComponent<landscapeManager>().attDisplayedOnTile == 8) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt8; }
//////////////////////////////////////////////////////////////////////// ////////////////////// ATTRIBUTES REFTC01 ////////////////////////////// ////////////////////////////////////////////////////////////////////////
sun = thisObject.GetComponent<xyzToI>().slaveAtt0; Noise = thisObject.GetComponent<xyzToI>().slaveAtt1; Interesting = thisObject.GetComponent<xyzToI>().slaveAtt2; elevation = thisObject.GetComponent<xyzToI>().slaveAtt3; permeability = thisObject.GetComponent<xyzToI>().slaveAtt4; vegetation = thisObject.GetComponent<xyzToI>().slaveAtt5; popularity = thisObject.GetComponent<xyzToI>().slaveAtt6; Gradient = thisObject.GetComponent<xyzToI>().slaveAtt7; Satellite = thisObject.GetComponent<xyzToI>().slaveAtt8;
012345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
}
}
49
If statementsL a n d s c a p e s c r i p t
50
/////////////////////////////////////////////////////////// /////////////////////////// REFTC02 /////////////////////////// /// ////////////////////////////////////////////////////// //Vegetation voxels Sparse if (vegetation > 0.1f && vegetation <= 0.5f && hasSpawned == false) { //WHAT COLOUR int patternType = 1; int chance = Random.Range (0, 1); if (chance == 0) { // spawn [order in shape list], deadzone, ignore, ignore)CaManager. shapes [1].patternAtLocation (4, gameObject. transform.position, patternType); } else { // spawn DEAD ZONE WITHOUT THE SHAPE [order in shape list], deadzone, ignore, ignore) CaManager.shapes [0].patternAtLocation (8, gameObject. transform.position, patternType); } hasSpawned = true; } //Sunlight voxels if (sun > 0.9f && sun <= 1 && hasSpawned == false) { //WHAT COLOUR int patternType = 4; int chance = Random.Range (0, 3); if (chance == 0) { // spawn [order in shape list], deadzone, ignore, ignore) CaManager.shapes[5].patternAtLocation(5, gameObject.transform.position, patternType); } else { // spawn DEAD ZONE WITHOUT THE SHAPE [order in shape list], deadzone, ignore, ignore) CaManager.shapes [0].patternAtLocation (8, gameObject. transform.position, patternType); } hasSpawned = true; }
012345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
}
}
51
If statementsS i m p l e v o x e l s s c r i p t
52
//Vegetation voxels Sparse if (Vegetation > 0.1f && Vegetation <= 0.5f && Permeability > 0.5f && Permeability <= 0.7f && hasSpawned == false) { //WHAT COLOUR int patternType = 1; int chance = Random.Range(0, 2); if (chance == 0) { // spawn [order in shape list], deadzone, ignore, ignore) CaManager.shapes[1].patternAtLocation(4, gameObject.transform.position, patternType); } else { // spawn DEAD ZONE WITHOUT THE SHAPE [order in shape list], deadzone, ignore, ignore) CaManager.shapes[0].patternAtLocation(4, gameObject.transform.position, patternType); } hasSpawned = true; } //Vegetation voxels Dense if (Vegetation > 0.5f && Vegetation <= 1 && Permeability > 0 && Permeability <= 0.3f && hasSpawned == false) { //WHAT COLOUR int patternType = 1;
// spawn [order in shape list], deadzone, ignore, ignore) CaManager.shapes[2].patternAtLocation(4, gameObject.transform. position, patternType); hasSpawned = true; } //Pollution voxels if (popularity > 0.5f && popularity <= 1 && Vegetation > 0 && Vegetation <= 0.5f && hasSpawned == false) { //WHAT COLOUR int patternType = 2;
int chance = Random.Range(0, 4);
if (chance == 0) {
// spawn [order in shape list], deadzone, ignore, ignore) CaManager.shapes[3].patternAtLocation(4, gameObject.transform.position, patternType); } else {// spawn DEAD ZONE WITHOUT THE SHAPE [order in shape list], deadzone, ignore, ignore)CaManager.shapes[0].patternAtLocation(4, gameObject.transform.position, patternType); }
012345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
}
}
53
If statementsC o m p l i c a t e d v o x e l s s c r i p t
54
//Sunlight voxels if (sun > 0.5f && sun <= 1 && Vegetation > 0 && Vegetation <= 0.5f && Gradient > 0 && Gradient <= 0.5f && hasSpawned == false) { //WHAT COLOUR int patternType = 4;
int chance = Random.Range(0, 20);
if (chance == 0) {
// spawn [order in shape list], deadzone, ignore, ignore) CaManager.shapes[5].patternAtLocation(8, gameObject.transform.position, patternType); }
else
{ // spawn DEAD ZONE WITHOUT THE SHAPE [order in shape list], deadzone, ignore, ignore) CaManager.shapes[0].patternAtLocation(4, gameObject.transform.position, patternType); }
hasSpawned = true;
} //SITE USERS
if (Permeability > 0.89f && Permeability <= 0.9f || Interesting > 0.8f || popularity > 0.7f && hasSpawned == false) { //WHAT COLOUR int patternType = 3;
// spawn [order in shape list], deadzone, ignore, ignore) CaManager.shapes [4].patternAtLocation (7, gameObject.transform.position, patternType); hasSpawned = true; }
//Initial files if (permeability > 0.8f && vegetation <= 1 && hasSpawned == false) { //WHAT COLOUR int patternType = 1;
// spawn [order in shape list], deadzone, ignore, ignore) CaManager.shapes[1].patternAtLocation (20, gameObject.transform.position, patternType); hasSpawned = true; } if (elevation > .5f && hasSpawned == false) { //WHAT COLOUR int patternType = 2; // spawn [order in shape list], deadzone, ignore, ignore) CaManager.shapes[1].patternAtLocation (20, gameObject.transform.position, patternType); hasSpawned = true; }
012345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
}
}
55
If statementsC o m p l i c a t e d v o x e l s s c r i p t
56
57
58
Exploration of the Pixelpark game as a whole
59
60
INTERACTION WITH PLAYERS
PETRIFIED VOXELS PRODUCEDHow does the player interact with the landscape voxels and how is it shown in the game
61
INTERACTION WITH PLAYERS
SICKNESS SPREADING INTERVALSHow does the player interact with the landscape voxels and how is it shown in the game
62
Timelapse screenshot of views over a period of time
63
Timelapse screenshot of views over a period of time
64
Timelapse screenshot of views over a period of time
65
Timelapse screenshot of views over a period of time
66
OLD WOMAN
When the old lady touches a rare voxels, the voxels will multiply by 0.3. The higher the multi-player the higher the doller value.
Voxels here will multiply by 0.2
Voxels here will multiply by 1
67
RUN AWAYS
When the runaway touches a site users vox-els, the voxels will multiply by -0.5. This shows that players who are plying th scenerios of runaway should be staying away from those area.
Voxels here will multiply by 0.2
Voxels here will multiply by
0.2
Voxels here will multiply by 0.5
68
DOG
Voxels here will multiply by 0.4
When the dog touches a noise voxels it will multiply by -0.3. This shows that players who are playing this scenerios of a dog should be staying away from those area.
Voxels here will multiply by
0.1
Voxels here will multiply by
0.4
69
ENVIROMENTALIST
When the enviromentalist touches a site users vox-els it will be multiply by -0.8f This shows that players who are playing this scenerios of a enviromentalist should be staying away from those area.
Voxels here will multiply by 1. This shows that these are the areas where the doller values are higher
70
charactersO l d L a d y
low value high value
The old lady favours interesting places therefore powerups are
near the playground
She also favours high elevated areas therefore powerups are
located at the top of the hill
She hates area near the river as there are steep slopes therefore
powerups wont appear here
71
NOISE [-1]INTERESTING [+2]ELEVATION [+3]GRADIENT [-7]
She dislikes noise and prefers quiet spaces. She likes elevated areas with a good view but in her old age she has difficulty walking up steep areas, and needs to walk in low gradients.You can find her powerups at densley vegetated, enclosed spaces, and at places with nice views.
72
low value high value
charactersD o g
The dog favours vegetated areas that is why the powerups will be located
around dense vegetation
It favours area with high gradient, power ups will be located near
the steep slope
73
The dog is wandering the site alone and just wants to find all stimulants in the site - all noises, smells and sights. The dog especially likes coming into contact with people, and being around vegetation.Find his powerups at highly populated spaces, like in the Playground.
INTERESTING [+2]PERMEABLE [-4]VEGETATION [+5]POPULARITY [-6]GRADIENT [+7]
74
low value high value
charactersR u n a w a y c h i l d
The runaway child favours areas that are popular that is why powerups will
be located around the playground
She also favours areas with are densely populated with
vegetation. Areas around the hill
She hates area that can be easily access like the pathways therefore
voxels wont spawn here
75
This little ran away from home so she’s looking to avoid being found by adults. She dislikes open, permeable spaces where she might come across other people. She also likes getting to places that are steep where she can enjoy climning.Try finding powerups at dense vegetative areas and quiet, hard to reach places.
SUN [0]NOISE [+1]PERMEABILITY [-4]VEGETATION [+5]POPULARITY [+6]
76
low value high value
charactersD e v e l o p e r
The developer loves areas that are popular and elevated that is why powerups are located
near the playground
He hates area that are steep therefore powerups wont be located near the
river
77
The developer is trying to buy all parts of the land that is suitable for development. Places with low gradients, but high elevations and a good amount of people frequenting. He prefers spaces that aren’t covered in vegetation.Try going into open and high areas in the North of the site to get his powerups.
SUN [0]INTERESTING [+2]ELEVATION [+3]VEGETATION [-5]POPULARITY [+6]GRADIENT [-7]
78
low value high value
charactersE n v i r o m e n t a l i s t
The enviromentalist likes areas which are densely populated with vegetation which is near
the river
The enviromentalist hates areas like playground as he dislike large
amount of people
79
The Environmentalist wants to buy all the parts of the site untarnished by suburbia. He dislikes open spaces and dislikes large amounts of people. He really likes vegetation, more so than the rest, and also likes to get closer to the creek at the lower elevations .His most valuable areas would in the dense green areas in the low parts of the creek.
PERMEABILTY [-4]VEGETATION [+5]POPULARITY [-6]INVERSE ELEVATION
80
Exploration of camera Angle
81
82
83
84
85
The idea here is to be surrounded by voxels which are created by the site. The site suddenly becomes
alive in front of you. Every colour and shapes starts becoming real from the site.
BEING IN THE WORLD FULL OF VOXELS.
86
Here is a view of you walking in the site. You are currently being surrownded by Trees, Paths, Interesting areas [playground] and
also areas that produces noise.
87
BROWN STANDS FOR PATHWAYS THAT ARE CURRENTLY ON SITE.
GREEN LITERALLY STANDS FOR TREES THAT ARE CURRENTLY
THERE
WHAT DO WE SEE IN THE WORLD FULL OF VOXELS?
88
PURPLE STANDS FOR NOISE. WHICH MEANS SOUNDS WAS PRODUCE AT THIS FEW AREAS
THAT IS WHY VOXELS ARE SPAWNING.
LIGHT PURPLE STANDS FOR INTERESTING-NESS. THERE IS SOMETHING GOING ON IN
THOSE AREAS. ONE MIGHT BE THERE IS A PLAY-GROUND THERE.
89
A different colour from all the other voxels sur-rounding it what could it mean? The voxels are being overlapped by Noise and Interestingness that is why a different colour has appear for that specific voxels.
SPECIFIC DETAILS THAT WE CAN SPOT?
90
The same ideas as the previous ones this colour is being produce because interestingness is being overlapped by path. It can give an indication that in this path interesting things has happen here before. [Cyclist passing through]
91
Surrounded by trees, Noise and Paths
Surrounded by trees, Paths and a little interesting areas
92
Surrounded by a huge degree of noise and a little Path and Trees
Surrounded by large amount of Paths and Interestingness
93
94
95
96
INFECTED VOXELS
VEGETATION VOXELS
SITE USERS VOXELS
NOISE VOXELS
SUNLIGHT VOXELS
97
FLOOD VOXELS
INFECTED VOXELS
PETRIFIED VOXELS
POLLUTION VOXELS
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
Game Reflection
119
Gameplay
What character did I get to play
this time?
120
Why is my char-acter spinning
out of control?
Are you sure its spinning? Mine
is working per-fectly!
Okayyyy. So where are we heading next?
121
OHH!!! It works! It works!
There is vegetation voxels growing around
us!
122
GameplayP r o g r e s s o f t h e g a m eWalking in the site and looking on the phone, we will be able to see the voxels being populated in the screens.
Walking in the vegetation, from the phone we can see vegetation voxels spreading around us as we walk. Similar to the actual site. These can be places were we normally avoid, as there isnt much proper pathways to be explored.
123
ReflectionsG o a l s t h a t w e w a n t e d t o a c h i e v e
Breaking people out of their normal routine at the park
Discovering new areas of the park
Often when people step in to the park. they would start a normal routine where they would head to the path ways to walk around the park. People with dogs would than walk to areas with flat grass surface to allow the dogs to run around. Childrens would than often just head to the play ground straight.
What we hope to do is to allow players who play this game to not stick to the routine where people normally do. Heading to path ways, playground and flat surfaces of the grass.
I did go to places that I wont ever go. Places like dense vegetation areas. It does feel weird walking into places that is out of the norm. People might just think that I might be a weirdo.
One of the purpose of the game PixelPark was also to encourage poeple to go to areas of the park where they might have never known. These places might have fantastic view to the city or even the merri creek. Places near the merri creek also has less people exlploring the areas.Hoever there are really many interesting things that is happening in those area. The labyrinth for example is something that we would not notice from the park. We have to head down to merri creek river and walk along side it to find the place.
Normally when I am in the park, I would only walk on path ways that are clearly in the park. As usually I feel uncomfortable to walk out to explore different areas. No people would walk into weird places too.
This game PixelPark kind of brought me to areas where I have never known to be in the park. One ecample woud be the steep hill heading down to the merri creek. There is actuallly a bench there that people can sit and enjoy the breeze and scenery.
To my surprise when I played this game and it led me down to the merri creek river. Walking upwards the merri creek river I realise there as a place that I have never notice. I think it was called the labrinyth where there is many different small rocks and specially placed in some diagram form.
124
Encouraging them to have a different way of interacting on the site
Putting themselves in the shoes of other people and experience what they felt
What makes this game PixelPark different from all the other application in the game? This game only works when people moves around the park at the site. Instead of games that prevents people form moving and having to stand on the same spot to concentrate of the game, this games does the opposite. People will move around to explore the site manually rather than just moving their fingers on the screen. This allow interaction either between two people or even people and the park.
There are many different kinds of people who goes to the park. So we decided to come out with a few of them to used the scenerios on them to explore the park. We come out with Old woman, Dog, Runaway child, developer and enviromentalist. These different chaaracters has very different preference in where do they like to head to.
Using this this method, we allow one to stand in another perspective to view the park. So If I have chose the Old woman character, I would realise that Old lady likes to go to high places so that she will be able to look far out towards the city. But we will also realise even though she likes high places, she detest having slope as it’s hard for her to walk up. We would also realise they she do not like the sun and rather go to places with shade.
Its interesting to see that players who are playing the same game as me but in a different chracters in the park. I realsie that the places we would go is entirely different because of the different characteristics of the chracter that we have gotten. Half way on where I was walking, I might see someone with different characters near me and always I would ask which characters have they gotten.
Instead of just standing in one corner or looking for a place to sit them to play those normal games. This games allows me to walk around the area. Also playng with a group of friend felt different too. Instead everyone just sanding there, we will move aorund the area and when we see someone near us, we would called out asking them of their score. It seems like an interesting way to interact with friends or maybe even strangers.
I manage to get a Dog for my character and following his way I realise that he like slope areas which pheww its hard to travel to. and he also like vegetated areas probably to look for food.
I got a enviromentalist and oh boyyy. The areas that he head to are densely vegetated areas and always near the the merri creek river. It seems like he like the nature there more than
125
GameplayHey! There is something in
front we should head there.
Oh I think I saw something
populating there too. Let me take a
look what are those
Daddy what are those yellow stuff
growing?
126
Are we on the right track?
Will this make the voxels grow faster? Did my
money increase?It shoud be. I am getting voxels in
phone
127
Gameplay
S c r e e n s h o t s o f G a m e P l a y
D o e s t h i s e n a b l e o t h e r s t o s e e t h e p a r k d i f f e r e n t l y ?
I start exploring places where I would never have gone before. Areas like steep slopes and highly vegetated areas are places where people would avoid. However the game would bring us to areas like this and show us what is there.
The game that we are playing is allowing players who are at the park to understand the park differently. Through the game that they play, they might discover places they normally do not enter or explore.
Here is what looks like when all the types of voxels are spawned in the park. The spawn location for each type of voxels is basically based on the real landscape of the park.
128
Here is what looks like when all the types of voxels are spawned in the park. The spawn location for each type of voxels is basically based on the real landscape of the park.
I kind of felt the vegetation that is around me look similar like the one on my game, However what I couldnt see in reality was that there is sunlight just right beside the mass of vegetation. This makes me think the fact that vegetation needs sunlight to grow and spread further.
D o e s t h i s a l l o w s o t h e r s t o d i s c o v e r i n v i s i b l e l i n k s i n t h e p a r kThe game allows players to rediscover what the park has for them and how they work together to form a park. Trying to make them link the different elements of the park together. How does the ecosystem in the park work as a whole in reality and the game
I saw the pollution voxels just eats up everything in its way. It felt like something in reality where pollution is considered negative and just pollutes everywhere. By a few minutes, I can see the pollution taking up the whole space, which in fact feels like something that is hppening in the world.
129
Reflections
Yes. Some of the main goal that was what we are suppose to achieve have been done. Allowing people to explore the site differently, Yes this has been successfull when we test played the game. Instead of sticking to normal paths and walkways, people start going to steep areas and densely populated areas.
D o y o u f e e l t h a t P i x e l Pa r k g a m e w a s a s u c c e s s ?
I saw the powerups in the densely vegetated areas and was thinking if I should head in or I should just look for the next one. But because it was only a few steps to near to me, I decided to just head into the vegetated areas to get that powerup.
People started heading to places which are interesting to explore. And lookfor different ways and method to achieve the higher scores than the other friends. Instead of the normal game of just standing there. This game allows players to move around and physically find ideas on how to achieve their goals.
Instead of standing and sitting there, I started walking, running and even trying to climb up a steep hill. Instead of going one big round using the path, I just took a shortcut and climb the sides of it. It was an interesting experince.
I would say this Pixel Park game was kind of a sucess as different goals where achieve. But given some more time, there might be areas where we are able to refine and modify to make the game
play and work better.
130
131
132
Studio Air has been interesting and fruitful for the whole semester. Stepping into the studio without prior knowledge of rhino and Unity, this studio has indeed taught me on how do those program works. There are times where I felt that it is really hard to learn the programs via just tutorials and had to spend hours in the tutorials just to understand it. However the sense of achievement was really great when I manage to get it right.
In the studio PixelPark I was being assign to Group 2 Interaction, where our task was to produce the datascape from combination of works from group 1 and 3. I was in charge of analyzing the landscape and voxels information and be able to use them in the game. I was than in charge of exploration of scripting, working on simple statements before moving on to much more complicated ones.At the same time, playing with a degree of camera angles to make sure that it suits the layout that we
have. In my group, I was also in charge of assigning work to other group members on what they could do and what they needed to produced. Given the If statements that I have created, I would shared it with my team members and explore further with them. For the Mid-semester and Final-semester presentation, I was in charge of layout-ing the whole presentation boards. At the same time making sure that the work from other group members would flow all as one. I would look through at their work and give them comments on what they could do to improve it better. For the Part B and C submission I am also in charge of layout for all the works that should be placed.
Overall throughout the whole semester, I have learnt on to be able to work in one group. Being able give instructions and comments for the work to flow as one. Leadership might have been something I have gain throughout this whole semester.
B u i l d i n g P i x e l P a r k i n d a t a s c a p e