Mathematical Foundations & Learning

Hi all,

having used many of the great plugins (Nautilus, Parakeet, just to name a few) out there, I wonder what skills are required to create such plugins, i.e to translate patterns from nature, mathematical concepts,…to GH algorithms. I assume a good grasp of mathematics, but what subfields specifically? Any resources that are recommended for a beginner?

I imagine it all depends on what type of geometry, techniques,…One wants to use, but is there foundational stuff worth looking into?

Hope my question makes sense.

Thanks,

1 Like

Most of those plugins are written in C#. Although Python can also be used to begin with.

Many people start by creating Grasshopper components.

There area number of recourses to start with:

  1. Anything in this list. The dev components are lower on the page: Rhino - Learn to use Rhino
  2. Here is a guide for Rhino 7 on making C# Components for Grasshopper: Essential Guide to C# Scripting for Grasshopper | Food4Rhino
  3. Here are the foundational tutorials: Rhino - Grasshopper Guides
  4. Essential Mathematics is a good set of sample too: Rhino - Essential Mathematics for Computational Design
  5. One of the most active Grasshopper C# trainers: https://wickersonstudios.com/

There are more, but I hope that gets you started/

2 Likes

the exact subfields depends on the domain of the problem.
but a geneeral list would be: algebra, geometry, set theory, logic. these are generic and you’ll find plenty of resources online.

to get started with any plugin or script, find any of the many python/c# courses available for free online. and of course, what @scottd mentioned above

then you’d want to study algorithms, computational algorithms, and computational geometry.

for more advanced algorithms you’d want to have a good grasp of calculus, linear algebra, discreet mathematics, analysis, graph theory, topology, and maybe category theory. Here i can point you MIT opencourseware

You’ll probably even want to do some statistical analysis, and here i can point to a free ebook called MML - mathematics for machine learning.
In general, knowing a few things about statistics will help you in a few cases.

to get even deeper into plugin development, you’d need a better grasp of the various interfaces between hardware and software, but that’s another topic.

looking forward to seeing your work. cheers

1 Like

Nowadays I believe 2 other skills are much more important: The skill to find the knowledge (in the internet) and to focus long enough. I know this might sound a bit too generic, but most plugin developers have not the right background on the subject, nor do they really invent something new.

Most plugins are in fact wrappers or adaptions to existing examples. In fact some use open source libraries, some read scientific papers and translate C or Javascript examples into C#-Rhinocommon. Other just create shortcuts of reoccurring tasks. Once you get an intermediate skill in programming and the Rhino & GH API in particular; you should be able to recreate a lot of these things. Not saying its easy, but you not need to get a phd in math first either!

2 Likes
  1. ParametricCamp!!!
2 Likes