Experiment · SVG, JavaScript, and a little Python

Turn the crank

131 photographs from the Bicycle Crimes series, in the order I took them. Pedal forward through eight years. Pedal backward to rewind. Shift gears and watch what the bike does.

Loading photographs…

  
Gear
6 of 12
Teeth
32 × 24
Wheel turns per pedal turn
1.33
Photos per pedal turn
6.0
Cadence 0 rpm

Each stripe is one photograph, colored by its dominant color. Drag across the strip to jump.

How gears work

The chain links the pedals to the back wheel. Count the teeth on the front ring, divide by the teeth on the back cog, and you get how many times the wheel turns for one turn of the pedals.

  • Easy gear, big cog (32 × 51): 0.63 wheel turns per pedal turn. Pedaling is light, so it is the gear for hills, but you go slowly. The photos get big and crawl by.
  • Hard gear, small cog (32 × 10): 3.2 wheel turns per pedal turn. Every push is heavy, but you fly. The photos shrink and race past.
  • Try it: turn on Auto-pedal, which keeps your legs at the same speed, then shift. Only the gear changes, and the photos speed up or slow down.

How it was made: a Python script (Pillow) reduced 131 originals, 605 MB, to 21 MB of web images, stripped their metadata, read each capture date, and pulled a dominant color from every frame. The drivetrain is SVG with a flywheel: let go and it coasts. The chain path is recalculated as the derailleur shifts, from the tangent lines between the chainring, the cog, and the two jockey wheels.

← All experiments