Top Banner
ALGORITHMIC SKETCHBOOK 1
132

Hattieong 778153 sketchbook1

Aug 02, 2016

Download

Documents

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Hattieong 778153 sketchbook1

ALGORITHMIC SKETCHBOOK

1

Page 2: Hattieong 778153 sketchbook1

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

Page 3: Hattieong 778153 sketchbook1

3

Page 4: Hattieong 778153 sketchbook1

Week 1 - 3Algorithmic sketchbook

4

Page 5: Hattieong 778153 sketchbook1

5

Page 6: Hattieong 778153 sketchbook1

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]

Page 7: Hattieong 778153 sketchbook1

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]

Page 8: Hattieong 778153 sketchbook1

Algorithmic Grasshopper sketch

8

Page 9: Hattieong 778153 sketchbook1

9

Page 10: Hattieong 778153 sketchbook1

Algorithmic Grasshopper sketch

10

Page 11: Hattieong 778153 sketchbook1

11

Page 12: Hattieong 778153 sketchbook1

12

Page 13: Hattieong 778153 sketchbook1

Exploration of Unity

13

Page 14: Hattieong 778153 sketchbook1

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

Page 15: Hattieong 778153 sketchbook1

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

Page 16: Hattieong 778153 sketchbook1

16

Page 17: Hattieong 778153 sketchbook1

// 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

Page 18: Hattieong 778153 sketchbook1

18

Page 19: Hattieong 778153 sketchbook1

Exploration of Initial If Statements

19

Page 20: Hattieong 778153 sketchbook1

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

Page 21: Hattieong 778153 sketchbook1

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

Page 22: Hattieong 778153 sketchbook1

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 ]

Page 23: Hattieong 778153 sketchbook1

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

Page 24: Hattieong 778153 sketchbook1

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

Page 25: Hattieong 778153 sketchbook1

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

Page 26: Hattieong 778153 sketchbook1

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

Page 27: Hattieong 778153 sketchbook1

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

Page 28: Hattieong 778153 sketchbook1

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!

Page 29: Hattieong 778153 sketchbook1

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.

Page 30: Hattieong 778153 sketchbook1

30

Page 31: Hattieong 778153 sketchbook1

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

Page 32: Hattieong 778153 sketchbook1

32

Page 33: Hattieong 778153 sketchbook1

Exploration of Colour scheme

33

Page 34: Hattieong 778153 sketchbook1

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

Page 35: Hattieong 778153 sketchbook1

35

Page 36: Hattieong 778153 sketchbook1

36

Page 37: Hattieong 778153 sketchbook1

37

Page 38: Hattieong 778153 sketchbook1

38

Page 39: Hattieong 778153 sketchbook1

39

Page 40: Hattieong 778153 sketchbook1

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

Page 41: Hattieong 778153 sketchbook1

Gradient = Grey and Orange

41

Page 42: Hattieong 778153 sketchbook1

42

Page 43: Hattieong 778153 sketchbook1

43

Page 44: Hattieong 778153 sketchbook1

VARIETION OF COMBINING COLORS

44

Page 45: Hattieong 778153 sketchbook1

45

Page 46: Hattieong 778153 sketchbook1

46

Page 47: Hattieong 778153 sketchbook1

Re-defining Final If statements

47

Page 48: Hattieong 778153 sketchbook1

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

}

}

Page 49: Hattieong 778153 sketchbook1

49

If statementsL a n d s c a p e s c r i p t

Page 50: Hattieong 778153 sketchbook1

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

}

}

Page 51: Hattieong 778153 sketchbook1

51

If statementsS i m p l e v o x e l s s c r i p t

Page 52: Hattieong 778153 sketchbook1

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

}

}

Page 53: Hattieong 778153 sketchbook1

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

Page 54: Hattieong 778153 sketchbook1

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

}

}

Page 55: Hattieong 778153 sketchbook1

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

Page 56: Hattieong 778153 sketchbook1

56

Page 57: Hattieong 778153 sketchbook1

57

Page 58: Hattieong 778153 sketchbook1

58

Page 59: Hattieong 778153 sketchbook1

Exploration of the Pixelpark game as a whole

59

Page 60: Hattieong 778153 sketchbook1

60

INTERACTION WITH PLAYERS

PETRIFIED VOXELS PRODUCEDHow does the player interact with the landscape voxels and how is it shown in the game

Page 61: Hattieong 778153 sketchbook1

61

INTERACTION WITH PLAYERS

SICKNESS SPREADING INTERVALSHow does the player interact with the landscape voxels and how is it shown in the game

Page 62: Hattieong 778153 sketchbook1

62

Timelapse screenshot of views over a period of time

Page 63: Hattieong 778153 sketchbook1

63

Timelapse screenshot of views over a period of time

Page 64: Hattieong 778153 sketchbook1

64

Timelapse screenshot of views over a period of time

Page 65: Hattieong 778153 sketchbook1

65

Timelapse screenshot of views over a period of time

Page 66: Hattieong 778153 sketchbook1

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

Page 67: Hattieong 778153 sketchbook1

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

Page 68: Hattieong 778153 sketchbook1

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

Page 69: Hattieong 778153 sketchbook1

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

Page 70: Hattieong 778153 sketchbook1

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

Page 71: Hattieong 778153 sketchbook1

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.

Page 72: Hattieong 778153 sketchbook1

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

Page 73: Hattieong 778153 sketchbook1

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]

Page 74: Hattieong 778153 sketchbook1

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

Page 75: Hattieong 778153 sketchbook1

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]

Page 76: Hattieong 778153 sketchbook1

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

Page 77: Hattieong 778153 sketchbook1

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]

Page 78: Hattieong 778153 sketchbook1

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

Page 79: Hattieong 778153 sketchbook1

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

Page 80: Hattieong 778153 sketchbook1

80

Page 81: Hattieong 778153 sketchbook1

Exploration of camera Angle

81

Page 82: Hattieong 778153 sketchbook1

82

Page 83: Hattieong 778153 sketchbook1

83

Page 84: Hattieong 778153 sketchbook1

84

Page 85: Hattieong 778153 sketchbook1

85

Page 86: Hattieong 778153 sketchbook1

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

Page 87: Hattieong 778153 sketchbook1

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

Page 88: Hattieong 778153 sketchbook1

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

Page 89: Hattieong 778153 sketchbook1

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

Page 90: Hattieong 778153 sketchbook1

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

Page 91: Hattieong 778153 sketchbook1

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

Page 92: Hattieong 778153 sketchbook1

Surrounded by trees, Noise and Paths

Surrounded by trees, Paths and a little interesting areas

92

Page 93: Hattieong 778153 sketchbook1

Surrounded by a huge degree of noise and a little Path and Trees

Surrounded by large amount of Paths and Interestingness

93

Page 94: Hattieong 778153 sketchbook1

94

Page 95: Hattieong 778153 sketchbook1

95

Page 96: Hattieong 778153 sketchbook1

96

INFECTED VOXELS

VEGETATION VOXELS

SITE USERS VOXELS

NOISE VOXELS

SUNLIGHT VOXELS

Page 97: Hattieong 778153 sketchbook1

97

FLOOD VOXELS

INFECTED VOXELS

PETRIFIED VOXELS

POLLUTION VOXELS

Page 98: Hattieong 778153 sketchbook1

98

Page 99: Hattieong 778153 sketchbook1

99

Page 100: Hattieong 778153 sketchbook1

100

Page 101: Hattieong 778153 sketchbook1

101

Page 102: Hattieong 778153 sketchbook1

102

Page 103: Hattieong 778153 sketchbook1

103

Page 104: Hattieong 778153 sketchbook1

104

Page 105: Hattieong 778153 sketchbook1

105

Page 106: Hattieong 778153 sketchbook1

106

Page 107: Hattieong 778153 sketchbook1

107

Page 108: Hattieong 778153 sketchbook1

108

Page 109: Hattieong 778153 sketchbook1

109

Page 110: Hattieong 778153 sketchbook1

110

Page 111: Hattieong 778153 sketchbook1

111

Page 112: Hattieong 778153 sketchbook1

112

Page 113: Hattieong 778153 sketchbook1

113

Page 114: Hattieong 778153 sketchbook1

114

Page 115: Hattieong 778153 sketchbook1

115

Page 116: Hattieong 778153 sketchbook1

116

Page 117: Hattieong 778153 sketchbook1

117

Page 118: Hattieong 778153 sketchbook1

118

Page 119: Hattieong 778153 sketchbook1

Game Reflection

119

Page 120: Hattieong 778153 sketchbook1

Gameplay

What character did I get to play

this time?

120

Page 121: Hattieong 778153 sketchbook1

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

Page 122: Hattieong 778153 sketchbook1

OHH!!! It works! It works!

There is vegetation voxels growing around

us!

122

Page 123: Hattieong 778153 sketchbook1

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

Page 124: Hattieong 778153 sketchbook1

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

Page 125: Hattieong 778153 sketchbook1

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

Page 126: Hattieong 778153 sketchbook1

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

Page 127: Hattieong 778153 sketchbook1

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

Page 128: Hattieong 778153 sketchbook1

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

Page 129: Hattieong 778153 sketchbook1

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

Page 130: Hattieong 778153 sketchbook1

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

Page 131: Hattieong 778153 sketchbook1

131

Page 132: Hattieong 778153 sketchbook1

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