Checking a sundial’s accuracy in Blender

Lately I’ve been involved in updating and maintaining some official add-ons in Blender. One of them is Sun Position, by Michael Martin. This add-on is extremely useful for architects, and more generally anyone interested in getting fairly accurate Sun lighting for a specific time and place on Earth. In this article I’ll show how I could use it to simulate a sundial in Blender and check that it gave the correct time.

The Sun Position add-on used to be somewhat clunky to use, and I believe I made it a bit simpler. However, in order to be useful in real life, it needs to be accurate. To determine its accuracy, I had the idea to model a sundial matching a real location, and check whether the virtual Sun in Blender behaved accordingly.
To model this sundial, I used François Blateyron’s Shadows Pro™. For someone like me, whose astronomy skills are rather limited but want to quickly create an accurate sundial, it is a great software package. The basic version is also gratis, though non-free1.

Shadows allows one to create many types of sundials. Since I didn’t want to decorate my lawn2, but only test a feature in a program, I kept it simple: a basic vertical sundial, like one you’d put on a wall. In order to make it more interesting though, I took the coordinates of my home, and the declination3 of my outside wall. One thing I needed to include is analemmas for the hours4, so I could check that the times match.

This is what my sundial looks like:

The sundial as generated by Shadows.
The sundial as generated by Shadows.

In Blender, I modelled the sundial by simply importing the image as a plane and setting it vertical. The gnomon is drawn as well, so I modelled it with a simple triangle, and rotated it so that it was perpendicular to the wall. The wall itself was rotated to match its real-life counterpart, based on OpenStreetMap data.

Sundial in Blender
The sundial in Blender. Very basic.

I activated the Sun Position add-on5 and input all data: the latitude and longitude of my home place, the UTC time zone and daylight savings, and the time I wanted to simulate. Now all I had to do was play around with the time settings and hope that the simulation matches. Well, here is an animation of the sundial around the year, at 1PM each day:

Animation rendered in Blender. The gnomon casts its shadow at the exact expected place. \o/

Oooh it matches precisely! Boy, was I thrilled. Now I knew that the add-on worked properly, I had to check with a real sundial from real life.

So I looked up pictures of sundials on Wikimedia Commons. I needed to find one whose location was precisely known, as well as the exact time of the picture. I found this one, which is not only beautiful, but which matched all of my criteria. It is a noon mark located at the Royal Observatory in Greenwich, England.
A noon mark is a type of sundial which gives the correct time once a day6: at noon, as implied by the name.

The Greenwich Royal Observatory’s noon mark. © Christopher St J. H. Daniel, CC-BY-SA-3.0
The Greenwich Royal Observatory’s noon mark. © Christopher St J. H. Daniel, CC-BY-SA-3.0

I figured I could model it precisely, by entering the data I had (location, date, time), and thus find the data I lacked (dimensions, position of the gnomon). This turned out not to be so easy. I could get an animation of the shadow which matched the analemma exactly:

Blender animation of the noon mark at noon throughout the year. The dark dot is the gnomon.

However, there is an error somewhere. As is illustrated by the following picture, the gnomon is ahead of its day. Indeed, the red lozenges indicate the first day of each month. On this render from June 1st, the shadow of the gnomon should be precisely on the lozenge marked Ⅵ, but it’s not.

Error in sundial simulation
Error in the sundial simulation: the shadow is ahead of its time…

Now, there may be multiple sources of error. The royal astronomers may have made a mistake when designing or installing the noon mark. Nahh. Even in the original picture, the gnomon is exactly where it should be. The add-on could be faulty. But the previous experiment has shown that it’s quite reliable.
I wish I could go on to tell you what went wrong, but I’m afraid I have no idea. Is the picture distorted? Is my modelling off? Is the add-on unreliable in some circumstances I haven’t thought of? Does the problem exist between the keyboard and chair? If any astronomer, royal or otherwise, reads this, I’d like to have an opinion!

Download the Blend file to try it at home.


1. Also, it runs on GNU/Linux through Wine, but I couldn’t export graphics, which makes it much less useful. I had to resort to using Microsoft Windows. Argh.

2. I don’t even own a lawn.

3. The declination of the wall is the angle that the wall’s normal makes with the direction of the sun at noon. I am in the northern hemisphere, so the Sun at noon is due south, and that’s 0 declination. But my wall does not point due south, so I have to correct the sundial.

4. The analemmas are these kinds of figure-8 that represent the seasonal variation of the time on Earth, specifically the difference between the solar time and the mean time. On a sundial, they are used to give the correct (mean) time for each day of the year, instead of the solar time.

5. JK, it’s always on.

6. It is thus slightly less efficient than a stopped clock, which gives the correct time twice a day. The difference is that the noon mark actually tells you when the time is right.

Checking a sundial’s accuracy in Blender

Leave a Reply

Your email address will not be published. Required fields are marked *