How to build a freeform surface with single curved or flat panels using rhinoscript

parametric design, architecture and art

We are happy to post our first entry of our new DOWNLOADS category.
Like a small but growing number of other architecture offices (such as Ecosistema Urbano and Arquitextonica), we believe that sharing content can be useful, productive and not anti-economic.
In other words, we believe in an Open Culture.

That’s why on this post we want to share with you in a free download format, a rhinoscript code (see video above) that we developed for a skylight design in China, which can help with understanding the concept of double and single curvature geometry.
If you are new to rhinoscript, it may help you to have a look at THEVERYMANY, where you will get a better idea of what can be achieved within this format.

2009-06-14 3D model scripted 100

This code was written to achieve a free-form skylight design with a glass roof,  a cable truss and 100 shading blades. The script was necessary due to the time it would have taken in drawing the elements one by one.
If you are architect and used to working with complex geometries and surfaces, you are probably aware of the difficulties and intricacies of double curved surfaces. In many of our projects at HDA we have to deal with these issues on a regular basis.

The basic premise is that you have a free-form surface and it has to be built. A free-form surface (with double curvature) is difficult to build because the surface is not developable; you can’t unfold or unroll it, so you can’t build it from a folded flat panel (i.e. glass or ruled metal panels). In architectural practice it’s always preferable to transform double curved surfaces into single curved or flat surfaces (this last case is especially suitable if you are using glass, which is very expensive to deform).

In the slideshows below you’ll find for your reference two of the project where we had to solve problems related to double curved surfaces.

The first slideshow is the Paris Philarmonic Hall (with Arch. Jean Nouvel) and the second is the Publicis Drugstore, situated on the Champs Elysees in Paris, where all the glass panels are single curved, and therefore give the impression of free-form geometry.

You can download here our free package containing two simplified rhinoscript files, one for generating single curved panels (A) and the other for generating flat panels (B), and a rhino file that can be used as a base to test and play with the script. In the rhino file you’ll find a few base geometries which can then be used as a start point to run the script, and a set of layers that will help you to manage the large quantity of geometry generated by the script.


As shown in the video, the script will ask you to chose a set of lines to use as the base of the geometry (they just have to be mono-oriented as in the image above), the starting height, and (only for script B) the number of flat panels you want (12 by default). There are possibly (probably!) some bugs within the script that I didn’t notice, and admittedly the code is quite poorly annotated, but I hope you will be kind enough to ask us if you have any problems, we’d be happy to help and to develop the tool together with you. We would also appreciate any comments about the idea of publishing things such as this, as we are continually looking to understand the best way to do it in order to build a constructive platform for debate.
The following images show the geometries resulting from running the script in the Rhino file in the downloadable package.
Please also remember that you need Monkey to run rhinoscript files. You can download it for free here.




Download rhinoscript package :
Creative Commons License

This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.

    • anon
    • October 16, 2009, 12:22 AM

    It should be mentioned that this only works in V4, not V5.

    • admin
    • October 16, 2009, 12:52 AM

    Hi Anon, I’m sorry: I was not aware of that.
    Thank you for your note and for your interest!

  1. Really interesting! Hope to end the work rush we are involved in right now to be free to take a deep look at your work!

    And BTW, many thans for the reference! Hope we can add something to that common work you talk about!

    • Polprav
    • October 21, 2009, 4:49 PM

    Hello from Russia!
    Can I quote a post in your blog with the link to you?

    • immaginoteca
    • October 22, 2009, 1:29 AM

    Hi Polprav
    Hello back from Paris!
    Sure you can, it’s a pleasure!
    Thank you for your interest!

  2. Other variant is possible also

    • Hans
    • November 23, 2009, 3:19 AM

    Hi immaginoteca,

    very nice idea to construct a glasspanel.

    To fully understand your working concept I “melted down” your script for speed and clarity.
    If you are interested give me note.

    How would you deal with a given convex surface to get flat panels?

  3. Hi Hans, sure I’m interested: sorry for the late!!
    You can send me what you have at
    hda DOT paris AT gmail DOT com
    Regarding the convex surface, I guess the principle doesn’t change.
    Did you test it?

Submit comment