# Coding for 3D Part 3: Tools of Choice

Design Efficiency

Wasting time and being inefficient are never great strategies. I want to make sure that this is an all encompassing series that will take me from no skill to some skill as a designer and coder. Having a defined target within this series is crucial as it gets me to act. I understand that life becomes easier with intentional movement. I compare it to drawing a straight line. If one has a point on a paper they are drawing a line to, one shouldn’t look at the pencil, but rather the point they are looking to get to. This allows less deviation and a straighter free motion line than if we fixate on things outside of our point. Having a pointed trajectory is nice and it allows for quick prototyping and development. It also makes things easier to begin with. Skeletons and outlines towards a direction lead to tangible results.Today I will be explaining the tools of choice I will be using within this series to grow as a parametric 3D designer and coder.

I did a good amount of preliminary research on what tools are available for people who want to do what I am doing. After a good week of insight and talks with others through email, I have realized what will be my best tools for my series at hand. Firstly, I will be using the 3D modeling software Rhinoceros.

Rhinoceros

Rhinoceros is a free form surface modeler which uses the NURBS mathematical model. NURBS refers to non-uniform rational basis spline. This is a mathematical model that is used frequently in computer graphics. It generates curves and surfaces. There is a ton of precision embedded within this modeling system. It can handle surfaces that are defined by common mathematical formula (or analytic functions) as well as free form modeled shapes. We will take a deeper dive into NURBS in a different article. The designs created can be efficiently handled by computer programs and yet allow for easy human interaction. NURBS surfaces are functions of two parameters mapping to a surface in three-dimensional space. There are a plethora of plugins that can be used to complement Rhinoceros for fields such as rendering and animation, architecture, marine, jewelry, engineering, and prototyping.

Grasshopper

We will be deep diving into Grasshopper when we use Rhino. Grasshopper is a visual programming language that runs inside of the Rhino application. Programs can be made through dragging components onto a canvas. These outputs are connected to inputs of different components to build a larger coding architecture. I like the idea of the program starting of as a visual based coding system. It works for bringing visual thinkers and artistic types into the world of coding, because typically coding is best for those who enjoy writing. Grasshopper is used to build generative algorithms for things like generative art. A lot of grasshopper’s components create 3D geometry. It has a slew of other applications such as numeric, textual, audio-visual, and haptic applications.

Python

Python will be our code language of choice when we want to add more complexity within our program. For those of you who have read my other articles, I like to use Python quite a bit. It so happened that Python was the language of choice for many people who script within the Rhino and Grasshopper environment.

Outside of the technical tools, I will be doing a lot of reading and studying to get me up to speed in different ways. Think Parametric will be an online tutorial series that I will refer to. I want to literally think parametric. This will allow me to seamlessly integrate within a parametric modeling framework. I’ll be using the book “AAD Algorithms-Aided Design: Parametric Strategies Using Grasshopper” for inspiration and more tutorials as well. Lastly I will be reading the book, “The Design of Everyday Things.” I was recommended this book a while ago by a colleague, and I had been meaning to get to it, but this series definitely gives me reason to plunge into it as it will have relevant information for me to use when building parametric designs.

This is the cookbook I will be using throughout this series. I am also willing to hear from others on recommendations for me in terms of learning resources or groups involved with this type of work. Please contact me through email if interested in helping (esehud@gmail.com). I am also looking to do some interviews with people within this line of work, so that I can gain more insight as well.