Grasshopper

algorithmic modeling for Rhino

I was recently introduced to the concept of PIM (Programming In Model) in this LinkedIn discussion: 

https://www.linkedin.com/groups/Autodesk-University-2014-Recap-2432...

Robert Woodbury, author of Elements of Parametric Design, introduced us to PIM. Look for his first post and the message string that follows it. There are links to videos and documents that explain the process.

It looks like it currently runs in GenerativeComponents and I was wondering if anything similar has been done in Grasshopper. In particular, the Look Ahead feature seems very promising.

Anyone know more about this PIM topic?

Views: 724

Replies to This Discussion

I watched the video but can't work out what Look Ahead is supposed to be. Can you elaborate?

It seems that it's just a preview of what happens when some parameter changes. Since we already have ctrl+z function, I don't really know what's the advantage here.

I can't see any major difference between PIM and using GH scripting components (well, you can select some objects and see where do they come from... let be it).

If it's all about UI, I would say that it's quite achievable right now. Here is a simple "hack" which get's a bit closer to the PIM approach than standard scripting workflow (using FileToScript available in the Milkbox group) : 

With a little good will from David we can get even closer. Here is some proof of concept (it's not working) :

In the current state it would lack intellisense mostly.

Hi David and Mateusz,


Thank you for your quick responses.


David, there are two video links in the discussion, an older one without audio that I posted and a newer one with audio that Robert Woodbury posted. I suspect you watched the first one. Here are both of the links:


No audio: https://www.youtube.com/watch?v=cnPPdJaDxzg


With audio: https://www.youtube.com/watch?v=WeuYnH-6y2o&feature=youtu.be


The first video does a good job of condensing the information into three features, Liveness, Localization and Lookahead but it’s hard to follow without audio explanation. The second video explains the features in more detail and it is much easier to follow the logic of PIM. I recommend watching both of them to get a good overview of the process.


From what I can gather from Dr. Woodbury’s comments, the videos and documentation, is the goals of PIM are threefold.


1. PIM strives to narrow the gap between direct editing of the model and scripting.
2. PIM offers multiple ways to work with the model that are all associative and bi-directional.
3. PIM brings increased intuitiveness to the parametric design process with real-time feedback and previews of proposed alternatives.


The second video with audio also makes the point at the end of the video that PIM is not a CAD program but rather it is a concept that could be integrated into any CAD program.

It seems to be really close to the grasshopper logic.

Some extras that I noticed are:

1.Inverse lookup

Being able to select geometry in the model (Rhino) viewport and having the matching component highlighted in the graph (GH) window.

This is something that comes up often in GH users wishlists. I can't remember David's response to this wish but he is certainly aware of it.

2.Script Window

In my opinion this could be a nice addition to GH, mainly because (as stated in the video) it could familiarize users with scripting. The "hack" that Mateusz suggested is, I believe, a proof that this is possible.

3.Preview

This is the look ahead feature. I will have to agree with Mateusz on this one, it just seems to cause more unnecessary clicks without any real advantage.

4.Dependencies in the model

The feature shown in this capture seems quite interesting:

Selecting the line causes a popup to be displayed in the model viewport and from there one can easily change the initial points from which the line was generated.

This looks sweet , yet I can't help but wonder what a mess would be created when selecting a curve that has been interpolated through 100 points, or something even more complex (multiple geometries that originate from data trees etc...)

5.Windows Layout

This is what I liked the most from the video.

Positioning the GH window efficiently on top of rhino is still a pain in the ass for me. No matter what, it will always hide some part of rhino that I need and I have to move it around and resize it a lot...

Being able to tile it with the model viewport would be very convinient...

Finally about this:

"The second video with audio also makes the point at the end of the video that PIM is not a CAD program but rather it is a concept that could be integrated into any CAD program."

I don't know if, and how, it could be integrated into any CAD program but even if it could, it would be something to integrate to Rhino, not GH. And it is actually something very similar to GH the way I see it.

I believe the preview feature could be an attempt to solve the change blindness issue, being one of the five challenges of parametric modelling as described by Rick Smith. See Daniel Davis Phd thesis it has great info about this and other issues regarding parametric modelling.

http://www.danieldavis.com/thesis-ch2/

This is a very nice feature since when changing parameters in a big definition sometimes it is difficult to see or understand the change. I know that the user can enable the preview of previous components to see better the change, but this approach seems more convenient. Another approach could be to have an option of temporary preview (regardless if the components preview are on or off) when changing a parameter highlighting the before and after geometry, similar to onion skin in animation software.

cheers

alex

This is a concept called 'immediacy' and it's one of Bret Victors biggest crusades. He's got many talks and some papers written on the stuff.

Thank you David for the resources

cheers

alex

Hi Nikos and Alex,

Thank you for your feedback, you both make some excellent points.

I’m going to use Nikos’ outline for my responses:

1. Inverse Lookup

I agree that this is a very desirable feature. The video makes the point that this associativity makes it much easier to study the upstream and downstream implications of a parameter change.

2. Script Window

This is probably the nicest aspect of the full associativity, bi directional feedback of PIM. It certainly would help people learn the syntax of scripting.

3. Preview

I agree with Alex that this is a very nice feature and I think he’s right in his opinion that it should be something you can turn on or off as the situation dictates. The fact that the preview is highlighted in a different color from the original model could certainly help to overcome change blindness. Thanks, Alex, for the link to Daniel Davis’ excellent thesis.

4. Dependencies in the Model

I was also intrigued by this feature. The ability to wire your parameters directly to the model reduces the abstraction that scripting or visual programming introduces into the design process. As far as the mess it might create goes, that’s what Ctrl Z is for!

5. Windows Layout

I agree that the floating canvas for GH is one of the most frustrating aspects of using Grasshopper. A tiled canvas would be more user friendly.

Nikos, your point that incorporating PIM into GH would be more about revising Rhino and less about updating GH is a very good point. I hope this doesn’t become a stumbling block to adopting these features in the future.
Thanks for the great links, David.

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service