Welcome to the home for Digital Research 2013

Here you will be asked to post a screenshot as well as an approximately 400 word description of the criteria or parameters that you implemented in your use of this weeks precedent study.

Here is the schedule for the semester, including the student responsible for moderating the discussion:

Performative
8/20- Shanghai Tower- Beorkrem
8/27- Versioning- Steven Danilowicz
9/3- Adaptive Components- Dylan davis
9/10- Material Constraints- Christian Sjoberg
9/17- Programmatic Constraints- Neil Edwards

Generative
9/24- Aesthetic- Trevor Hess
10/1- Biomimicry- Ben Sullivan
10/8- NO CLASS- Fall Break

Interactive Design
10/15- Smart Objects- Lina Lee
10/22- Smart interfaces- Isabel Fee

Data Visualization
10/29- Emotive Expression- Chris Pockette
11/5- Physical Expression-
11/12- Daylighting-
11/19- Final Project begins
11/26
12/3

Tuesday, September 24, 2013

Sjoberg Programatic Constraints

             This weeks focus on programatic constraints took us through the process of creating a script to re imagine the Seattle public library. We started with a spreadsheet from which values could be referenced  in order to create forms representing the programatic volumes. From this point our script used the height of the boxes to determine the vertical spacing. The iterative portion of this script came from the use of random number generators that would move the volumes in the x and y dimensions. This created a means of variation for the stacked form. The ability to insert data from a spreadsheet in grasshopper is a new concept to me. The benefits are easily imaginable, but primarily it allows you to reference sets of external data that are based off of real world constraints. Lunchbox, as a toolset allows for the division of surfaces for paneling and structure as well. Moving forward with our exploration of Grasshopper I'm sure the skills in this exercise will be implemented in many forms.

Seattle Public Library


With the Seattle Public Library script, we are starting to get to a point that overlaps with Digital Projects. While, it is interesting to compare and contrast the two different programs in their use of spreadsheet integration, in this case Digital Projects may have been a better program to use. First we read the parameters for each of the building spaces out of a spreadsheet, and then apply the floor-height and floor-to-floor-height variables. This gives us a nice line along the origin of these boxes (not off of the center) from which to deviate. Here it may have been helpful to align all of the forms around their centers so that we would get a slightly more realistic final shape, without so much overhang. Then we randomly move all of the shapes along their XY-planes to create different versions, by changing the seed of this random number generator we get different variations. Lofting the edges of the different boxes creates the final form.

If we wanted to make this script a more sophisticated, we could tweak the amount that each box could deviate from the original axis so that we could not get some of the impossible overhangs that currently come out of the script. Another option is to parameterize the lofts so that each variation lofts automatically and uses a logical system. This would require some advanced coding, but it would be interesting to see when it could go. In this case the lofts would all have a particular logic and the building would optimize for different effects that the lofts can create, such as maximizing atrium space, minimizing material, etc.

Programmatic Constraints


The Seattle Central Library identified programmatic clusters: five of stability and four of instability. Each platform is a programmatic cluster that is architecturally defined and equipped for maximum, dedicated performance. The spaces in between the platforms function as trading floors where librarians inform and stimulate, where the interface between the different platforms is organized spaces for work, interaction, and play.

We started look at diagram and focused on exploring methods for engaging data into grasshopper and using it to create geometry output. Based on the Excel spreadsheet, we used Lunchbox "Excel reader" component to calculate dimensions. We found variables width, number of floors, and floor to floor height of each space from the excel spreadsheet to make five stacked boxes. We took the data to define the height of each block using a MassAddition component and Vector components, and a Replace component and Random components were used to remove boxes to manipulate the volumes.

I think, Lunch box plug-in is very useful. This plug-in includes components for parametric geometry, paneling, structure, utilities, and workflow. One of great things using Lunch box in grasshopper, it helps us simple to work comparative to conventional grasshopper when modeling and creating programmatic placement.
 

Monday, September 23, 2013

ProgrammaticConstraints_Edwards



To complete the Programmatic Constraints lab, we modeled a Rhino file after OMA’s Seattle Public Library. Using the Grasshopper plugin called LunchBox enabled us to use data located in an Excel file to drive the components of the script.

Lunchbox will grab specified data out of an Excel file that is open and sourced from the desktop. This is accomplished by using ExcelRead components. We used a file that had rough estimates of the dimensions of the floor plates found in the Seattle Public Library and their respective heights in relation to one another to manipulate the Grasshopper script. The script was set up so that the parameters were controlled by number sliders that were referencing the Excel file information. These parameters were manipulated to create volumes that were similar to the main spaces found in the form of the Seattle Public Library.

The columns of data used from the file to manipulate the script were the Width, the Number of Floors, and the Floor to Floor Height. Using a MassAddition component and Vector components, the volumes were stacked up on top of one another, and a Replace component was used to remove every other volume to create spaces between the programmatic “boxes” of Seattle Central. A set of Random components was then used to manipulate the volumes in the X and Y axes.

LunchBox also provides the user with an array of textures and grids to use on surfaces. Once I chose the iteration of the script that I found to be the most interesting, I used this texture feature to add a diagrid structure to the programmatic boxes. I then used Rhino to create a series of planes to replicate the form of the Seattle Public Library. I decided, however, to alter the planes defining the interstitial space slightly, in order to better display the success of the script. Once I created the planes, I used LunchBox to add a separate texture from the diagrid of the programmatic boxes.    

Seattle Public Library_Dylan Davis



LunchBox is a plug-in for Grasshopper used in the lab to study the Seattle Public Library, designed by Rem Koolhaas.  The glass and steel building consists of several floating platforms wrapped in a large steel net around a glass skin.  The floating boxes represent different program within the building, each possessing its own width, length, number of floors, and floor to floor height.  The building's shape was created based off Koolhaas' philosophy that the building's functions should dictate the form, instead of the structure.

By creating an excel spreadsheet with each program and its calculated dimensions, Excel Reader in Lunchbox can pull specific data and utilize it within the grasshopper script.  For lab, we pulled the width, number of floors, and floor to floor height of each space from the excel spreadsheet and made overlapping boxes.  Then by adding up all the heights with Mass Addition, a list can be created with the start height of each programatic piece.  These values are then used as vectors to stack each of the boxes.  Although with Rem Koolhaas' design, he removed the kids space, living room, mixing chamber, and reading room within his building.  These spaces were to be represented as more transparent.  Replace Items component was used in order to edit the list made and remove these unwanted boxes.  Rem Koolhaas didn't just leave theses floating forms perfectly stacked, but staggered them to create a better aesthetic.  The Random component with move is able to generate different iterations of the floating boxes.

LunchBox becomes very useful when applying pre-determned sets of dimensions, such as modules or, in this case, programatic placement.  The driver for design is derived by numbers within an excel spreadsheet and is an asset in Functionalist architecture.

-Dylan Davis

SeattlePublicLibrary

In this lab, we looked at data contained within an Excel spreadsheet being the determinate of form. This can be useful in terms of setting limits to volumes, positions, or how far different elements are allowed to "roam" apart from each other. In Koolhaas' Seattle Public Library, the separate programmatic elements appear stacked and shifted, with an exterior skin anchoring at the corners, wrapping up the entire building. The excel file contained divisions, floor to floor heights, square footages, lengths, widths, & number of floors which are used to create volumes similar to the Library's.
The ExcelRead controller in Rhino seeks the data in the spreadsheet. After preparing the parameters with sliders which are based on the excel columns and row numerical data, the boxes can be created with the controls coming from the spreadsheet.
In order to created the proper roaming, which allows shifts of a controlled proportion, move commands were attached to randomized lists formed from widths and lengths in the spreadsheet.

Lunchbox gives us a shortcut when creating textures in GH/Rhino. Looking at the Seattle Public Library, we see a triad pattern across the facades. Lunchbox has an effect which looks similar to the Library's, by adding it to the mix, we have a realistic model.

Friday, September 20, 2013

Seattle Public Library Scripting Exercise

9-20-13

  Using the lunchbox plugin for grasshopper is an incredibly useful tool for editing models based on data.  Simply editing the Excel Spreadsheet where the data is based changes the model and provides a fairly fluid environment for experimentation.  By allowing excel to do the heavily lifting when it comes to the functions and equations, grasshopper becomes a more drawing element based scripting tool. 
  
  In this exercise, the data from the excel sheet was used to drive the dimensions of room volumes and the distance of the volume above the ground floor.  Outside of the spreadsheet, other buttons within grasshopper drove the X and Y jitter of the room volumes at their respective Z locations in the model.  The spreadsheet was set up so that there was a fixed square footage per volume, so that the width variable was not only tied to the length variable, but also the number of floors in the particular volume.  The user can control the number of floors in the particular volume as well as the width of the volume, leaving excel to calculate the length of the volume to allow for the square footage to match the predetermined value.  Height and spacing are also controlled by the user, since the user inputs how high the floor to floor height is.  Because this has no effect on the square footage, it merely changes the overall height of the building. 

  
  I see lunchbox as a means to take different data sets and apply it to a specific model rather than one that is based off of pre-determined or grasshopper constructed forms.  Here, the data drives the model, whereas in other situations, it may be curves or boundary representations that drive the way a model works.  Not that there is anything wrong with being a numbers driven model, it’s just a different method of solving an architectural problem.



Tuesday, September 17, 2013

MaterialConstraints_Edwards


Our lab this week asked us to examine how material constraints can become design constraints. We studied several pieces of art that bend and move to their respective material's limits to create interesting rhythms, patterns, and forms.

This lab utilized the Grasshopper plugin for Rhino. Setting up the script was difficult, as it was a three part process. First, we needed to establish a curve in Rhino that we then manipulated into a cantenary arc through Grasshopper. We then began working on the second part of the script. After building a torus in Rhino, we spliced it in half and made a wireframe version of it that was taken into Grasshopper and further manipulated. The end result was a series of alternating wire frames that were independently manipulable with Grasshopper.

Once we finished the second part of the script, we plugged the original cantenary arc into the second part of the script to create fillets on the joints of the wireframes. Then we baked the finished product into Rhino, and extruded forms based on those frames. 

Material Contraints

Looking back the the grasshopper script that we made, the most important part is list manipulation. Having gotten all of the points out of the half torus, there are two options, constrain the number of points on each section to an odd number, or do some hacking to make the lists work correctly. Personally, I think that it would be much easier to constrain the number of points to an odd amount, and I don't see it having a negative impact on the aesthetics of the system. In that case all we would need to do is create a dispatch for the list, or filter the list with the expression:

IF listIndex % 2 == 0

This would filter out all of the list items whose index was not even, since the mod operator returns the remainder from the the division. If we don't want to constrain the number of points then the next best option would be to add two conditions to the statement that we would use if we only had an odd number of points:

IF listIndex % 2 == 0 OR listIndex == 0 OR listIndex == LengthOfTheList-1

This would allow us to filter out all of the odd indices while keeping the first and last items of the list. We subtract 1 from the variable LengthOfTheList because the first index of the list is 0.

Sjoberg_Material_Constraints

The 2010 ICD pavilion takes advantage of a woven strip logic to create a structure by pairing instances of tension and compression. With this simple yet unconventional structural system, a strong structure can be created from plywood strips that are only a quarter inch thick.
        The script for this project began with a solid torus volume, which was rebuilt to create a framework of 80 curves, these curves were then extracted and brought into the grasshopper script. The curves were next divided by a selected number of points. This became the projects primary variable. The alternating bends of the weaving logic were achieved by using a dispatch component to create two lists of points. These points were then used to draw polylines which could be filleted and revolved around the center of the form to achieve the structure. We were introduced to the Galapagos optimizing engine which is a set of components that can help you find variables that result in maximum or minimum outputs. This is an extremely valuable tool when considering efficiency of structure or material.
       Biomimicry in architecture can allow us to create incredibly efficient forms and take advantage of natures million years of testing and development for structural systems. We have a lot to learn still as far as the implications biomimicry on our future design but as we look to build an architecture in harmony with its environment we may find that this is an advantage.

Monday, September 16, 2013

Material Constraints_LINA LEE


Galapagos is a component in Grasshopper that has a unique function and way of using it. It takes a bunch of sliders hooked up and changes by small, gradual amounts, all the while checking a number and trying to make that number bigger or smaller over time, depending on the settings. To make the Galapagos component work, we need Genome parameter up to any number of sliders and Fitness parameter up to a number that is produced by your Grasshopper script.
 
During the lab 4, we used a centenary curve that creates a spline curve in Rhino and need two points and a number slider to drive the length of the curve. We started torus shape and break down into a series of component, trim low half of the torus ring and rebuild 80 pieces in U direction. Then we extracted one of curve form object from original torus and deleted all of the circles to get only half curve. Using curve component, we set multiple curves in grasshopper and used dispatch component dealing with 2 different set to create automatically even and odd members. We used polyline and fillet component to remove the sharp edges of the lines. Finally we got the digital model looks like ICD/ITKE pavilion.

 

Material Constraints_Dylan Davis


Using nature as precedent, Bio-mimicry can take advantage of material properties to create a form specifically about function.  An example is the catenary arc found in a hanging chain.  The curve created at the chain’s rest point minimizes the potential energy throughout, and in opposition (compression) can create a stable form.

The Galapagos component in Grasshopper provides means to finding the catenary curve.  By applying a set of constraints to the component, it will apply evolutionary algorithms to create a Fitness Value.  This value then represents the ideal properties to create the catenary arch.

In lab, we used a series of catenary arches created by Grasshopper’s Galapagos component to model after a pavilion at Stuttgart University.  The pavilion exploited the elastic nature of wood to bend the material into weaving arches.  To create these arches in class, we started with the Torus solid in Rhino.   Then we extracted a series of curves and used the dispatch component to divide the curves into two separate lists.  Then by dividing the curves into points, PolyLine component can create new curves that connect to specific points (items) in each curve (list).  This allowed for the weaving form because one list gave the PolyLine points: 0, 2, 4, 6, 8, and 10, and another list gave the opposite points.  Then the Fillet component was used to remove the sharp edges of the lines.  These new series of curves can be used in rhino to create surfaces extruded around a central point.

Week4 Material Constraints (catenary arc)

The form modeled in Lab 4 should appear to have alternating "legs" arranged around a central ring. By culling certain points which resets where an angle should make its turn, a leg has a separate path than the neighboring leg. The catenary arc applied to the angles should provide a physical constraint to the form; it prevents an arc from spanning to wide, or high.

Tuesday, September 10, 2013

DigitalProject_NeilEdwards

Grasshopper and Digital Project are two programs that may appear similar at first glance, but in fact are quite different and are typically utilized for differing reasons.

Grasshopper is more of a generative tool. Its flexibility allows the designer to view all possibilities, regardless of their physical plausibility. It is not concerned with structural integrity. The use of grasshopper to sift through multiple combinations and versions of a design is useful during the schematic phase of a project. Grasshopper is limited in the accuracy that it can provide at the detail level, especially with curves and fillets.

Digital Project is less of a generative tool and more of an analytic tool. Unlike Grasshopper, it does take the structural integrity of a design into consideration when using its interface, and will not perform calculations that are not physically possible. One of its strengths is that it can detail a part extremely well, especially fillets. Digital Project would be used best when the key parts or set of parts has been determined already and are being used in a design that does not require them to change drastically.        

Sjoberg_Adaptive Components:Grasshopper vs. Digital Project

When designing at various levels of detail and resolution, there is an inherent need for an equally varied spectrum of digital modeling tools. Digital project allows for a greater precision at the scale of connections, whereas Grasshopper allows for an easier conceptual and algorithmic modeling at an architectural scale.
     The advantage at the detail scale for Digital Project comes from its system of references vs a coordinate grid. This allows for the ability to transfer the sets of references associated with a part from one position to another. This creates a whole new part based off of the logic of the original but responding to its new set of inputs. The automatic boolean functions of Digital Project are also an advantage in detail modeling because it does not allow you to create overlapping forms that would be unbuildable in reality.
Grasshopper however, is a powerful visualization tool, allowing for the user to work off of parameters that can be easily adjusted and manipulated. The Advantages of Grasshopper at larger scales comes from the ability to create forms based off of algorithmic vs. reference based parameters. The issue grasshopper presents at the detail scale is one of overlapping and disconnected  surfaces, making it less favorable for designing the parts that would in reality solve this problem. Grasshopper creates logics and because of this it is best used at a conceptual level.
It is conceivable that throughout the course of one project, both programs would be used. Grasshopper for example could set up a truss logic for a facade, and Digital Project could be used to create the components based off of the output from Grasshopper.


Monday, September 9, 2013

Adaptive Components_Lina Lee

Parametric and generative modeling has become increasingly popular in the world of architectural design. Many software developers release applications that support this kind of modeling. To parametrically generate parametric modeling software such as Grasshopper is an amazingly powerful tool and workflow. And the Digital Project is also broad and powerful software in parametric modeling.

There are two main types of object in grasshopper which is parameters and components. Parameters are used to input variables and feed them into components that transform them and output the result, which may be geometry or simply data that can be input into further components. This visual system allows highly complex systems to be created in a flexible and non-linear way and enables relationship between different operations to be easily laid bare. Unlike grasshopper, digital project operates at a more fundamental level than other modeling software. It is able to deal with very complex shapes, really large and complex models, and came with all the utilities embedded into Catia from PowerCopy to optimization algorithms or user-defined feature, which allows you to control associatively at the component level, rather than across an entire system. The PowerCopy tool is one of the most beneficial items in Digital Project. By selecting a few simple inputs, we can instantiate a large parametric system into various configurations. I think, both of software is really great, it’s a good way for people who have never worked in parametric to get a visual idea of how parametric software works.

Two Ways to Do Two Totally Different Things

The prompt, to compare the appropriateness of Grasshopper and Digital Projects in different situations reminds me of a similar question that I asked Dennis Sheldon last year.

How would you compare the design philosophy's of Digital Projects and other parametric softwares like Grasshopper?

If I remember correctly he said that Digital Projects was designed for really detailed projects that required a level of engineering and finesse in their design that Grasshopper could not provide. It touches on the difference a little bit, but for the most part, does not stray from marketing speak.

One thing that neither software does well is loops, I think that is one of the most important distinctions that should be recognized, since it prevents them from acting really well in the context of generative design. That is not to say that they can't do repetition well, but it certainly cuts down on the amount of "cognition" that either can have about the forms they are creating.

I'll start with Grasshopper.
Its definitely not as powerful as Digital Projects, but in the same way, it actually allows you to sketch out a design in it. As long as you can manage the lists properly and get through some funky logic to get things done, it allows you to make a series of design decisions and play with the parameters that make up the resulting form. In this way, a system can be designed and repeated with varying changes to the parameters each time the initial system primitive is repeated. The transition from Rhino to Grasshopper is not that hard once you get used to programming since the commands are roughly the same. Thus is allows you to build something just like you would in Rhino, but give you the flexibility to change the design after the series of commands is complete. Thus, it is really good when you only have loose idea (or no idea) of what the final form is going to look like.

On the other hand, Digital Projects almost necessitates an understanding of how the final object is going to look. While there is an impressive amount of manipulations that can be made to objects, their basic structure stays the same. Thus, its good when you are designing a system of similar parts. Parts like custom joints that all have the same basic form and structure, but at the same time, need to be flexible to accommodate the different positions of connection points. While the larger form is relatively static (or within the positional tolerances of the joints) the software is extremely flexible when it comes to managing all of the different combinations of joints that can be made. With this ability, and the reason that Gehry likes it so much, is that the form can be warped, shifted, and bent out of shape, and the model will stay together and each part of the construction will adapt to the changed form or structure. While new form cannot be generated, it can be detailed and analyzed in various positions in a way that would be next to impossible in grasshopper.

Adaptive Components_Dylan Davis

Grasshopper and Digital Project are both powerful 3D building software used today.  They allow for the easy creation of variations in projects with their flexibility of parameters and dimensions.  Deciding on which program is best suited for a specific project can be determined by the differences in strengths of each.

Digital Project is a program developed by Frank Gehry to handle the complicated structural systems he uses in his work.  The program, unlike Grasshopper, uses no cartesian coordinate plane and modeling is done within a "blank space."  Digital Project can build within an empty canvas by using a system of relationships made by its surrounding parts.  This system becomes a strength when using the program because it allows for complex geometries to be easily made and connected, meaning that a building with a complicated structure should use Digital Project for easy fabrication.  In contrast, Grasshopper creates a system with the use of programs that generate an output in Rhino.  These programs contain different algorithms that interlock and exchange information.  These algorithms can be manipulated easily by changing the numerical inputs.  Grasshopper's strength to translate the design process into a giant math problem allows there to be more flexibility and control when designing, meaning that more experimental design should use Grasshopper.

Adaptive Components_Sullivan


To decide whether to use Grasshopper or Digital Project is heavily influenced upon whether you want an interesting array, or the degree of tectonic soundness the object your thinking of needs. 
From what I've encountered with Grasshopper, its strengths lie within its almost obscene levels of ease with which one can array a series of forms to create interesting textures.  Its interface allows a user to get a sense of how something will look & to experiment with form before committing to a real-time change (via bake). In its favor, it is highly sympathetic to beginning parametric designers (boxes turn red if something isn't working, how nice is that??) But, to its own disservice, this flexibility in order to create a "sketch" of a form, may create unwanted tectonic falsifications, if one was attempt fabrication of a structure. Additionally, Grasshopper has an interesting "duality" feature; it can allow multiple effects on top of others, similar in the way photoshop allows multiple filters affecting the same photo. But again, these seem like smoke and mirrors.
Herein lies the saving grace of Digital Project: this is software to build hardware. Based on the need for something (such as an airplane) to perform, to be a tangible object in reality, or to be structurally sound, the developers of Digital Project made the software perform in a way which creates objects that respond to these needs. For example, by forming a connection of two or three pipes which become a joint for a tension cable bridge, Digital Project processes the three pipes into one singularity. In contrast, Rhino/Grasshopper will not treat the three pipes as if they belong to a system unless you do some crafty boolean surgery.  Digital Project creates connections where Grasshopper may not.
In conclusion, Grasshopper is great at handling experimental arrays, facades, and textures. But if you need tectonically stable forms that act as if they were poured from a mold, try Digital Project.

Thursday, September 5, 2013

Fluidity of Grasshopper versus the Rigidity of Digital Project


When designing parametrically, grasshopper and digital project both provide a similar means to an end.  Bot forms of software give the user a way to change a single element in the design and thus affect the way the rest of the model reacts to it.  How these programs preform this action is where their differences take place.

            Grasshopper bases the inputs off of buttons and relationships between various plugins.  In this manner, various model instances such as lines, surfaces, or BReps can be plugged into different buttons at any time to create different effects.  In this manner, the order in which the model is constructed is not rigidly defined.  There is a type of fluidity to grasshopper that allows for a certain amount of experimentation and trial and error that is not found in digital project.


            Digital project differs from grasshopper in the way that everything that is created in the program is based off of a geometry or instance that precedes it.  Surfaces that are created in the software are based off of curves, which are based off of points.  When changing something in a model that is constructed in this manner, a small change can dramatically change the way pieces are shaped.  These changes can even be so great that they cannot be implemented with the determined parameters.  It is because of this that digital project is more suited to determining a more structural approach to modeling than grasshopper is. 

Tuesday, September 3, 2013

Assignment for Adaptive Components

Before next Tuesday, please post an entry describing the different attributes of a design problem that might necessitate using Grasshopper or Digital Project. Use specific examples to articulate your argument.

Versioning_NeilEdwards


Our lab based on the versoining process of Malaguiera and others focused on how to use IF/THEN logic to create an endless array of possibilities for a design. Starting with a set of Boolean objects in Rhino, Boundary Representations (Breps) were set up as starting points for the manipulation. Throughout the lab, these Breps were essentially copied and pasted into a pre-determined grid system in a random fashion through the script. The script contained "jitters" for each floor of the resultant design, in a way that each floor was randomized independently of the other. The parameters which were under control influenced the size of the grid (total dimension), the size of each individual node in the grid, the height of the second jittered floor in relation to the plane of the first floor, etc.

The use of versioning in design is one that is arguably under-utilized. This type of parametric design allows a designer to look at endless possibilities that are not simply "random," but contrarily follow a set of rules that the designer specifies. Presentation to a client should be more selective, however, as one would find it hard to choose from such a large number of options.

Malaguiera Script


The script here creates a block of boundary representations randomly distributed in a gridded shape.  The grid parameters are defined by a rectangular grid button, which gives us the dimensions of each cell, defined by a slider, as well as the number of rows and columns.  The centroids of these cells is then extracted and put to the side for later use.

Our four boundary representations are then put into the system.  Each of the BReps is a container for a booleaned surface that describes a component for the units.  These are stairs, walls, columns, or a slab.  These units are put into a list, and then the list is repeated until it reaches the length equal to the number of cells in the grid.  The BReps then have a bounding box placed around them, and the centroid for the bounding box is located and moved to 0 in the Z direction.

At this point, we take the centroids from the cells and shuffle them randomly with a Jitter button.  This preserves the shape of the grid, while shuffling the positions in the list.  Next, a vector is drawn from the list of BRep centroids to the shuffled set, and finally the BReps are moved onto the shuffled grid. 


This process is then repeated on the second floor of the units.  The stair block is not included in this section, and the operation is move up 8 units.