Anatomy of a Timeline

"The mapping of time," suggests Stephen Boyd Davis (2012), "has made only modest intellectual progress since it was invented 250 years ago" (p. 5). Rapid Photo Downloader maps the time photos and videos were created through its timeline. Its timeline is modest. It does not herald an intellectual breakthrough of any kind. I did not want the timeline to be surprising or difficult. On the contrary, I wanted it to be easy to understand and use—predictable, logical, and hopefully helpful. It has some nice features to be sure, but nothing fancy.

Timelines are missing from most photo applications—even giant photo management and editing programs like Lightroom—or partially implemented only as an afterthought. Perhaps most people do not care for them as much as I do. It is hard to say. I do not collect analytics from Rapid Photo Downloader users, so I do not know how much or little its timeline is used. All I know for sure is that when a user suggested grouping photos based on how much time elapsed between consecutive photos, I was happy to implement it because I had been wanting to do so for some years.

The best feature of Rapid Photo Downloader's timeline is how it groups content. Although it might initially look like a calendar, with its display of years, months and days, it is not a calendar. Instead, it shows clusters of photos and videos, and by selecting those clusters, you can focus on the content that interests you. The emphasis is on the content, not the container into which the content goes. It is more like dynamic timetable generated from your own work than it is a calendar.

Consequently, Rapid Photo Downloader's timeline does not have a rigid week-by-week or month-by-month display like you get with a calendar or a histogram, both of which show empty days or weeks. Those are helpful for some tasks, like providing a visual representation of the days you took photos compared to those you did not. Those tasks, however, are often unimportant when working with the photos and videos on your computer.

But the main drawback to a calendrical or histogram view is that we humans are not cognitively equipped to make great use of them—at least not with respect to the kinds of tasks a photographer needs to solve when looking back on their work. William Friedman (1990) argues our mind's ability to remember the time of things passed requires "a patchwork of processes and considerable effort . . . usually ending in imprecision" (p. 43). Our imprecision leaves us, he suggests, constructing "a chronological past as best we can" despite our cognitive limitations (p. 43).

But here is the rub: most photographers find it easy to mentally categorize photos into groups—the photos taken in the woods one afternoon, for instance, or the videos made at a client's wedding. Rapid Photo Downloader's timeline displays those groups. The assumption is that things that were made together probably go together.

Of course, dates and times are inherently useful even though we often struggle to remember them. That is why Rapid Photo Downloader's timeline is indexed by date and time.

Implementing the Timeline

Implementing the Timeline was challenging in three main respects. First, the code that transforms the groups into table rows and columns was sufficiently difficult that it took me two attempts to get it working flawlessly. The difficulty arises because a cluster of photos can cross the boundaries separating days, months and even years. For instance, photos of a new year's party typically start on the evening of the last day of the year and spill over into the morning of the first day of the next year. It is easy to describe and visualize, but the code is non-trivial.

The second challenge was to make the timeline look attractive. The prototype was ugly but the current revision is good enough for now. When I was developing the timeline, I was in the midst of rewriting the program's entire user-interface. I enjoyed looking for inspiration from other program's designs, but with the timeline there were not many.

The third challenge was internationalization. As I came to learn, plenty of languages do not use AM and PM. I had written the underlying Python code assuming all languages use a variation on the twelve hour clock. In reality, languages like German do not. It was a small bug, but one that had a big visual impact—the times would simply disappear from the timeline's display.

All-in-all, I'm proud of both the code powering the timeline and the fact that as of October 2018, Rapid Photo Downloader remains the only photographic tool that uses a timeline of its type. Part of my inspiration for writing this, however, is that I would like more programs to use a timeline. It would be great if other programs could adopt and improve on Rapid Photo Downloader's timeline, innovating where necessary to produce tools that meet photographer's needs.


Davis, S. B. (2012). History on the Line: Time as Dimension. Design Issues, 28(4), 4-17. doi: 10.1162/DESI_a_00171

Friedman, W. (1990). About time: Inventing the fourth dimension. Cambridge, MA: The MIT Press.

Rapid Photo Downloader's Timeline in action
Men looking at a timetable in Delhi
Shoots spanning two days