**Lesson 1_**

Metaballs exploration

We started this task by examining how to make connections between functions, learning how to extract inputs from functions to create working operations. We created a Metaball form, exploring the creation of organic forms through basic, repeatable inputs.

**Lesson 2_**

We created a tower with twisted floor plates.

We started with a tower with multiple layers, then learned to twist the individual floor plates in a series so the whole form corkscrews as the layers rise.

Then we added a point that would allow us to move the model, but adding the point “broke” the model because something in the rotation did not sync up with the point.

Upon further exploration, the point needed to be added to the rotation function so the two commands were using the same point as a beginning reference.

**Lesson 3_**

We explored the graph mapper function to generate complex lines and shapes based off of a graph.

We added the graph mapper function into the twisted tower project to increase the complexity of the twisting floor layers.

**Lesson 3.5 _**

We investigated the random generation function. You can achieve seemingly random results with a specified number acting as a key for the generated information. We examined how to use it to assign random points on a line, populate a 2 dimensional area, and a 3 dimensional area.

**Lesson 4_**

We created surfaces by using the MD slider function.

**Lesson 5_**

We focused on processing data by splitting it with the dispatch function, adding inputs to the splits lists, then rejoining the data points into their original order with the weave function. Doing this, we created a pattern that would increase the height and randomness of placement in respect to a particular curve.

In order to change the growth of the “city” you need to change the number going into the height factor, modifying it with by a particular power (probably less than 0) to get a nonlinear growth.

**Lesson 6_**

We changed a lofted surface by dividing it into panels and used data trees to manipulate each panel. By switching between lists of data, we could alter one panel at a time, or set those changes to affect all the panels on the surface.

**Lesson 8_**

We used the Grasshopper Plugin Kangaroo to explore geometries found with gravity simulations

**Lesson 9_**

We used Anemone and Dendro to form lines based off of attractors, then used those lines to create meshes

**Lesson 10_**

We used Galapagos to organize shapes into as small of a surface area as possible without the shapes overlapping with each other.

Galapagos uses an evolutionary solver to narrow down the most accurate solution.

**Lesson 11_**

In this lesson we created different complex curves using expressions to calculate the positions along the curve.

**Lesson 12_**

We explored the concept of clusters to create a varied faced based off of a vector.

This is the cluster that gets plugged into the next grasshopper expression