algorithmic modeling for Rhino



A group exploring methods to both develop and flatten surfaces. Any discussions, examples, or additional algorithms are welcome here.  See the discussion at the bottom of this page.

Location: Seattle, Wa
Members: 80
Latest Activity: Sep 20, 2023

Devsrf Components

Download the Devsrf components here: Developable Surface Components

This ZIP file contains:

  1. DevSurface.gha - Place in the Grasshopper Components folder
  2. - A grasshopper definition with 3 examples. (Notes in the definition)
  3. Ribbon.3dm - 1 0f 2 example files with curves.
  4. Skiff Lines Example.3dm - An example of a multi-surface form.
  5. DevSrf Components.txt - Technical information on the components.

Some information to help use the components in the DevSurface.gha:


AdjustRuling Component - This component adjusts rulings for least twist between rails. Finding untwisted rulings between 2 rails that can be used to make a developable surface. Start this component by including two rail curves and a series of seed parameters along those curves to searching for ruling lines which have no twist. Some pairs of rails work fine by just dividing both rails into the same number of segments. On harder cases, its good to start with rulings that are at least kind of close to the right answer.

Inputs for AdjustRuling Component:

  • Rail0, Rail1 - Two rail curves for the developable surface
  • t0_in, t1_in - Seed parameters for the rulings. These are used for starting ruling locations for finding the untwisted rulings.
  • domain_fraction - When the input rulings are adjusted they are allowed to move this percentage of the distance to the next seed ruling for each iteration run. Rulings cannot cross on another at any time.
  • Iterations - The number of iterations to run. Each iteration goes through the rulings and adjusts for the least twist within the domain fraction.


Unroll Component  - Unroll a curved surface
Flatten a singly curved surface, keeping its rulings straight. If the starting surface is developable, this will make a flat pattern that could be bent back to the starting shape without stretching.  This component can take a relatively long time, so there is a Boolean wwitch to turn it on.

Inputs to the Unroll component:

  • Surface - Input surface to flatten
  • Run - Toggle to control the component running

Output to the Unroll component:

  • Unrolled - The results of flattening the input surface.

Discussion Forum

Gaussian Display Code 4 Replies

Here is a definition containing a cluster to create a Gaussian display mode.  Does anyone use specific values in Gaussian to display if a surface is developable?…Continue

Started by Scott Davidson. Last reply by Thomas Sicouri Oct 4, 2018.

Another approach... 5 Replies

Hi!This looks nice! Are you planning to share the source code?I was thinking of doing a devsurf component in python to take advantage of the new multithreading thing, but I know nothing about python…Continue

Started by Fred Becquelin. Last reply by jjsolly Mar 12, 2015.

Welcome to Devsrf

Welcome to the Devsrf group.  Download and jump on in.Continue

Started by Scott Davidson Feb 5, 2014.


Members (80)






  • Add Photos
  • View All


  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service