designcoding
About Table of Contents Keywords Monthly Archive
Support designcoding!

Ice-ray Lattices

February 5, 2012 | Algorithms
#grasshopper #hoopsnake #ice-ray #pattern

The design of Chinese window lattices named “ice-ray” is one of the classic studies of Shape Grammars. It is an old and good example of algorithmic design. George Stiny explained their geometric construction based on the parametric Shape Grammars approach. He explained shape rules and the abstract machine that produces the subdivisions. I was especially interested in Shape Grammars when I was a graduate student. I even made a prototype tool for Shape Grammars in MaxScript. Here is another post on this topic. Nowadays, I’ve found time to return to this topic again. Ice-ray designs are one of the best-suited topics to test recursive computing components in Grasshopper, called Hoopsnake.

Ice-ray Lattices Grasshopper definition

At first, I tried to simulate Stiny’s approach and tell Grasshopper each shape rule as a different operational cluster, combined with Hoopsnake iterations and a logical structure that understands the emergent output shapes like triangles, quadrilaterals, etc. and send them to the appropriate shape rules for the next step of the iteration. However, after a couple of dead ends, I finally realized the correct path. We can model these compositions with a looping algorithm. So it becomes possible to work with emergent shapes. I think in this visual coding environment, we don’t need a set of shape rules, as shapes and rules are all operated within the geometric rules (components) of Grasshopper. Below are the Grasshopper and Rhino files I created in 2012. You need to define an initial shape (surface) and right-click on the Hoopsnake component to “Reset” and “Loop” the process.

I created another version of this study later using Anemone since the Hoopsnake addon is a bit old now. Here is the newer post on ice-ray lattices.

Ice-ray Lattices grasshopper, hoopsnake
Ice-ray Lattices ice-ray, pattern
Ice-ray Lattices grasshopper, hoopsnake
Ice-ray Lattices ice-ray, pattern
Ice-ray Lattices grasshopper, hoopsnake
Ice-ray Lattices ice-ray, pattern
Ice-ray Lattices grasshopper, hoopsnake
Rhinoceros file (3DM)Download
Grasshopper definition (GHX)Download

Cite this post

Yazar, T. (2012, February 5). Ice-ray Lattices. designcoding. Retrieved August 24, 2026, from https://www.designcoding.net/chinese-ice-ray-lattices/

Related Posts

Ice-Ray Lattices Revisited

April 9, 2015

Further studying iteration in Grasshopper, this time, inspired by George Stiny’s “Chinese Ice-Ray Lattice” subdivisions with Aneome, instead of the Hoopsnake add-on I tried in the previous work. As you know, loops add various ways of usage to Grasshopper. In future versions, loops may cease to be just an add-on and become native components of Grasshopper. Until then, loop plugins like Anemone take on this task. In the example here, we create an application by throwing random lines to divide…

Tree of Life

August 12, 2023

This Grasshopper exercise is a special one. I used Hoopsnake components to develop the branching design I studied earlier here. This time I multiplied the number and orientations of several tree structures to generate my interpretation of the Tree of Life. The challenging part of the algorithm was to finalize every branch tangent to a predefined circle. Group 3 handles this issue by utilizing a Blend Curve component. There are many Number Sliders to play with the design. Thus, I…

Trees and Recursive Computing

March 15, 2012

This topic of trees and recursive computing is inspired by the method shown here at the Rhino Python 101 Primer. This is a beautiful method of recursion that creates tree-like shapes, composed of arcs. I constructed these arcs by using the Arc SED (start, end, direction) method. This requires start and end points and a vector that is tangent to the arc (at the start point). Therefore, the overall look of a chain of these constructions creates curves with continuous…

Hoopsnake: Looping Definitions

February 3, 2012

Wow! Is this possible in Grasshopper? In order to start creating recursive algorithms in Grasshopper, I finally managed to run Hoopsnake, a special component developed by Yiannis Chatzikonstantinou. This will help me develop parametric models that include loops. The fundamental experiment here shows a surface subdivision based on iterations. We should define a starting object or data, an operation to be repeated, and a limit that will tell Hoopsnake to stop looping. In this condition, this is the area of…

Chinese Ice-ray Lattices Revisited

March 25, 2013

One of the cult texts in Shape Grammars theory is Stiny‘s Chinese Ice-ray Lattices Grammars. Although it is full of technical terms, it represents an analysis of a working algorithm. We can directly transfer that from the behavior of an artist. One can imagine a Chinese artisan, summoned to a building site. He brings tools and implements and a collection of finely finished sticks. Then, he begins his design by selecting a stick of the appropriate length and carefully attaching…

  • Chapters

    • Algorithms
    • Discourses
    • Fabrications
    • Studios
  • Explore

    • All Keywords
    • Table of Contents
    • Monthly Archive
    • #rhino-python
    • #polyhedra
    • #parametric-surface
    • #robot
    • #tessellation
    • #boolean
    • #kuka-prc
    • #dome
    • #design-object
    • #image-sampler
    • #tutorial
    • #terrain
    • #sandblasting
    • #stone
    • #parametric-curve
    • #animation
    • #cycloid
    • #art
    • #aperiodic
    • #tiling
  • Search

  • Support designcoding!

  • Enjoying designcoding? Support me on Patreon to keep it growing. Thank you!

  • copyright 2026 designcoding.net | about | privacy policy | end user license agreement