Problem: vertical blinds results incorrect or my expectations? (Honeybee[+])



I’m trying to simulate interior vertical blinds for an office room with one big window in the south façade. I use the three-phase method and made BSDFs with the software WINDOW. I have doubts about my results. I made a big table with the illumination for different hours and different slat angles on a sunny, clear day.

My expectation is that the pattern which happens when the slat angles remains the same but the time varies, would also happens in case the hours stays the same but the slat angle would vary. My results don’t confirm this. Is my expectation not correct or are my results not correct?

I hope someone could and would help me, because I don’t know how to get this clear for myself.

My files for the script, if necessary, are in this link:

Thank you so much in advance!

Kind regards,
Kim Bodde


Hi Kim,

Looking at your results and your BSDFs, it seems that maybe your blind
angles aren’t how you think they are.
For example, the 90 and 270 degree results and BSDF file seem to have the
blind slats closed (vertical) instead of horizontal. In the attached excel
file, I’ve added a column of how I’d guess the blinds are oriented based on
the BSDF file and the results.
Also, you BSDFs seem to be rotated 90° in the plane of the window. But I
don’t see the effect in your results, so your model must also have the BSDF
rotated as well. It’s all good if it’s consistent, but int not
conventional. If you generated BSDFs of blinds from Window, they wouldn’t
work in this setup.

Unfortunately I can’t open your rhino/grashopper/honeybee model to verify
any of this, maybe someone else can.


(Attachment Simulation_result_VB_18_april_amcomment.xlsx is missing)


here’s the excel attachment.


Hi Andrew,

Thank you so much for your answer. My intention is, in case of for example 0 degrees, to simulate the slats perpendicular to the window. For example as in the image I quickly made. So, I did this wrong? I don’t completely understand what I simulated now, in stead of the situation I’d like to simulate.



Hi Kim,
Looking back I see that you intended vertical blinds, and that I misinterpreted your diagrams. The BSDF files look correct now that I understand. However the results look like your blinds are applied horizontally to the window. Maybe check the up vector for your window surface in the scene files. Or if you can send me the Radiance files I can look.


Hi Andrew,

Here is a link to my results for the simulation. I don’t know exactly which files you need, so this link contains all my result files:

I hope it works!


Hi Kim,

Here are the contents of VB_window…glw.rad:

# Created by Honeybee[+] at 2019-08-05 09:16:18

#@rfluxmtx h=kf u=-1.0,0.0,0.0
void glow Double_glazing_low_emission
4 1.0 1.0 1.0 0.0
Double_glazing_low_emission polygon VB_window
12 0.11 0.0 0.51 0.11 0.0 2.89 4.39 0.0 2.89 4.39 0.0 0.51

Information about the window orientation is provided in the #@rfluxmtx line. specifically the u=-1.0,0.0,0.0
part sets the up direction for the BSDF. This is basically making it so that the up direction of your BSDF points in the -X direction, turning your vertical blinds into horizontal blinds. I think this should be u=0,0,1 for your model and BSDFs. If you can find a way to change this in honeybee I think it’ll fix your issue.



@Kim, You can use _up_vec_ input to set up the vector for BSDF material.



Thank you so so much for your respons Andrew and Mostapha. It means a lot to me.
I changed the vector into (0,0,1) for all the angles, but that gave me not another answer.
Or do I have to change the vector for each state separately so that the vector is perpendicular in relation the angle or the slats?

@mostapha, what would you do to change the blinds from horizontal into vertical blinds? Maybe, I do something wrong.

I also simulated rollerblinds and also for this simulation, the u = -1.0,0.0,0.0.


Maybe honeybee reuses coefficient matrices if they already exist? I’d
suggest removing everything in the tmp and result directories and then


unfortunately, that doesn’t solve the problem :pensive:


Hi Kim,

I cannot open your full simulation folder on dropbox anymore. I see that in one of your old models however the surface normal of the window is pointing to the exterior of the space. It should face the interior.
I would check this in your current model. The vertices describing your window surfaces in Radiance follow a right hand coordinate system, meaning that the order in which vertices are noted in the Radiance polygon determine direction of the surface normal (the one below is pointing out of your space).

You should also be able to check this with Honeybee. Open the .rad file containing the window and remake this example definition to display the vector.

Grasshopper has a flip surface normal component which will allow you to change the orientation of the window surface





This is how it should be. HB takes care of it.
As @Mostapha said in here: “Honeybee keeps the windows looking outwards which is what we need for energy simulation. It then creates a separate file for each window group/light-source for each state and calculates the view and sky matrices for each of them separately. That’s when it flips the direction of the surfaces.”



Ok; thanks for pointing this out. What I see in an old simulation folder of @Kim is a .rad file with a window with the normal pointing out. Now that I look at Andrew_McNiel’s post I see that the surface normal is correct in this model. Sorry for the confusion.


Thank you all so much for your time and your advice.

For my own knowledge, I made some BSDFs for horizontal vertical blinds and used these in my script. The results confused me, because it gave me results I would expect for vertical blinds.

It was just a quick experiment.
I’ll keep you posted


I think there’s still something wrong with the up vector. Can you check in the VB_window.glw.rad file to see what up vector is written in the file after your change in honeybee?


I think the suggestion by @Andrew_McNeil about the vector in the file VB_window.glw is correct. If I’m not mistaken, setting the up vector for the BSDF in Honeybee will only affect the BSDF material itself and not the above mentioned file. Below is part of the output from the file VB_window…default.rad when I apply a vector (0, 0, 1) to the BSDF material component:

void BSDF GLS_ScArgClr_6166_VB_Rs80Rv80Ts1Tv1Ef20Eb90_tAvtb000
6 0.0 scene/bsdf/GLS_ScArgClr_6166_VB_Rs80Rv80Ts1Tv1Ef20Eb90_tAvtb000.xml 0.0 0.0 1.0 .

Now, back to the file VB_window.glw. I don’t know how Honeybee decides the vector in this file. However, I extracted the four points of the window surface and recreated it as seen below in the image.

Doing so I get the following output in VB_window.glw:

#@rfluxmtx h=kf u=-0.0,0.0,1.0
void glow GLS_ScArgClr_6166_VB_Rs80Rv80Ts1Tv1Ef20Eb90_tAvtb000
4 1.0 1.0 1.0 0.0
GLS_ScArgClr_6166_VB_Rs80Rv80Ts1Tv1Ef20Eb90_tAvtb000 polygon VB_window
12 0.11 0.0 2.89 4.39 0.0 2.89 4.39 0.0 0.51 0.11 0.0 0.51

If I run your Grasshopper script with the changes in the image above I get the following results for a few selected BSDFs.


Wauw, that looks very well!
Thank you so much for the information.
I’ll try the same and keep you posted


I run the script again with the changes as mentioned above. The result:

These results are so much more in line with my expectations.
Thank you all so much for your time and sharing you knowledge with me.
I don’t know if I could solve this alone, definitely not in this short time.

Kind regards,

Kim Bodde