It's about the logic not the result

I purposely made this project extremely simple to get you to understand some basic concepts. You have actually learned enough to do a lot of crazy stuff already you just don't know it yet. This lesson isn't to show you how to make a simple circle pattern, it is to get you to understand the logic behind this process. Remember, all we are doing is grabbing some data, remapping it and applying it to other aspects of our design. I will leave this page a bit less step by step. I want you to try to get the result yourself. Before you continue we will need to install a plug in called Lunchbox

Use Curves as Attractors

Instead of measuring the distance of one point try to use a curve. To measure the distance of a point to a curve the component is called Curve Closest Point

Placing rectangles and adding rotation

Here instead of a circle I am using the Rectangle component. I am also applying a rotation into the Algorithm with the Rotate component. 

Lunchbox is your best FRIEND 

Grasshopper has a great community of programmers and artist that make plug ins for Grasshopper. The ones I use the most are  Lunchbox and Fabtools. Lunch box has a great paneling tool set that get's you 90 percent of the way there. I use it all the time, I highly suggest playing around with all these tools. 

USe a hexagon Cell INstead

Here I added a bit of steps to get the result. Try to build it on your own. I'll give you a hint, pay attention to my culling. 

Use a diamond Cell

Here we are using a diamond cell, but the tool doesn't give us a point to measure the distance from. I used a component called Area, to get a point in the center of the diamond. 

Graph mapper

Add a Graph Mapper component in the end of you Algorithm. Right click it to see its different type of graphs, play around with it an see how it effects your Algorithm. 

Cleaning your work space 

When I am writing an Algorithm, the second I solve a part of the Algorithm I will clean up my work space. These concepts are hard enough to understand and once they get really complicated it can look extremely messy and hard to comprehend. Especially if you move on to another project and you have to open an older file. You end up shooting yourself in the foot.  I left my algorithms messy because it helps you guys read and connect the steps. I will show you some way to clean up your work place. 

Hide the unnecessary wires

Make the wires that go across the whole algorithm invisible. Even though it might help you connect the dots, after a while it will look like a tangled mess.

Scribbles and notes

Whenever you have seen text in my Algorithms they are all scribbles. I use this to label parts of my algorithms. The Panel tool is good for looking into data but I also use it as a note tool. I am always leaving notes, not only for myself, but for those who will use my algorithms later.  

Grouping and coloring

Remember if you select a group of components, you can group them by pressing space bar and selecting group. When you right click on the group, you have other options, like changing the color. 

Organize your space 

What is easier to understand the top algorithm or the bottom one. Even though this is an incredibly simple algorithm, if you start developing this habit, it will save you hours of work down the line. I always label and put all my inputs in the top left side of my algorithms. This way I can control all my algorithm in this space.

I have even added unnecessary components as a labeling mechanism. If you look at my Distance Threshold group, you can see I am culling multiple sets of data. Sometimes it is hard, especially after hiding the wires, to figure out what went in that process. So I place 3D data components to help me label them. This is way I connected the Diamonds into a geometry component, the points into a points components and the distance number into a number component. I am not actually doing anything with that data. From an algorithm stand point, my culling component is outputting a set of points, than I add that set of points to a component that collects points. So in the end the data is exactly the same. Nothing has changed, but when I want to use the points for other aspects of my design, I can just grab it from the point components, instead of guessing which wire I connected into the culling components. 

Baking it out

Now that we have figured out how to make simple patterns, we can start using them in our 2D and 3D applications.