Background (may be safely ignored): I am buying (most of) a rowhouse from the 1930s. I am now working with an architect to improve its energy efficiency.

Let us focus on the main room, which can be said to be a long box pointing East-northeast, with two tall SWS-facing windows. I would like to be able to depict where direct light will fall through the windows at a given time on a given day.

This doesn't seem hard to do in Python (or what have you) - just some solid geometry - but I would not want to reinvent the wheel. On the other hand, I've wasted the last 90 minutes of my life with Velux Daylight Visualizer (which a friend pointed out to me), only to conclude that it is not designed to do what I want it to do. So: what sort of software (preferably free) can I use for this sort of thing?

(You can guess the idea - place surfaces that absorb radiant heat (and release it slowly) at places that have direct sun exposure during the winter; I suppose we will try to block some direct sunlight during the summer.)

PS. My apologies if this is the wrong forum for this question. What forum would be better?

EDIT: expressing the azimuth and elevation in terms of the date and solar day is standard (see Duffin-Beckmann for a simple model you can come up with yourself). I would like to see an animation. Not rocket science, but it's unclear to me how to do it using RADIANCE (which at the same time is ridiculous overkill).

UPDATE: I went and did the animation myself in Python/SageMath, using the pysolar library to compute azimuth and elevation, and Three.js for 3D animations that can be turned around. It was a two-day task. Here is a still frame: Light at my place on Sep 21, 2021

  • $\begingroup$ You can find the sines and cosines function to calculate the position of the sun in the sky during the year. Once you have that then some trigonometry gives you the sun coming in the window. Check out passive solar design or Solar Thermal Engineering by Duffie and Beckmann. $\endgroup$
    – Solar Mike
    May 5, 2022 at 17:10
  • $\begingroup$ Sure - I am doing that right now. Then I should be able to use SageMath to make an animation of quadrangles moving on walls, in the proper perspective. I was just wondering whether I was being silly by doing this from scratch. Thanks for the references! $\endgroup$ May 5, 2022 at 17:21
  • $\begingroup$ PS. What should I read on passive solar design? $\endgroup$ May 5, 2022 at 17:21
  • $\begingroup$ "... pointing East-northeast, with two tall SWS-facing windows." In which hemisphere? Have you forgotten there are two? $\endgroup$
    – Transistor
    May 5, 2022 at 17:32
  • 1
    $\begingroup$ Hah, sorry, northern hemisphere. (And yes, I was born in the southern hemisphere, so I should have thought of that.) $\endgroup$ May 5, 2022 at 17:45

2 Answers 2


Wikipedia has a detailed article, position of the sun in the sky.

This is a Matlab code and paper by Akram Abdulameer Al- Khazar: solar simulation You would need to write a small 2-liner vector addition to add your room's angle to his widget.

  • $\begingroup$ That paper seems to be based on a very simple model (circular orbit, constant speed). Nothing very wrong about that, but (a) it is easy to figure the consequences oneself, (b) the crucial bits are all quoted from Duffie-Beckmann (without page numbers, annoyingly!). $\endgroup$ May 5, 2022 at 23:28
  • $\begingroup$ yes, right. it can get complex very fast. i bet there are good links in the bottom of the Wikipedia page. $\endgroup$
    – kamran
    May 5, 2022 at 23:35
  • $\begingroup$ Sure, there are more accurate formulas in Wikipedia. $\endgroup$ May 6, 2022 at 8:14
  • $\begingroup$ As I said above: pysolar.readthedocs.io/en/latest seems good! $\endgroup$ May 8, 2022 at 16:38

Radiance let's you specify building geometry and calculate light ingress intensity.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.