I started this week by creating a large section through my site showing conceptually how the elevated rail, the Milwaukee Innovation Center and the wetland are positioned. Below is the overall section and details:
I was pretty satisfied how it turned out. I placed the plants according to how much water they prefer: lily pads with deep water; cattails, wild rice and switch grass medium; ash trees and taller grasses moist soil; and ash trees liking fairly dry soil.
The wood platforms seen throughout the section are comprised of two pylons and a cross member. I started working on a script last week that generated the angles and elevations within a series of parameters, but the more I learn with Kyle’s Digital Design class I continue to improve the script. The next generation pictured below takes points supplied by the user (by clicking) to generate the walkway. It still needs some improvements, but it is getting closer:
It has become increasingly obvious that what I really required was a polar script. MicroStation allows users to enter rectilinear values (X,Y,Z) or polar values (Angle, Distance) but scripting thus far only has dealt with XYZ. I first developed a polar function, which takes a start point, an angle and a distance and uses trigonometry to determine the position of the end point and returns that XYZ value. The beauty is that I can define an angle range from -10° to 10° and have it draw a zig-zag line with variation, but overall is fairly straight.
I used the principle to create a series of mound shapes for my wetland terrain. I was inspired by Stoss LU (see last week). The script draws 6 points and 6 lines, with points 1-3 between -20° and 20° and points 4-6 draw in reverse, from 160° to 200° (the first set + 180°). The last line connects point 6 to the start at point 1. The result are 6-sided trapezoid shapes. A check function had to be added to determine if any of the lines were crossing and if they did it would reject the points and start over. Twisted shapes would not work. Finally, two points are extended from the middle of the shape to form the top points of the mound. All of these points and then connected with triangular planes to form a 3D object.
Below are a few examples of the shapes generated:
I then chained them along a zig-zag line as described above using the start point of the next as the mid point of the previous to make a snake:
The lines sometimes intersect and/or cross which makes nice areas between the landforms for water to collect. Below is a gallery with additional images from the first script:
I then re-wrote the script and the polar function to accommodate spherical geometry, meaning that I can sent a polar vector into any place in space, not just along a plane. The polar function was more complex, but made the actual mound-generating script much easier: I never had to check to see if lines crossed because they were all radiating from a central point. Each point got a 60° piece of the 360° pie and was able to randomly place a point within that area. The left and right pieces were supplied with a longer vector, making the overall shape longer length-wise that height-wise. The height points were also based a the same center point, yielding a very similar mound shape, but is much more efficient and easier to modify:
I used the polar function again to generate a path framework for the mounds to follow, but instead made them radiate from a single point instead of being parallel. The mound determines the angle of the line used to make the framework, and orients itself along that axis so the long ends are always parallel to the path. Here are some images of the second version script and the radiating and branching effect:
Combined with the existing terrain and the branching script (with some tweaking) generated a system which I am really happy with. Below are two perspectives:
Next week: back to building design.
















