Grasshopper

algorithmic modeling for Rhino

I have a conic surface that I created in Rhino using the loft command. I want to create a surface texture that looks like a bunch of hairs leaning on the surface. The end result should be similar to the following image of a hut. 


I do not have experience using kangaroo to simulate forces, but I have made a test using multiple random components on a flat surface to fake the effect I'm going for. See image below. 

The main issue I'm having is that the original file used for my test surface used box morph and the variable pipe command. Box morph is a bit touchy on a curved surface and it is not as elegant as I would like it to be (ie. I want all the hair diameters to be perfectly circular and uniform in size). Variable pipe also does not align the base of the hair with the existing surface, which means I have to offset the surface and then trim the excess of my pipe.....leading to heavy code and the file crashing. 

So I'm trying to rebuild the "hairs" using a new method:

1) Subdivide the surface

2) Find the midpoint of each surface and then create a straight line that is perpendicular

3) Move a point along the on the straight line (between the start and end points) in the z direction, and then create a nurbs curve using this point and the start and end points 

4) create a circle at the base of each crv, and then two more circles: one at the point in the middle point (I think I set it to .9) and the end of the curve

5) The problem: Now I am trying to sweep along these three circles and the nurbs curve to create a bent hair/pipe that is flush with the conic surface, but it does not work.

If someone can help that would be amazing. I've included my original surface test file and my new file where I am rebuilding using the sweep command. Below is a drawing of what I'm trying to achieve. 

Views: 3470

Attachments:

Replies to This Discussion

How about this?  'Loft' looked better to me than 'Sweep1':

Attachments:

flush with the conic surface

I started writing a P.S. to previous post but failed to save it before the timeout.  Read the fine print and made some changes, starting with 'Step 2: Bend Crv' - bending the hair guide curve so the base remains normal to the surface.  Moved the tip point down instead of the middle point up.  Using 'Merge' to guarantee sequence of circle radii and circle curves.  Used 'Pull' to surface on the base circle to seal it to the curved surface.

Attachments:

Not sure this is what you want. anyway, hope it is of some help.

Attachments:

Beautiful, just going to check this out now. will let you know how it works!

Hi Hyungsoo Kim, I'm trying to add a rotation to the original curve so they appear to flop not only donwards (randomly) but also left to right (randomly). The issue I'm facing is that the lists will not merge properly and so I am getting three circles assigned to my base plane of my hair. 

Is there a way to make these lists merge properly so I can perform the loft? 

Attachments:

I messed around a bit and finally got the lists to merge!

Attachments:

Instead of dividing the surface, random points look OK?

'Pull' curve to surface is compute intensive... (slow).  The 'Loft' error is because some of the pulled circles cross the edges of the surface, so they fail to loft - which is a good thing.

Attachments:

Random points looks better than my original, thank you! I'm actually going to combine what you and Hyungsoo have proposed here. I'll let you know it it works out. Thanks again excited to dive in!

Another idea, instead of (or in addition to) random bending - random small rotations of the hair guide curves (1100 "hairs", quite slow):


Naturally, playing with parameters changes things.  Bend, length, diameters, etc.

Attachments:

Fantastic, thanks Joseph. I'm new to grasshopper and so it's taking me a while to decipher how you've done this, but I have some time to dedicate to this now so I'll take a look. The rotations in the x and y directions looks great. I can't tell if it's also rotating in the z direction I'll have to take a closure look :). 

My goal is to merge the more cylindrical shape with the random positioning you've shown here. And also to have the rotation random in the x, y, and z directions. 

The only thing I want to set up after that is an attractor point so I can control the length of the hairs. but i think I can manage it. I'll have to see how far I can get first.

Many thanks again

The rotations are not in X, Y or Z.  After bending, each "hair" guide curve is rotated around its own axis, the surface normal at that point ('Line SDL').

As to cylindrical vs. pointy shapes, that's just a matter of adjusting the 'radiusTop'; I have it at 0.025, so small it looks like a point but still works as a circle for lofting.  Make it bigger and they will look like tubes.

Because computation takes so long when the point count is high, it's best to use a low count number while playing with tube shape, length, bend, attractors, etc., then bump the count back up when you've got the parameters as you like.

Rotation-

Ahhh okay, this makes more sense. That is more similar to my original test surface. 

Shape-

Yes, I think I have to add a fourth radii to get the same shape Hyungsoo Kim achieved at the top. 

Just playing around now, blast this slow computer...

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service