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.
Tags:
Oh this is great, the only issue is that I need the placement of the circles to be modifiable. Hyungsoo Kim script above does this. Actually I'm trying to work off of their script now (merging a lot of your components) to get the perfect solution I'm looking for.
The only problem I'm having is merging the list (See my reply to their post above).
This is nice, I mean is there a way to move the planes that are set up. Right now I think they are evenly divided along the crv. I want to control the placement of the planes on the curve before placing circles for loft.
This is so close, Joseph! Thank you. Okay I have to mess with this now to try and the hairs to randomly hang at different heights in the z direction
Joseph, stop it! You are killing it ;)
I put the hairs back on a grid, so I can poke the base circle (or create one) and then poke the thing through the surface so it looks like they are actually sticking through it. I love the randomness of everything else. Random lengths are a must, will def add those next! Here's an image of how it's shaping up on my final geometry so far.
The only thing that is bugging me is the strange bald spot/seam. Not sure why that's happening on this surface.
It's just a lofted surface from two curves. It's perfectly conic as well.
The gap at the seam probably happens because 'Pull' to surface fails to return a whole circle when they overlap an edge. Good at top and bottom edges, not so good at the seam. If you are going to poke them through the surface, you can skip the 'Item | Pull | Replace' and connect 'Cir (Circle)' directly to 'Loft', though you probably won't like what happens at the top/bottom edges. These are the finer points of GH.
P.S. Wait, that can't be right because I have tubes crossing the seam. Our code has probably diverged somewhere.
P.P.S. Or maybe it's because you trimmed some openings in that conical surface? I don't know without seeing your code.
I rethought this and figured that if I offset the original surface outwards and then extrude the base circle it gives the effect I'm going for.
Now when I try to offset my surfaces (the hairs). I notice that the small circle that I extruded to poke through will offset, but the twisted/floppy hair will not.
the screenshot is taken after offsetting both surfaces. Nothing happens when I attempt to offset the hair though.
Welcome to
Grasshopper
© 2025 Created by Scott Davidson.
Powered by