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?
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.
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!