Grasshopper

algorithmic modeling for Rhino

Hi all,

I've been investigating on the subject of customized (uneven) curve divisions recently. I was especially interested in finding a solution for controlling the "density" of division points on a curve.

What I've come up with is a definition which let's you aply a custom "density function" to a curve and divide it into segments of equal "weigth" rather than length.

The results are satisfactory:


... and quite precise:


However, some parts of the definition are still a bit convoulted.

Any suggestions how to make it simpler?
Has anybody tried other ways to solve similar problems?

I'll be making an attempt to write a VB component which does the same thing and maybe experiment with surfaces, so I'd really apreciate any feedback on this one.

Thanks!

Views: 25173

Attachments:

Replies to This Discussion

I think you could move your definitions a lot further with a "Mass addition" component, from which you use the partial results to evaluate points along a curve. check out the attached file and picture.
Attachments:
And I think what you are doing is really neat! This could go in all sorts of fascinating directions! I can't wait to see more.
I apologize for saying you could "move it further": your definition is very well developed (and cool!) and you already used a mass addition component, I just didn't look carefully enough. Nevertheless if you are trying to do what I think you are trying to do, I think it conceptually comes down to extracting the incremental values out of a smoothly varying function. This has tons of applications. My next thought is point density based on ARGB values drawn from a finite element analysis map of some surface, with a structure generated from the points and mapped back onto the surface. Or maybe you could input something like one of Ted Ngai's solar radiation maps.
Hi Jacek,
have you tried that?
Obviously doesn’t give you the graph, but it’s a fast way to do it.

Regards,
Carlos
Attachments:
I was helping a student with a very similar question just the other day.
One way is to use JellyFish attractor points :

I guess you could also make it so the attractors worked directly on the curve points, but kept them constrained to the curve, as that would probably be more intuitive to interact with.
A similar approach should also work for surface subdivision.

Here is the definition: density.ghx
here it is with attractors acting directly on the curve points:

density2.ghx

Its not exactly the same as constraining points to the curve, just moving them then taking CurveCP, but it seems to work ok.
Hi Daniel,

I tried to use your definition, but couldn't figure out what exactly the sinks do.
can you elaborate a bit please?

many thanks,

Guy


P.S - Jack, you made something really nice here! thanks


The sinks pull points from the curve towards themselves. These points are then projected back onto the curve.
Each sink consists of a position and a strength - Supplying them as circles is just a convenient way of controlling the inputs instead of having to create a slider for every point.
thanks!
I find it very useful

Hi Daniel, 

Could you possibly post the entire grasshopper definition of this file rather than simply the VB script? I'm in desperate need for the technique you have applied here, particularly the linear version, but not very familiar with constructing a VB script component. Also, is there a way to control how the density and spacing of the points is distributed along the curve? I appreciate your help!


-Milou

Nice work there.. really good stuff.

A similar method I worked on a while ago is Curvature Based Division.. needless to say, its got some very handy implementations in real world architecture. The definition is extremely simple, though it gets a bit complex for surfaces.


There have been times when I have found the Graphs in GH not good enough for my intentions, and so I go ahead and build one in the Rhino viewport itself as a curve object, and then sample its x & y values. For your example above, do you think it would be simpler to make a control curve around the curve to be divided, whose profile determines the density of divisions on the main curve -- also more intuitive I think?
hi suryansh

great tool, you just builded the curvature graph with components
nice idea, but i just thought about how can we write that in vb and get the closest point always @ the right t-point and not, if the curve is to tight together and has a huge curvature on the wrong t point of the curve because the closest point is on the other side...( so how can we setup the exclude algorithm?....maybe the grasshopper crew can point me in a right direction)
i studied the sdk on curvaturegraph util but it is not possible to extract the points on the curve....
best to]

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