Thanks David!

On Jan 16, 6:31 pm, David Rutten <[email protected]> wrote:
> Node based solvers like Grasshopper lend themselves really well for a
> multi-threaded approach, assuming you start at the leftmost component,
> then start growing new threads whenever a data stream splits. There
> are two problem with this in Grasshopper (three if you count the
> nightmare of trying to debug threaded applications):
>
> 1) Grasshopper doesn't go from left to right, it goes from right to
> left. Only those components are expired which are potentially affected
> by a change, and each component is in charge of collecting the data it
> needs (thus a component on the right side of the network keeps asking
> upstream components for data, who in turn ask other upstream
> components for data and so on and so forth until you've reached the
> left side of the network). This means that if two components inherit
> some data from a single source, that source needs all kinds of thread
> protections build in. It practical terms, it means that a lot of the
> time threads would be waiting for each other anyway, effectively
> destroying any performance increase you might otherwise get.
>
> 2) Rhino is not multi-threaded, and many of the functions inside the
> SDK are not even thread-safe. I recently made a test plugin to see how
> the Contour command could benefit from multithreading, unfortunately
> the surface-plane intersection code is not thread safe which means the
> whole thing crashed pretty much immediately, and when it didn't crash
> the results were all funky.
>
> --
> David Rutten
> [email protected]
> Robert McNeel & Associates
>
> On Jan 16, 3:50 pm, damien_alomar <[email protected]> wrote:
>
> > Don't worry David, I figured multitheading was a big stretch.  Not
> > that its simple by any means, but multithreading is something that
> > McNeel in general doesn't want to touch with a ten foot pole. Not that
> > I blame you guys, but we live in a multithreaded world, and I'm a
> > multithreaded....:)
>
> > The idea of separating out the rebuilding of cluster solutions sounds
> > like an awesome idea.  That sort of separation sounds like it would be
> > really be useful with large definitions in terms of managing rebuild
> > times. All of the other requests you pointed out sound really
> > interesting, especially being part of the toolbar and having a
> > "cluster editor".
>
> > -Damien
>
> > On Jan 16, 5:22 am, David Rutten <[email protected]> wrote:
>
> > > Clusters don't add any functionality to Grasshopper, they only make it
> > > look cleaner since instead of looking at 50 components you're looking
> > > at a single cluster object.
> > > But the components are still there (I just don't draw them anymore)
> > > and I have to jump through a series of exceedingly tight hoops to make
> > > it work.
>
> > > The implementation I have in mind is that each cluster will become
> > > it's own ghx file (whether on the disk or only in memory, similar to
> > > Blocks in Rhino), and as such will truly remove the components from
> > > the main file. Once a cluster is defined as a stand-alone entity, it
> > > will be a piece of cake to instance it any number of times. This new
> > > approach will remove a lot of nasty code from the Grasshopper drawing
> > > pipeline, mouse event pipeline, file writing/reading pipeline and so
> > > on and so forth.
>
> > > I'm afraid I'll have to disappoint Damien, when I mentioned
> > > "algorithmic separation", I wasn't referring to threading at all. It
> > > just means that all the components inside the cluster would no longer
> > > be part of the solution-process of the main file. Instead, they would
> > > run in a separate solution (but in the same thread) whenever something
> > > needs the output of a cluster.
>
> > > At any rate, I've got a lot of work to do on data-structures before I
> > > can start with the new cluster code, but it might be a good idea to
> > > post your wishes early, so I don't have to force new features in after
> > > the fact.
>
> > > I know of the following requests already:
> > > - Password protect clusters, so they cannot be opened by anyone else.
> > > - Be able to name, colour code and order input and output parameters.
> > > - Be able to set default values for input params.
> > > - Supply a custom help topic for the cluster.
> > > - Have a separate editor for Cluster contents, which 'explodes' the
> > > cluster temporarily into an empty canvas.
> > > - Save cluster definitions as files so they can be easily re-used and
> > > shared.
>
> > > --
> > > David Rutten
> > > [email protected]
> > > Robert McNeel & Associates
>
> > > On Jan 16, 8:07 am, rub <[email protected]> wrote:
>
> > > > so, how's that works? as you can see at big 
> > > > picturehttp://www.designalyze.com/wp-content/uploads/2009/01/grasshoppershot...
> > > > this cluster makes additional geometry for making a paper model from
> > > > exploded vertices from triangles. any ideas how to do that with or
> > > > without clusters?
> > > > anyway thanks David for explanation!
>
> > > > On Jan 16, 1:57 am, David Rutten <[email protected]> wrote:
>
> > > > > I'd recommend keeping as good 3~4 feet distance between yourself and
> > > > > clusters. The current implementation is absolutely disgusting and they
> > > > > are short-listed to be rewritten from scratch.
> > > > > At the moment, a cluster is nothing more than a visual override for a
> > > > > bunch of components. There is no instancing, no algorithmic
> > > > > separation.
>
> > > > > --
> > > > > David Rutten
> > > > > [email protected]
> > > > > Robert McNeel & Associates
>
> > > > > On Jan 15, 11:48 pm, fraguada <[email protected]> wrote:
>
> > > > > > It looks like a cluster.  You can take a couple of components and 
> > > > > > make
> > > > > > them into a cluster.  The icons are above the GH canvas and look 
> > > > > > like
> > > > > > an explosion (that is the unclustering icon, the one next to it is 
> > > > > > the
> > > > > > clustering icon).
>
> > > > > > luis
>
> > > > > > On Jan 15, 7:43 pm, rub <[email protected]> wrote:
>
> > > > > > > i was doing designalyze last project and i can't get what is 
> > > > > > > thishttp://grasshopper3d.googlegroups.com/web/Picture%204.png?gda=nFtdmUM...
>
> > > > > > - Show quoted text -- Hide quoted text -
>
> > > > - Show quoted text -

Reply via email to