Kinetic facade follow the sun path

Hello, I am working on a project where we create a kinetic facade ,which is consists by many pieces, and I want the pieces to rotate accordingly to the sun movement.
I have created the sun path but I dont know how to connect the pieces rotation with the sun (maybe as an attractor?). The facade movement (the pieces actually) is manually at the moment.

The files (rhino, grasshopper):
08_01_facade.3dm (8.8 MB) grasshopper kinetic (410.4 KB)


I hacked up a model from here:

Based on a simplified sun path model created three days earlier:

And assumed you wanted to preserve the relative rotation of all 240 of your panels? So they all rotate together, keeping similar shadows throughout the day (‘dawn/dusk’ slider in blue group): (433.8 KB)

1 Like

This is the same code with one very small functional change and a little cosmetic lipstick. The blue outlines in the previous version, now shown as blue surfaces, represent the cross-sectional area of the shadows cast by your 240 panels. The significant change is that Mesh Shadow (MShadow) is now being fed the 30 centers of rotation for plane projection instead of only one plane as before, so the blue cross-sections make a little more sense? (435.1 KB)

1 Like

Any interesting GH model is worth doing three or four times, right? :sunglasses:

Significant changes in this version:

  • Disabled the purple group at the bottom using Occlusion (Occ) to generate the grid of white points.
  • Projected the 30 center points to World XY which aligns the blue cross-sections at ground level.
  • Added a second copy of Mesh Shadow (MShadow) using the 30 World XY planes to show shadows on the ground (cyan color surfaces).
  • Used Region Union (RUnion) to join shadows together when possible.

I also deleted the unused Ladybug components from this copy to make it smaller. (51.6 KB)

P.S. MShadow, RUnion and Boundary have significant profiler burdens (times two, adds up to 1.6 seconds!) so added a Data Dam (red group) for a two second delay. (47.9 KB)

1 Like

Hello and thanks a lot for all of your tries/answers so far.
I was busy the last 2 days and didn’t check the thread. First of all, as I said before, I really apprieciete your help. I have to check out your grasshopper file so I can figure out what you have done so far, cause I got a bit confused. Overall, it looks like you are very close to what i asked for, if not excactly there. Much love again!

You didn’t ask for shadows and they are slow, so you can disable both white groups to see only the rotation of the panels.


1 Like

What I see in your gif is what i want but for some reason my surfaces dont seem to rotating.
I have not fully check the file yet, i try to move the winter/summer slider for rotation. Is this correct?
Im showing you some images from the slider and the preview, it is not rotating.

Again what i see in your previous post, is excactly what I needed. :slight_smile:

No, that’s a seasonal adjustment. Use the ‘dawn/dusk’ slider (blue group).

The shadows are very interesting though, eh? That’s where I spent most of my time on this one.

Oh OK, so I just didnt catch the idea yet. Shadows are very intresting for sure, and I will need them for my project for sure later. So thanks a lot you have done everything I needed for this part. I am very greatful for everything. I truly appreciete all your work, not many people would spent such an ammount of time for helping someone else. Thanks again and have a nice day.

1 Like

Hello, and sorry for disturbing you, but i try move the dawn/dusk slider and my surfaces of the facade don’t rotate. Also I have not understand yet what the darker blue(maybe purple?) outlines stand for? Moreover the rotation functions excactly the opposite it worked before (every open surface is now closed and every close surface is now open). Hope you get my point and sorry again for still disturbing you.

I am using rhino 5 and is not working for me, but my friend who uses rhino 6 can see the surfaces moving while he is moving the slider. Maybe its because of the rhino 5?

Aha!! You can’t ignore messages like this when opening the file:


If you look carefully at the screen shot of the GH canvas in my post five days ago and compare to what you see in R5, you can replace the missing Subtraction component yourself - a vital coping skill if you stay on R5.

sun_path_2020Jan24a (53.5 KB)

My old R5 machine is so slow running this model that I left both white groups disabled, along with the purple group at the bottom that produces the grid of white points.

The blue “shadows” are cross-sections, perpendicular to the sun rays, before the shadows fall on the ground where they appear elongated, as one normally expects. For solar radiation purposes, as if these were windows or solar panels, that cross-sectional area is important to know.

1 Like

OK now it makes sense. Thank you very much. Hope I didnt bother you a lot :slight_smile:

In a duplicate thread ( :man_facepalming: ), you said:

The model I created for you rotates each panel plus or minus 90 degrees from their initial positions as defined in your code, with offsets of 30, 45, 60 and 75 degrees.

These are the initial positions you defined in that group:

You can bypass and delete your initial positions group by connecting a wire directly from your giant Entwine component to the Brep input of my model, like this:

That leaves NOTHING else in your GH model except for my contribution and makes moot all the complexity of rotating each branch of panels separately, as I did. In fact, the thirty columns of the facade might as well be single pieces instead of split into panel fragments as you did in Rhino.

Are you here to learn Grasshopper or is this a “Do my work for me” thread?

I don’t see the reason at the momment to be ironic to a person who just makes his first steps in such a difficult programm. I’ll try explain it a bit more clearly cause I think you didn’t get my point on this project. Maybe it is my fault, but I don’t understand why you are kinda offensive.

So, I have a kinetic facade. The facade is created from 30 colums, every colum has 8 pieces-surfaces. Each surface is unique. Horizontal I separate the rows.

So the rows 3 and 4 have to start oppening first. If you move the slider in my grasshopper file you will notice it. Then 2 and 5 rows start open etc…
But not only horizontal but also vertically there is a delay from the center to the edges. Try move my slider and you will understand my concept.

What I need now to connect the sun with the facade and open the same way the slider opens it. I want the rotation happen accordingly to the sun movement.

Also each piece can rotate 90 degrees to the left and 90 degrees to the right :

For better understanding:

My grasshopper journey started before 3 months. Im not very familiar with this plug in and I may ask stupid questions but for me every answer I take helps me improve and comprehend grasshopper. You are much more expierienced than me and I understand that in your eyes those questions may look like lazyness or stupidness but it’s not the truth.
Have a nice day and thanks for all the help I have recieved till now. It helped me a lot.

My files:

08_01_facade.3dm (8.8 MB) grasshopper kinetic facade (405.4 KB)

can you please tell me optimization application variables, objective functions, and constraints of simple kinetic facade on front of building

anyone who can answer