Simulating light tubes using the three phase method



I tried to use the three phase example file to simulate light tubes, but it did not give any changes in the results. I tried many things, such as having the collector at the top as a honeybee window surface, and removing it at all so I only have the diffuser at the bottom with a BSDF. Any suggestions of what could be the problem? I could not attach the file that I used.

In this case, is it better to use the daylight coefficient method? because I tried it and it gave me an error after the simulation related to the input data that I used. Can you use BSDF materials in the daylight coefficient method?

Thanks in advance.


Hi Maha,

Not exactly answering to your questions but in a similar problem I used the photon mapping method [mkpmap] (forward raytracing). You can find information here and here.

It needs some time to understand the physics and fiddle a bit around with parameters to get results but it works well for light tubes and light redirecting materials. Below is an example for a light redirecting profile I had to assess. BSDF materials work well with this method.

Maybe it is worth having a look at it.

BSDF material_light pipe

Modeling a light-pipe is a special case of using 3 phase which is not possible to recreate with the current built-in recipes in the Grasshopper plugin. Andy has a great tutorial which shows the workflow for modeling a light-pipe in 3 phase (see page 92). The step that you need to add to the workflow is the light-pipe transmission (page 105) which both the receiver and the sender are geometries.

Not to say that you can use Honeybee[+] library and recreate Andy’s workflow. @sarith did tested Honeybee[+] for modeling light pipes successfully but we never considered that to be a recipe for the plugins.


A proper equivalent for the Three Phase Method for light tubes, assuming that their interior is specular, will be Out-of-Core Photon Mapping:

Unfortunately, OOC isn’t implemented for Windows right now (at least in the official NREL release):


Hi Sarith,

Do you have a happen to have a test file containing the geometry for a light pipe? I can test it using OOC pmap over the weekend and post some results here…


I think I was using the same files that Mostapha had sent me. The gh file should be somewhere on the github page. I usually do Photon Mapping examples with Sketchup and su2rad.


Okay. Interesting. I have a workflow that uses HB to generate the necessary RAD files and then some custom python GH components that prepares the sim for running pmap on a linux machine. Have never tried the Sketchup + su2rad approach… I’ll try to work out an example for light pipes with pmap for the community


Hey everyone,
thanks alot for your replies. I am interested in applying honeybee plus since I only use windows. @mostapha thanks I will check the tutorial by Andy, and will post if I have any questions.
@sarith do you have test using Honeybee plus for modelling light pipes?


Hey @mostapha
so sorry for bothering again, I now realize that it is hard to make the workflow from andy using honeybee plus… I understand the problem more now…Do you have the test that Sarith did? or can you guide me more into how to do it?


I am not sure if Three Phase Method is the right approach for these kind of problems. I tried a few ambient settings and found that not enough light gets in :

The simulation in the lowest row is with 9 ambient bounces.

F-Matrix is probably the way to go:

I don’t foresee myself implementing the F-Matrix (aka 4 phase method) in HB[+] anytime soon. However, if somebody with understanding of Python and Radiance is willing to implement this in the HB[+] API, both @mostapha and I might be able to provide some guidance.


PS: I can’t share all the files used in the above simulations, but if somebody is interested in the commands, here they are:

PS: PS: The simulations shown in the first video can be done on HB+ , just use the recipe for Image-based daylight coefficients.


Hey Sarith,
thanks alot for taking the time to respond… I dont think I will be able to do that now, but I will let you and @mostapha know if I test it in the future.

Thanks again,


Hey Sarith,
I have seen an tutorial that using daylight coefficients method to calculate the output lumen of the light tubes at a specified situation, the formula is as followed

and the DC value of light tubes for sky patches and for sun have been calculated by matlab.
May I use the calculated DCs to modified the existed DCs gengrated in annual daylight simulation, and then get the new annual result, which is the simulated light tubes application results?


Hi Zhang,

How does the DC calculated by Matlab for the light tube work? Is it using a combination of Monte Carlo methods and ambient caching?
You might (can’t say for sure) be able to get the DC recipe in HB[+] to work by running the simulations to convergence. Just keep increasing the values of -ab and -ad (while decreasing -lw as 1/ad) till you get convergence. For testing convergence, you can measure the MSE between two consecutive resultant illuminance grids.