2015年11月30日星期一

Final Project

       ARCH 655 Final Project
My final project consists of two parts, each of which is based on the 1st project. One of the two parts is to make the color of each bubble change independently, unlike the 1st project, in which the color of building changes everywhere the same. The second part of project is to make the shape of bubble of building facade become more smooth and close to real design.

1. The Color of Bubble
In this part, I use three different ideas with same tool to make bubble show different color independently. The three different ideas are listed as following:

 Picture-1 Idea 1

In the 1st idea, I use area of each bubble as index to set the range for the tool of color gradient and use "Jitter" battery to shuffle the list. Then, using shuffled list as index to re-organize list of area, from which we can get the 1st item to be the "t0" and last item to be "t1". This kind of idea has a kind of limitation that only the area between the two values provided by shuffled list can have corresponding color in the gradient. But if the value of area is out of the range coming from shuffled list, the color will be the same. So, this idea can only realize partially independent color change for the bubbles. 

 Picture-2 Idea 2

The second idea is refined based on the 1st idea. I use 0 as lower limit and the value counted from how many Brep we have as upper limit. This idea is also not perfect though it can realize independent color change in most time. Since I use area as index, so if the area of different or closed two bubbles, the color of them will be the same. Also, if the area of the bubble goes beyond the upper limit, the color of them will still be the same, thought this chance is pretty small, because the upper limit is greater than the area of bubble.

  Picture-3 Idea 3

The third idea is using Python script and this kind of idea runs well. It realizes that the color of each bubble changes independently. The idea of this coding is to count the number of Brep as a parameter, for example, "a",at first. Then create a void matrix as "b". Next, we use "for" loop to generate a random value with upper limit of "a". Then we pass the b matrix to the color gradient as index. Last, we find the max value and min value in the matrix, and pass them to the gradient tool as upper limit and lower limit. By sliding the seed slider, we can make the color of each bubble change independently. See picture 4.



Picture-4 Final Overall View

2. Refined bubble shape.

In this part, I am gonna talk about how I refined the shape of bubble to make it close to the real design.The 1st method is to use Python Script in which the idea is the same as the idea in making recursive squares. See picture 5 and 6. But the mesh generated from this method will cause kangaroo in puzzle and will not pull bubble up. So this method will not work though it can generate an looking-good mesh.

Picture-5 Mesh for bubble by using Python Script

Picture-6 Python Script

Later I have tried another totally different method which is using the series of Weave-bird plug-in tools. See picture 7. After generating the multiple polygons from Brep, we can connect them to the Weave bird’s Catmull-clark subdivision which will automatically fill the simple and clear mesh within each polygonIf we can find out the simple and ordered mesh just like diagram-6 showing, everything will become simple. Later, we can analyze these meshes to find the naked edges and closed edges for converting them into spring. Next, set all the naked points of each mesh as anchor points. After applying force to the points on the mesh, we can pull the mesh up and get the correct bubble shape. With simple mesh generated by using weave-bird, we can successfully pull them up to create bubble shape with kangaroo. See Picture 8.
 Picture-7



  Picture-8


2015年11月1日星期日

ARCH 655 Project 1

ARCH 655 Project 1
For the project 1 of ARCH 655, I decided to do the "water cubic" which is 2008 Olympic game stadium of swimming and is also called the National Aquatics Center. The reason that I select this topic is that when I first got involved with the knowledge of Voronoi, it gave me inspiration at once that I could use Voronoi to do the water cubic. So I wanna try in this aspect.

The model was built in following steps:

Step 1

In order to make the model parametric we need to use "bow 2pt" node. By using this node connecting two the 2 points, with adjusting the coordinate of the points, we can change the length,width and height of the box. As the specific detail of coding, see picture 1.

                        Picture 1
Step 2

After finishing the outer shape of the water cubic, we just finish first step of modeling. The second step is try to make box into shell shape which is close to the original design. We need to create an another smaller box inside the bigger one, which we called middle box, because we need to use another more smaller box in the following. We use the same method as talked in the first step, and then we use the solid difference of node to cute between the two boxes so that we can have a shell.As the specific detail of coding and result, see picture 2.

                          Picture 2

Step 3

In this step, we need to use Voronoi to create bubble shape. But before creating Voronoi we need to do some fundamental steps. Because Voronoi is based on the point, in order to make voronoi full of each face,we need to generate multiple points on each face of water cubic modeling. So, we need to use "POP 2D" node to populate multiple points on each face. As the specific detail of coding and result, see picture 3.

Picture 3


Step 4

After finishing the primitive shape of the water cubic, we need to refine the modeling. The next step is to create the entrance of the water cubic. The method is the same as the one talked in Step 1 and 2.As the specific detail of coding and result, see picture 4.

Picture 4

Step 5

To make the water cubic more vivid and closer to the reality, the next step is to make modeling colorful. I use color gradient with slider so that I can contentiously change the color from one to the another, which is just like the real view the water cubic in the night.As the specific detail of coding and result, see picture 5.

Picture 5

The two hardest problems in making modeling.

Problem 1

The first hardest problem is when I trying to use the smaller box to cut the shell at one corner to get the entrance of the stadium. But the solid difference cannot cut shell totally, because some Voronois' dimension is so small that they are contained inside the smaller box which is used to create entrance. See Picture 6. The method to solve this issue is using data structure that we need to find whether the each corner points of the Voronoi is contained by the small box. If the the whole points of the Voronoi are contained within the smallest box, then we need to use "Cull" node to cancel it from the smallest instead of directly using smallest box to create entrance with the node of solid difference. As the specific detail of coding and result, see picture 7 and 8.

Picture 7

Picture 8

Problem 2

The Voronoi shape on each face of water cubic modeling is a plane. But the real design of the water cubic has multiple convex bubbles on each face. So the next step is to make Voronoi generate convex bubble on itself. Thus, the idea for finishing this goal is to use Kangaroo and Spring nodes. But before we use these two nodes, we need to do some preparation job that we need to create mesh within each bubble for transforming these into springs and adding force. For realizing this aim, I am gonna take one face of the water cubic to demonstrate. We need to use offset node to offset the original border of the Voronoi to the inner direction, find the centroid of the polygon, and connect the centroid with each corner point of the polygon. As the specific detail of coding and result, see picture 8 and 9.

 Picture 8

Picture 9

Now let's review 4 screenshots of parametric changes
                      Screenshot 1

                      Screenshot 2

                     Screenshot 3

                     Screenshot 4



.