miner
December 05, 2016
370

# Juggling Patterns and Programs

The art of juggling has fascinated people since the days of ancient Egypt. In this talk, we posit that juggling theory can inform software development. We start with the mathematical insights of Claude Shannon, renowned as the father of Information Theory. After introducing “siteswap” notation, we use Clojure to visualize juggling patterns. Finally, we review some interesing results in neuroscience regarding juggling.

Presented at Clojure/conj 2016.

## miner

December 05, 2016

## Transcript

1. Juggling Patterns and Programs
Steve Miner
@miner

2. Anthony Gatto
Cirque du Soleil

Rich Hickey
Strange Loop 2011

RH ~ incidental complexity
Me ~ essential complexity
https://schani.wordpress.com/tag/juggling/

5. Scientiﬁc Aspects of Juggling
Claude Shannon (1916 - 2001)
written in1980s

6. Egyptian Wall Painting
circa 2040 B.C.

7. Uniform Juggle
• one throw at a time
• alternating hands
• constant rhythm

• Even numbers: fountain

9. 4 Ball Fountain
• Even numbers: fountain

10. Shannon’s Juggling Theorem
• Flight time
• Dwell time
• Vacant time
• number of Balls
• number of Hands

• B ≈ F
• F ≈ (sqrt height)
• small errors compound

12. Flying Karamazov Brothers
scaling H

13. Shannon’s Juggling Theorem
• Flight time
• Dwell time
• Vacant time
• number of Balls
• number of Hands

14. Lessons from Shannon
• historical analysis
• domain understanding
• choosing right abstraction

15. Science of Juggling
• Peter J. Beek and Arthur Lewbel
• Scientiﬁc American, November, 1995, Volume 273,
Number 5, pages 92-97
• www.juggling.org/papers/science-1/

16. Siteswap Notation
• sequence of integers
• e.g. 531 = [5, 3, 1] …, 5, 3, 1, 5, 3, 1, …
• 3 = standard three-ball cascade
• odd for cascade, even for fountain
• empty 0, switch1, hold 2

17. 531

18. Inventors
• Paul Klimek - UC Santa Cruz 1981
• Bruce Tiemann and Bengt Magnusson - Caltech
1985
• Michael Day, Colin Wright and Adam Chalcraft -
Cambridge 1985

19. Number of Balls
• average of throws, must be an integer
• 531 (/ (+ 5 3 1) 3) 㱺 3
• 71 (/ (+ 7 1) 2) 㱺 4
• 97531 (/ (+ 9 7 5 3 1) 5) 㱺 5

20. Validate Pattern
(defn siteswap? [pattern]
(let [cnt (count pattern)]
(or (zero? cnt)
(apply distinct?
(map #(mod % cnt)
(map-indexed + pattern))))))

21. Spec
(s/def ::siteswap
(s/and (s/coll-of (s/int-in 0 10) :kind vector?)
siteswap?))

22. Orbits
• Decompose pattern into orbits (sub-patterns)
• 531 = 501 & 030
• 4413 = 4000 & 0400 & 0013
• 97531 = 90001 & 07030 & 00500
• Practice separately

23. Quil
• Clojure library for graphics and animations
• quil.info
• Rastelli - Clojure juggling library

24. 453
3 balls in 450
1 ball in 003

25. 97531
2 balls in 90001
2 balls in 07030
1 ball in 00500

26. Isomorphic Patterns
• repeat: 3 㱺 333
• rotate: 531 㱺 315 㱺 135

27. New Patterns
• add period to element: 33 㱺 53
• swap sites i & j
• add distance earlier, subtract distance later
• guarantees same landing schedule
• 333 㱺 531 531 㱺 441

28. 531

29. State Diagram
https://plus.maths.org/content/juggling-maths-and-beautiful-mind

30. Siteswap Features
• simple data representation
• ﬂexible interpretation
• sharing
• composition
• veriﬁcation
• generation

• juggling.org
• thewjf.com
• wikipedia.com
• siteswap.net/JsJuggle.html
• jugglinglab.sourceforge.net

32. The Mathematics of Juggling
• Book by Burkard Polster, Monash University
• Survey article based on his book
• www.qedcat.com/articles/juggling_survey.pdf

33. – Burkard Polster
The way that I feel when I look at a
nice equation is the same way I feel
when I look at a nice juggling pattern.

34. Allen Knutson
• Math professor at Cornell
• Siteswap FAQ on rec.juggling
mathematics of juggling

35. Neuroscience
Taxi Drivers & Jugglers
• Marc W. Haut, PhD
• nature.com/nature/journal/v427/n6972/full/
427311a.html

36. Jennifer Slaw: Juggling Life
• TEDxPrincetonlibrary talk
• motivational speaker, teaches
juggling
• improves memory,
concentration, ﬂexibility,
patience, balance
Rohq5649A

37. – Michael Moschen
What you learn is how to feel with your eyes