algorithmic modeling for Rhino


My name is Raymundo Burgueno. I do nurb based modeling for the automotive and product design industry. I have been using grasshopper for almost a year now and some of my more complex algorithms need custom scripting. I've always been a self taught sort of person. When I was younger I did simple html. Just recently I taught myself very basic python scripting. My guess would be probably what a first term student would learn. Just enough to copy and paste code for a visualization program my client used.

I had some basic question for you computer science majors. First and foremost I would like to say I am always humbled by the skill set and high level understanding of math you guys posses. I would like to thank anyone who takes the time to read and respond to my post.

What is the best language for nurb based design?

I rarely use meshes. The main problems I have, are usually about trimming, surface transition, curvature and stitching for 3d printing and manufacturing.

How long would it take me to understand and write my own code?

I have no delusions on how hard it is to get to that level. I do not think it's easy, I do not think it will take me a couple months to wrap my head around. I know if I were to embark in this journey, it would take me a very very long time. I am in no hurry.

Is it even worth it?

I have my own company. I work around 70 hours a week. I know class A Nurb modeling, polygon based modeling, photorealistic cpu and gpu based rendering, it's coming to the point where I feel I might be spreading myself too thin.

Whats the usual rate for a programmer who knows what he is doing?

I know theirs always cheaper people who might get my problem solved, but I believe that talent is expensive because it is worth every penny in the long run. I do contracting work too. I always have to tell my clients how the previous contractor did such a horrible job, I would have to start from scratch.

Where do I start?

I don't like classes. I like books, tutorials and google. Regardless if it makes financial sense for me to start, I believe in education for the sake of self improvement. I also think computer science forces your brain to understand complex concepts and that, in turn, makes you a smarter person.

Thanks again and I hope you guys have a good day.

Views: 363

Reply to This

Replies to This Discussion

What is the best language for nurb based design?

It doesn't really matter what type of geometry you're dealing with, it's not like Python is better at meshes but C# is better at Nurbs. The three languages I'd recommend all use the RhinoCommon SDK and thus all have access to the same functionality.

How long would it take me to understand and write my own code?

If you already know how to program, it probably won't take too long. If you're past the hurdle of what it means to declare and assign variables, how conditionals and loops work and what scope is, you've already rounded the hardest corner.

Is it even worth it?

That really depends. "Learn programming" is clearly not blanket good advice. Most people out there do not have to learn programming to be happy with their lives and successful in their careers. For some people it can make a small difference, and for a few people it can make a huge difference. If you feel you're in the 'some' category then this is indeed a question you have to answer. Note that the investment for learning programming is a continuous process. Unless you keep up your skills and learn about new stuff that becomes available, you'll lose the ability to write successful code over time.

Where do I start?

Step 1 is to answer the previous question. It is unlikely that anyone besides yourself can answer it, but you can start by making a list of things you do manually now that may be programmable. Then make a list of the things you are unable to do now but which you might be able to do with programming. If while looking at these lists your reaction is: "meh", the answer is probably no.

Step 2 is to pick a language. This is again a very personal thing; there's no wrong answer, because there's no right answer.

Step 3 is to start learning this language. My experience is that the best way to learn a programming language is to try and solve a real problem that you understand very well. If the problem statement is nebulous or poorly understood, you'll be learning two things and that's a recipe for unnecessary frustration.

Here are my thoughts on language:

Python: I don't use Python myself, I can sort of read it while moving my lips. I don't particularly like Python though. The indentation sensitiveness stresses me out, and I find the lack of type-safety disturbing. However it is a good language for mathematical/scientific programs. There are lots of additional code libraries you can easily import that will ease the development of mathematically intense algorithms.

C#: I like C# very much, but it does suffer from geekerosis. A lot of the keywords used in the language are not self-explanatory (abstract, sealed, virtual). For me this is no longer a problem as I've memorised what they all mean. C# is designed to be an efficient language to write, rather than an easy one to learn.

The great thing about C# though is that there's a huge amount of material out there for learning it. It is one of the most popular, mature and modern languages you can hope to pick.

VB: I learned VBScript as my first language, and then moved on to VB5, VB6 and VB.NET. It is somewhat more friendly than C#, and functionally it is almost identical. The switch from VB to C# is reasonably low-threshold and there are excellent tools for translating VB code to C# and vice versa.

Since you already know some Python, it probably makes the most sense to continue on that path. If you want to switch, C# is more like Python than VB, so C# would be my next suggestion.

As for where to get information... you have 4 major options when developing code for Rhino. 

If it's a question about the language itself, StackOverflow is a great resource. It can be a pretty hostile place for beginner questions, but I find that mostly the questions I'm asking have been asked already and the answers on SO tend to be good. In fact usually when I google my questions, the first few hits are always SO posts.

If it's a question about the Rhino SDK or Grasshopper, you can ask it either on the GH forums (where we are now), or on Discourse. We're not as quick on the draw as SO, but we do know about Rhino.

If you're looking for a basic explanation of what a keyword or a type is for, perhaps with an example, MSDN is the best first choice. In fact if you google the name a of a .NET type, the first hit is almost always an MSDN page.

Whats the usual rate for a programmer who knows what he is doing?

I thought this deserved a separate response. I don't know the average rates, and I sort of doubt there's such a thing. But the question is do you really want to charge for writing software? Because there are already lots of programmers out there trying to make a living doing that. Or do you instead want to bill for solving specific problems, and the whole programming thing is just something you do in house to solve those problems for your clients?

The latter makes much more sense to me from an economic perspective. If you are charging X to solve problem Y, and with programming you can solve it in half the time, you've just doubled your income.



Search Grasshopper


  • Add Photos
  • View All

© 2017   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service