A loose question for the weekend about learning grasshopper

A loose question for the weekend :slight_smile:.
(I don’t know if this is a good category for such a question.
If I should put it in a different category, please let me know.)

A lot of people say that when scripting, they get a definition faster, it works faster and is more flexible…

It takes a long time to learn so many components, so does that mean it’s better to learn to scripting in C#/Python first (in grasshopper envrnoment of course), than to learn how components run?

Thanks for joining the topic.

I think you may find scripting hard in Grasshopper if you are not aware of what Grasshopper can do and its limitations. There are two things, learning the scripting language, and then understanding what you can do with it in Rhino + Grasshopper. It is the same way as trying to use Grasshopper without being familiar with Rhino, you need to know the basics to then effectively manipulate them in a meaningful way via scripting.

2 Likes

As an experienced programmer, but I only find the “it works faster”, and in a few cases “more flexible” a reason for me to actually program it from this list. I’ve never really experienced getting a definition faster when scripting.

Reasons for me to program would be:

  • Recursion, or loops (think along the lines of nesting, optimization loops, etc)
  • Reusable components of specific functionality that can be packaged (like a plugin)
  • Performance (Things like raytracing are theoretically possible in grasshopper, but it’s really not fun)

Reasons to just use grasshopper would be:

  • I’m studing a spatial / design problem and I’m trying out a lot of different things
  • When I’m working on a design, not on a tool
  • Things that don’t need scripting (lots of things “just work”).
  • Things that need to be shared in a team with non-scripters (It’s really not fun to get a definition riddled with C# or python components)

It takes a long time to learn so many components, so does that mean it’s better to learn to scripting in C#/Python first (in grasshopper envrnoment of course), than to learn how components run?

I’ve mainly learned grasshopper the other way around (First grasshopper as a user and then using RhinoCommon), and I would say it’s a lot easier to first understand Grasshopper and Rhino’s geometry before trying to figure out how it would work in scripting (this might be different if you’re already an experienced programming with knowledge of CAD Geometry like curves, breps and meshes).

2 Likes

You described it perfectly!
Thanks to your answers I finally understand what it is about.
Thanks you both!

If you find that it takes too long to learn the components or use GH well, you can drown in the vastness of the programming. Go ahead :cowboy_hat_face:

If you want to make 3d algorithmic models learn Rhino and Grashopper. If you want to develop something new, learn any programming language. But first, find the problems to solve before the solutions. Let your creative interests guide what you need to learn.

2 Likes

haha :grinning:
“But first, find the problems to solve before the solutions. Let your creative interests guide what you need to learn.”

Very wise words!
You sound like Buddha or Yoda :grinning:

With this problem you decoded me.
Your mind is raises respect! :pray:

Hey @Wiktor_pl,

I wouldn’t see it as learning an x-amount of skills! The thing is, the more you practise the better you get, but also the more elaborate and complex the projects tend to get that you want to tackle. In general, I think that whoever came up with the “10 000 hours to mastery” philosophy really got it.
I don’t believe that you can ever reach a point, where you’ll be like “now I’ve learned enough”. Usually in life, I guess that’s the attitude of people who’ve already given up on the thing they were pursuing (or on life itself). That said, with growing skills there comes a certain degree of comfort.

Learning programming really tends to be even a little bit harder than Grasshopper, since there are many more mind-blowing concepts to discover and it’s far more abstract.
I think many people find Grasshopper difficult, because it really requires you to have a broad understanding of many things. It has certain elements from programming that you need to understand, like scope, data structures (lists, trees, etc.), conditionals, or even iterations (looping through lists/trees), and then there is the whole geometry sphere (points, vectors, lines, etc.) that is closely linked to trigonometry and maths.

My advice would be to start with small projects and build from there. Try to understand the small components and what you can achieve with those. If you truly get what points and vectors are and how to manipulate them, you can already do lots of things. Even a line is “just” two points, a polyline a collection of points, a mesh a collection of points (vertices) and a collection of numbers (faces), a surface can be build from points, etc.
There’s lots of YouTube and Vimeo content about Grasshopper. I’d focus on the videos that actually explain how things work. The ones that only show how to connect components together to quickly get a fancy result, don’t have much value, at least for beginners. You really have to understand what the components do themselves and how they interact with each other. Understanding enables you to come up with concise and quick solutions yourself.

Now, when it comes to programming, I’d start learning the basics of the language in question first and then come back to Rhino/Grasshopper and dive into their respective APIs.
If you go down that route, it is imperative to sooner or later wrap your head around object-oriented programming (OOP), because data structures, like functions, classes, class methods (even structures, namespaces), etc. are big parts of how the APIs are organised.
There are lots of great sources online to learn Python or even C#.

It is not necessary to learn how to program as a Grasshopper user though! You can do great stuff with just components, but I guess the further you develop your GH skills the more certain limitations of the program start to stand in the way of your creativity, and some can be circumvented with your own scripts.

2 Likes