algorithmic modeling for Rhino


So here is the predicament I am having. It may be an easy fix that I am overlooking, as I am somewhat new to grasshopper. I have created a undulating surface based on three control points and an additional point which controls the x direction of all of the points that make up the surface (on the left in the picture).

I am trying to order the field of points on the right in such a way that I can have a number of lists that each have three points (so that I can reference my surface script to them). In all, if I connected these ordered points I would have a envelope/shell which would extend over all of them. I cant figure out how to do this without grasshopper wanting to order the points through the shell. 

Any help is greatly appreciated,

Tim Fuger

Views: 493


Replies to This Discussion

I'm not really sur how your base unit is supposed to tile and if it's only one or multiple points, that control the lift of the Corners.

I'll attach a Version with a completely different Approach:

a) generate a triangle mesh from your set of points using Delaunay Algorithm (than may leave some long thin triangles at the border, that may need to be filtered)

b) use Weaverbirds Constant Quad subdivision to get your undeformed base unit

c) adjust each faces border, so the border polygon starts (and ends) at one of the original generating points. (might do this differenly. It's just so i know the position of each edge or vertex relative to the given original corner of the base unit)

d) move the original corners of the base unit according to the attractor point

Now to simulate your sinusoidal shape:

I use edgeSrf to create a patch from four non planar edge curve.

Two of those are the unmodfied subdivision edges.

The other two are nurbs curves made from four Points:

1) the end point that at the center of the base units edge.

2) one Point somewhere along the edge 

those two will ensure continuity between the adjacent subdivision quads.

3) that intermediate Point projected to a plane that is normal to the direction of movement of the final end point

4) the original element Corner, after moving.

the last two will make the curve round out and make sure that all other adjacent curves will join somewhat continously. you may change that to whatever suits you.


Yes!! This is what I was looking for!! A much better approach than what I was trying to do. Thank you very much Hannes!






  • Add Photos
  • View All

© 2020   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service