Helpful text, media, software and hardware for the time class
[Home | 02024 Syllabus | Ideas | Resources | Gallery]
Bibliography
The first two books: Rovelli’s “The Order of Time” and Griffiths’ “A Sideways Look At Time” are required for the course.
Here are several other books on Time I’ve come across. I have copies of most of these, and am happy to lend them out; several are available online through NYU’s library.
I also recommend checking out the paper that started it all: On the Electrodynamics of Moving Bodies (1905). Einstein published three other papers that year, all significant, earning the year a name: Annus Mirabilis, or the Miracle Year. And the famous Einstein’s Dreams by Alan Lightman.
So many other possibilities! For more inspiration see Maria Popova’s list of 7 Books on Time and her Atlantic piece on Visualizing Timelines.
Julian Barbour argues in a book and this essay that time does not exist.
Ted Chiang’s short stories often feature imagery from horology and space exploration, and his story Exhalation is specifically about the relationship between entropy and time. The Story of Your Life (the basis for arrival) is also about time.
Several non-books or online texts: This guide to the History and use of Astrolabes, by Darren Hayden. Or if you prefer, Chaucer’s. The beautiful design of Asa Smith’s Illustrated Guide to Astronomy (also via Archive.org). A visual guide to general relativity.
Video and other media
Check out these time-specific TED videos. There are physics explainers, like this short one:
As well as valuable insight into cultural aspects of time such as:
PBS’ excellent digital series, Space Time, deals with things like understanding the speed of light and causality. Start here:
Other Space Time videos include:
- The Doomsday Argument
- Do the Past and Future Exist?
- Why Do You Remember The Past But Not The Future?
- How We Know The Universe is Ancient
- Entropy Playlist (Time adjacent)
Sean Carroll is one of physics’ best popular communicators. In addition to his trade books mentioned above, he has an excellent podcast, Mindscape, as well a a regular blog.
His “Biggest Ideas in the Universe” series includes several entries on Change, Time, Spacetime, Entropy and Information
He spoke with the Long Now Foundation on “The Passage of Time & the Meaning of Life.”
What Is Time? | Professor Sean Carroll explains the theories of Presentism and Eternalism.
He also posts his podcasts on youtube if that’s how you get your long-form audio. Here are some excellent time-related episodes:
- Mindscape 158 | David Wallace on The Arrow of Time
- Mindscape 89 | Lera Boroditsky on Language, Thought, Space, and Time <—- Highly recommended!
- Mindscape 140 | Dean Buonomano on Time, Reality, and the Brain
- Mindscape 12 | Wynton Marsalis on Jazz, Time, and America
- Mindscape 2 | Carlo Rovelli on Quantum Mechanics, Spacetime, and Reality
Our author, Carlo Rovelli, has several talks on Youtube:
The Q&A for above is here. He also spoke with New Scientist on Time.
Briane Greene (book mentioned above) interviews Lera Boroditsky (also mentioned above, with Sean Carroll) on Language and Time.
Steve Mould on how a quartz watch works – its heart beats 32,768 times a second. This is a great video!
Imagining a Time-Literate Society — Marcia Bjornerud at Long Now (which itself has a youtube channel with great time content.)
Kurzgesagt is a thought-provoking channel with several entries on time.
- When Time Became History – The Human Era
- The Past We Can Never Return To
- A New History for Humanity 12, 017 – The Human Era
- The 12,020 Human SPACE Era Calendar
- Time: The History & Future of Everything – Remastered (Original)
- Optimistic Nihilism
Deep inside quartz clocks.
Chronogram – exploring the past.
Some 99% Invisible podcast episodes deal with time:
- Waiting – How design can influence our experience of waiting.
- 10,000 years – How do we design a message that will be understood 10,000 years from now?
- Calendars – Why calendars are weird and the wild story of the attempts to promote a rational one.
Radiolab too, of course.
NPR’s series “Finding Time.“
Organizations
ITP’s own Clock Club on Github! Lot’s of code and electronics resources as well as links to inspiring projects, compiled from a few years of ad-hoc clock club meetings!
Oxford’s Future of Humanity Institute. Papers on subjects like the Drake Equation, the Great Filter, and the Aestivation Hypothesis. See in particular Nick Bostrom’s work, e.g. The Vulnerable World Hypothesis and The Future of Humanity.
The Long Now Foundation is building a 10,000 year clock deep inside a mountain, and hosting occasional salons to talk about it.
Designing Interactive Systems (DIS) “Time, Temporality, and Slowness” workshop organized by William Odom.
The National Institute of Standards and Technology (NIST) maintains the US reference atomic clock (tune in to their WWVB broadcast with something like this) and has published this history of timekeeping. NIST (a government agency) also gave the world this animated, spoken-word video poem about time.
Time Hardware
Below are some notes about mechanical and electronic components that were discussed in previous classes and might be useful for making tangible objects in this class. This somewhat overlaps with the ITP Clock Club github and should probably be merged with that (TODO!)
Real-Time Clocks
Real-Time Clocks (RTCs) are electronic components that maintain a constant time. Think of them like a watch for your microcontroller – with an RTC a microcontroller to read the true current time, as opposed to the elapsed time since starting.
RTCs are common and extensively documented. See for example the breakout boards from Adafruit and Sparkfun with their accompanying documentation and libraries. Rather than reiterate that information here, I’ll highlight a few top-level issues when working with RTCs.
RTCs generally don’t “know” the time automatically. They need to be set, like a clock, after which they will maintain the correct time. The Arduino compiler has special directives for time (__TIME__) and date (__DATE__) that can be used to initialize an RTC with the time when code is uploaded. Alternatively, a mechanism for setting the RTC could be exposed to the end user. A networked microcontroller could use Network Time Protocol (NTP) once to set an RTC to keep local time. In theory, a system could access the atomic timing signals from sources such as the NIST-F1 Cesium Fountain Atomic Clock in Boulder, Colorado, or use GPS signals.
RTCs must maintain power at all times in order to keep a constant time. However, the have extremely low power requirements, so a single coin-cell battery can power an RTC for a long time. Many breakout boards have a coin-cell holder built in.
RTCs appear similar to system clocks in that they count pulses of a quartz crystal. However, the 32,768 Hz crystals used for RTCs are made more accurately than typical system clocks. Further, a MCU may have a lot going on right now, so it is harder than you might think to write really accurate low-level timing code. RTCs will generally outperform internal MCU timers in exacting time-keeping applications because of their higher clock accuracy and dedicated function.
RTCs may include internal temperature tracking and/or compensation to increase the accuracy of the timing, as even quartz, while very stable, has some temperature-dependency.
Some RTCs have the ability to program alarms at specified intervals or specific points in time. At the programmed time a dedicated alarm pin will toggle state. Some might have programmable timing outputs such as a very accurate 1Hz square-wave signal.
Note: Some chips used in microcontrollers have internal “RTCs”, including the SAMD21 used on the Arduino Nano IOT 33. However, unless an RTC has 1) a clock-grade external 32,768 Hz crystal, and 2) an continuous power supply separate from the main microcontroller, it may not be accurate nor maintain time when rebooting. See this forum post for some details – the MKR boards are OK but the Nano’s will loose time. ITP’s Pcomp RTC lab uses the internal Nano RTC, which is find as a demonstration of how to set and access the RTC, but not recommended for long periods of actual time-keeping.
Quartz clock movements
These are the basic, inexpensive mechanisms inside almost every wall-mounted non-digital clock you’ll see. The standard model has a 12-hour hour hand and a minute hand, with or without a step second hand (meaning it moves jerkily, once every second, usually audibly.) Options include: 24-hour hour hand (sometimes called ‘zulu’ or military time); higher-torque for driving longer hands; sweep second hand (smooth movement, less audible); and many others.
Inside a quartz movement is essentially a specialized stepper motor called a Lavet-type motor. It drives a permanent magnetic rotor 180 degrees every second, and this movement is in turn geared to the moving hands. Sweep second movements operate in a similar way with smaller, more frequent steps. The electronics in a movement are generally unhackable under a black epoxy blob, with only the quartz crystal itself exposed, but the ‘brains’ can be bypassed and a microcontroller can directly drive the stepper motor (certainly at 5V, sometimes at 3.3) for custom rates of movement. See the Clock Club notes on this topic for more detail.
–> Very cool project alert (2021): Josh Levine (with CW&T, the tech for Time Since Launch) and Scott Thrift (Moma- and Kickstarter-star Day, Year, and Moon clocks) are collaborating to create a programmable custom interval timer. Josh has a great write up of how the Lavet motor and gearbox works in a clock, and some power calculations.
The quartz brains in a clock (or watch) are pretty ingenious. A very precise crystal oscillates 32,768 time a second. Note the power of 2 (to the 15). The beats from the crystal are input into a 15-stage binary ‘flip flop’, a common component in digital logic that toggles its output on the rising or falling edge of an input pulse. Each stage feeds into the next, so the output of each stage changes at half the rate of its input. After 15 stages, the final output is oscillating once per second, and this drives the stepper motor output. (Another way to think of this is a binary counter counting up by one to 32,768 each second. The final bit of the value changes once per second.) Steve Mould has an excellent explainer video on this, using actual flip flops.
Time class student Jason Tse did a great write-up on hacking quartz mechanisms with 555 timers.
Stepper Motors
As described above, a common clock is basically a specialized stepper motor. You may have already encountered steppers in physical computing – these are the motors common in things like printers (ink and 3D), CNC machines, robotics, etc. They are used where precise motion is needed because they take a fixed size rotational “step” (often 1.8 degrees or 200 steps/revolution) with every input pulse from control electronics. So – steppers can be a great DIY clock component, assuming they are driven well with the right timing.
In fact, specialized dual-concentric-axis steppers (sometimes called ‘biaxial’ steppers) have been developed to drive clocks, such as those from VID and Juken, plus many copies. These came from the automotive industry (using the same components that drive physical gauges like speedometers), but have been adapted to other uses, including the popular Humans Since 1982 clock-inspired art installations. See this Hackaday log on building a clone. Arnab (2020 resident and 2019 Time student) and Tom Igoe have made adaptor boards for these motors. Camera-focus systems are also a source for pretty small steppers.
“Hybrid” smart watches with mechanical hands have ultra-tiny motors in them (see this translucent model for exaple) but so far I haven’t found a source for these. The Open Chronograph project looks promising – a custom Atmega board in a smart-watch form factor. However, it requires a donor watch for the motors (and case and hands). Refers to Soprod, a division of Citizen, as the motor source – their design is detailed a bit here.
Hackable Smart Watches
“Analog” smart watches with physical hands, like the Soprod-powered model above, are less numerous than pure digital displays such as the Apple watch, etc. Below are several models of hackable digital smart watches.
Synchronous AC Motors
The electrical grid is a very accurate timepiece. In North America, the grid operates at 60Hz, and, incredibly, the actual giant machinery of the grid – the generators – are turning in synch with each other across large interconnected operating regions. A “synchroscope” is a gauge to help keeps generators operating in unison.
The grid is well-enough regulated that the AC wave itself can drive clocks. Older kitchens in the US often have a special recessed plug meant to power and hold a wall clock. These contain simple “synchronous AC” motors to drive the hands. While these are getting harder to find (McMaster is one source for new motors; surplus motors may be available), AC sync motors can still be a great way to get reliable constant motion – see Che Wei’s piece. Also of interest – reduced power demand during the pandemic has resulted in AC clocks losing time in Hawaii.
Non-smart mechanical outlet timers (for switching on and off lights automatically before IOT) are essentially 1 revolution / day sync motors that have a physical programming interface (pins) for tuning something on and off over the course of a day – could be useful.
Watch Movements
Quartz and mechanical analog watch movements are available and come in nearly endless variations. Prices vary: the cheapest quartz movements are a few dollars; mechanical movements can be hundreds or thousands of dollars. But there are also hundred-dollar quartz movements and 20-dollar mechanicals.
Few watchmakers make their own “in-house” movements, as they are prohibitively complex. Most watches vary primarily in the materials and design over a handful of movements from places like Seiko, Miyota, and ETA. But some adventurous makers use a base caliber as an input to an additional layer of complex machinery – see for example the amazing watches from Ressence (using ETA movements) and Ochs und Junior (using Ulyssee Nardin).
The primary challenge working with these is how small the parts are. Esslinger seems to be the best source for these.
Time Software
I think there are two key elements to processing time gracefully with computation media: the ability to schedule events, and the ability to smoothly change variables. These both sound simple, but can be very nuanced in practice. A good tool combines both: a rich palette of animation “tweens” or easings (always based on Robert Penner’s work) and the ability to group and sequence those in a timeline (preprogrammed or generated algorithmically), along with function callbacks and other event triggers.
Examples
I’ve put together a collection of P5 examples.
Basics
- Most-basic clock template
- Another basic clock with sweep milliseconds (based on Tom’s from the ITP Clock Club Repo)
- Upgraded basic clock has a sweep second hand, and moves the hour and minute hand proportionally (rather than step-wise).
- Sub-basic sketch (but contemplate how framerate plus math equals animation)
Suncalc
- Suncalc template loads the library and demonstrates a few basic queries.
- Day/night length shows the proportion of day and night for various dates
- Suncalc calendar shows a year of day/night data.
Easings and Timelines
- A simple Greensock template with a few easings and a timeline. (Here’s an older leaner version.)
- One of the easing demos included with Func.
- The basics of setTimer and setInterval in JS.
- Related: Interesting notes on how timing functions are implemented in JavaScript, and this discussion of some particulars.
Design studies
- Design study for a nonlinear clock (that I turned into a mechanical clock)
- Design studies of the Nomos Neomatik and Botta Uno 24
- Design study of the Sinn U1 Automatic
- Japanese Microseasons
- Polar divisions
- Several design examples pre-render elements. This lets you think about the element (a hand, a dial) algorithmically – what are it’s proportions? Can I make a code gesture that captures its texture? – but since they don’t change, only renders once for faster/lighter performance. Here is just a dial as an example.
Complications
- Two-digit date complication
- Outsize date (version with motion) a la A. Lange & Sohne
- Memento Mori – how many days/weeks/years have I been alive? Out of what reasonable total? Hardly started but foundation is here.
- Moon phase complication.
Arduino animation libraries
A zip of the Arduino code with Ramp and Tasker examples. Demo videos from 2020 (private for class, password is orrery). Ramp, Tasker, Next Level
Libraries
- Greensock: JS, Timelines and Tweens, probably the most fully featured library of its kind. Happily, while it used to conflict with P5js at a low level, recently (as of 2020) that’s no longer the case.
- Func – P5 library from the one and only R. Luke DuBois. Waveform generators and easing functions (no timeline).
- Ani – Java/Processing – Based on Greensock, timelines and tweens. Not currently updating but quite functional.
- Ramp & Tasker – Arduino. Schedule events via Tasker, animate variables with Ramp.
- Arduino Timer – versatile way to set up multiple recurring or scheduled functions.
- This Instructable covers a simple DIY multitasking scheme, and compares it to Real-Time (RTOS) libraries for the Arduino
- Suncalc.js – Provides times and positions of various sun and moon characteristics (sunrise, sunset, twilight, moon phase, etc)
- Astropy – a Python library for calculating absolutely anything related to the solar system.
- I’m looking for a JS library like Astropy. This one might be it, but I haven’t tested it. The basic procedure to calculate planet positions isn’t too complicated – NASA’s JPL publishes tables to the Kepler elementals that determine orbits. Knowing where a planet appears to be from a viewpoint on Earth is a matter of carefully applied trigonometry and keeping your timeframe straight – a little complicated but not deeply so. Doable with a calculator, but being lazy I’d love a library. The credits for JSOrrery are a good source for further information, and this tutorial walks through some of the steps.
Software tools
A library of gears, and Matthias Wandel’s gear software. A possible source for unusual gears (I haven’t used yet). DIY wooden worm gear. A homemade gear cutter.
Gearotic. Bad pun, worse website, but very powerful software for gears and clock making. PC only.
Sundials
- This online sundial tool doesn’t look too good, but is powerful and versatile.
- A horizontal dial generator and one for vertical dials
- More software listed at Sundials.org.
- Several 3D printed projects, including a sundial that projects a changing digital clock.
Several online planetaria (acceptable plural) and orreries:
- Stellarium, Suncalc and Mooncalc.
- The Sky Live (versatile object lookup)
- Star Atlas (elegant – since replaced with a much inferior alternative. Bonus points for anyone who can resurrect Star Atlas code)
- Solar System Live (not so elegant, but useful for generating png maps of the solar system on a specific date)
- The Planets Today (astrology tinged, but useful options for viewing the solar system).
- A simulator for the Prague Astronomical Clock. Wolfram research notes on the clock.
- Satellite tracker “Heavens Above“.
Some physical models of same:
- Helios Planetarium (as seen in a Weird Al video, really an orrery, interesting for its patented planar gear mechanism).
- This low tech projector.
- A mechanical paradox.
- Several projects documented on youtube.
- Some flat wall-mounted celestial mechanisms from Sean Gallagher.
- Really high-end sundials from very German firm Helios Sonnenuhren (videos).