Skip to content

Light Screens Revisited

October 29, 2009

Last week, just before heading to Chicago for the ACADIA conference, I mentioned my project to generate parallel light screens with hole patterns that interact with each other as the sun moves across them. I continued to work on this idea while in Chicago, managing to get a great deal of help with Grasshopper from its originator, David Runnel, who was there at the Rhino booth.  Grasshopper is a simple visual scripting language tied to Rhino, an excellent 3-d modeling package tailored towards organic, free-form shapes.

Here are some images showing my path so far through this project. These actually represent… say stages 3 and 4, as opposed to stage 1. There was a great deal of overhead and experimentation involved in getting things to work correctly up to here.

First, generation using Grasshopper: here I am generating a tile with 100 randomly spaced, varying sized holes dropped into it. I want this to be a repeating tile pattern, so holes that fall on the edges must reflect on the opposite edge. There are a variety of clever ways to do this, and this image shows the quick and dirty method of replicating each hole 8 more times in the surrounding context. If an edge hole needs reflection, it will appear as one of the 8.

Panel Generation using Grasshopper

Panel Generation using Grasshopper

Next, the center tile is frozen (or “baked” in Grasshopper lingo), giving me this tile and, in the next image, a 5×5 array of the tiles laid out in Rhino. You can see how nicely the repeating pattern works.

One tile frozen in Rhino

One tile frozen in Rhino

5x5 Array of tiles in repeating pattern

5×5 Array of tiles in repeating pattern

Now that we have tiles in Rhino, we can start experimenting with shadows. Here is a first image with a single 5×5 panel and its cast shadow.

1 Panel Shadows

Shadows cast by a single panel of tiles

Of course, the idea is to have two layers of panels with light moving across them. I next tried rotating the initial tile and then replicating the 5×5 array, spaced parallel to the original panel.  This initial combination does not end up working too well, the holes are too sparse and the patterns generated are not terribly interesting. Here are two images, however, showing the effect with different sun angles.


Shadows cast by two panels placed in parallel


Alternative shadow pattern cast with a different sun angle.

So where to go from here? One path is to explore different patterns, there are a world of possibilities there. Not just random patterns, either. Regular patterns might be interesting, as well as algorithmically generated patterns such as leaf images scattered across the panels.

A second path is the analytical one. What percentage shadow area is being cast at given sun angles by the two panels? Is the pattern consistent or too “glary?”  This analysis can be performed in Rhino and supported by Grasshopper as well, although I think I am getting beyond Grasshopper’s simple scripting capabilities and will be moving into heavier levels of programming soon.

The default mode of doing this analysis is to perform “ray tracing.” We can lay out a matrix of vectors on the shadow plane, point them back towards the sun, and see which ones are obscured by the pair of panels. Here is the beginning of that approach with an initial matrix pattern on the shadow plane


Matrix of points from which to point vectors back towards the sun

The quality of this result depends on the density of the matrix, however, and high quality is going to result in high computation times as well. My alternative approach is to actually project the panels down onto the shadow plane, then, as in a scribble picture, send one vector from each area deliniated by the projected panels back to the sun and color the area light or dark accordingly.  This should result in a high quality analysis with a moderate amount of computation. The coding is less trivial as well.

Back to work then!

No comments yet

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: