Screenshot of Sun-Path Projection app

Figure 1: A screenshot of the Sun-Path Projection tool running as a desktop application.

Download Application

Right-click the icon for your operating system and choose 'Save target as...'


The aim of this app is to demonstrate how the different altitude projections methods differ as they are mapped over Sun-path diagrams. To do this, the diagram smoothly transitions between hemispherical, polar, orthographic and cylindrical mapping as well as between spherical, linear and stereographic projections. You can use the Diagram button menu (or A/Q keys) to change the mapping and the Altitude button menu (or S/W keys) to change the projection.


I have done many projects over the years that included code to generate Sun-path diagrams, but they typically required only a particular type of diagram or certain kinds of projection. With this applet, I wanted to investigate all the different types of diagram as well as commonly used altitude projections, and try to illustrate their inter-relationships by creating smooth transitions between them all.

I ended up having way more fun than usual as this approach threw up all sorts of spurious conditions that would work fine in some diagram types but not others. In my general experience, and certainly true in this particular case, the insights you get when chasing down those one or two failure conditions are usually invaluable and virtually impossible to gain any other way, which is why this one was worth spending so much time on.

Now, not all altitude projections make the same amount of sense in all the different types of diagram, so this does limit the applet to being a bit of an academic exercise rather than a useful design tool that solves specific problems. However, formulating the transitions required distilling the commonalities between the generators of each diagram type and helped me really tighten up the optimisations I use and create a very modular library that I can easily re-use to add similar functionality in my other applets, that hopefully will be useful design tools.

Change Log

1.0.0 2014-05-12

  • Initial release.

Click here to comment on this page.