algorithmic modeling for Rhino


I´m an architect interested in a developable surfaces method from 2 edge curves (lofted surface solver) for a roof project. (like Lorenz Lachauer method, but it is not released yet.

Any info would be appreciated.

Views: 6095

Reply to This

Replies to This Discussion



The constrain to curve option I've added to the new Kangaroo might be able to tackle this if combined with the planarization force - I'll give it a go...

Ok, I gave it a go

The surface on the right is the original loft - simply connecting evenly spaced points, and the surface on the left is after relaxation.

It is working by letting the points slide along the curve while applying a force planarizing each quad. I had to put some short range collision interactions between the points to stop them crossing over, and I think that is what is causing those regions of curvature near the ends of some of the quads. I think if they are allowed to become triangles it might solve this.

So I'll have to try and find a better way of preventing the points crossing each other along the curve.

By the way - do you have any sample pairs of curves I could try this out on ?

Thank you very much for your effort Daniel.

This is the vimeo link solver i would love to test:

As you can see, i don´t mind the pair of curves changing, only want a developable surface from aproximate to the initial ones.

I tested your tapeworm script and is nice, but i have some difficult to find "similar" preset surfaces (from my architectural roof project). Is a little hard...


Of course, i link the .3dm file with one pair of curves


Thanks again Daniel, and excellent work.





Still a few things to fix before I release her. To be honest it was not really a piece of cake, I started this def on version 0.5... before data trees blossomed.


Here is the method:

divide both curves A and B.

For each point pA on curve A,

you need the corresponding tangent vector tA on curve A,  and the lists of "cone" vectors pB(j)-pA and tangent vectors tB(j) on curve B. so you have three vectors tA, tB(j) and AB(j)

these three vectors define a parallelogram thas varies along j

3d determinant of the three vectors above gives you the volume of this parallelogram. When 3dDet = 0 then it means it's flat, the vectors are coplanar. Thats what we're looking for.

So you just need to plot the curve 3Ddet = f(pB)  , still for each point on A  

                                                                'pB is the parameter here'

graphically solve these cuves to find the zeros and you feed back the resulting parameter in curve B. draw te line, done.

You can manage double solutions or cusps directly on the plot by using clostest point and >= conditions to kill unwanted results.

I do it twice, from crv A to crrv B and from B to A to make sure I catch start and end generatrices each time.


The videos you posted are interesting. I don't understand how it works with just 2 slider to tune the curves.



Hi all,

My week holiday has been fruitful. I'm nearly there!

I've added a couple features and foud a way to use galapagos.

Release soon.

old version (very old) in this discussion


Thank you F.Becquelin, downloading! can´t wait to test it..let´s see

Honestly...i don´t know how to use it....

Seems to complicated to test it for my level, could you help a bit?

Hi, did you get any workable results with two curve developable loft optimization and fabrication of the results? I'm trying the same thing and I was wondering it you got any success and can share it. Thank you in advance.






  • Add Photos
  • View All

© 2019   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service