Skip to content

A visualization of the past, the future and the now to give a sense of scale

Notifications You must be signed in to change notification settings

BetaNumeric/time

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

108 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Time Scale

Live Demo

This is an interactive timeline project I programmed to explore the relationship between the distant past, the far future, and the present moment. My goal was to help better understand our size and place in the temporal dimension of our universe.

Background

The project was inspired by Charles and Ray Eames' short film "Powers of Ten" (1968), which was based on Kees Boeke's book "Cosmic View: The Universe in 40 Jumps" (1957).

I noticed that displaying data over a very wide range of values is usually done with a logarithmic scale. While functional, this often distorts the visualization and doesn't always make intuitive sense. For this visualization, I wanted to display the data linearly at any given point in time but allow the viewer to manipulate the field of view logarithmically.

Similar to how programs like Google Earth provide a better sense of spatial scale by allowing users to zoom in and out, I hope this program can help build a better mental map of the time that surrounds us.

galactic_year

How it works

The timeline moves from left to right, from the past into the future. I chose this direction because it is the dominant reading direction in most cultures and fits desktop screens better than a bottom-to-top vertical orientation.

There are two scales visible. The bottom scale shifts between common units we use daily (seconds, minutes, hours, years), while the top stationary scale uses only the SI unit "second" with scientific notation for numbers that are too large or small for standard prefixes.

Navigation

Dragging allows you to change the field of view. The logic tries to keep the point under your cursor stable, but as you approach zero, the dragging shifts the field of view linearly. This prevents all points from snapping to zero instantly.

The vertical line at zero represents the present—an axis of symmetry between past and future. You can drag this axis, but it will always stay in view. Clicking the center box on this axis toggles between two modes:

  1. Relative Mode: The axis stays at zero with negative numbers to the left and positive to the right.
  2. Real-time Mode: The axis locks to the current Gregorian date and time, causing the timeline to move leftward with every passing millisecond.

To visualize our standard cyclical time units (like the rotation of clock hands or the revolution of the earth), I draw waves on the axis. These waves are composed of smaller waves representing smaller units, following the waves of the next largest unit.

500ms

Data Visualization

I've included a few different ways to visualize datasets, which are loaded from CSV tables. You can switch between these datasets by hovering over the central axis.

Time Spans

Durations, such as the average human lifespan or the half-life of Uranium-235, are drawn as rectangles. Because spans don't always have a fixed starting point, they stay centered on the screen unless the "Now" axis moves outside their range.

Cyclical Events

For repeating events like the Moon's orbital period or a Galactic year, I use sine waves. The wave starts at the axis, with a wavelength matching the cycle time. As the frequency shrinks, the amplitude decreases until it fades away.

Geological Time

I included a list of geological eons, eras, periods, and epochs. These appear when they are in the relevant view and are color-coded according to the International Commission on Stratigraphy.

Time Points

Specific events, like the Moon landing or the predicted erosion of Niagara Falls, are marked with pins. If an event has a duration, it uses a pin with two needles marking the start and end.

Image Sequences

I also experimented with image sequences to depict change over time, such as tectonic plate shifts. These move along the timeline and can be dragged to scrub through the sequence.

Development

I originally used Processing (Java) to write the prototype and later switched to the p5.js JavaScript library to implement it for the web.

Project Documentation

About

A visualization of the past, the future and the now to give a sense of scale

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published