Speaker
Description
The throw sequence "423" is a valid pattern for juggling with three balls, but "432" will result in collisions and dropped balls. How can you tell? All juggling patterns can be described in a notation called siteswap, and siteswap sequences can be mathematically validated and visualised.
In this talk, I introduce jugglr, an R package for working with siteswap sequences. It validates sequences and prints their properties, generates timeline and ladder diagrams with ggplot2, and creates animated GIFs. You'll learn something about juggling. But this is an R conference, not a juggling convention, so more importantly, you'll learn about S7, the new(ish) Object Oriented Programming (OOP) system designed to combine the best of S3 and S4 whilst avoiding the pitfalls of each.
Juggling patterns turn out to be an ideal domain for S7. A siteswap's validity,
period, and number of props are all automatically derived from its throw sequence -- a natural fit for S7's computed properties. Input constraints like "a sequence must contain only alphanumeric characters" map directly to property validators. And the relationship between general siteswap patterns and specific types like vanilla, synchronous and multiplex siteswap is cleanly expressed through S7's class hierarchy and factory constructors.
Using S7 in a package is not yet well-documented, so I'll also share practical lessons from developing jugglr. You'll leave with both an appreciation for the mathematics of juggling and the confidence to use S7 in your own packages.
If you used AI tools or services to support the preparation of this submission, please state the name and reason for using each of them.
Claude Code. I wrote an abstract myself covering the content of the talk and what I wanted attendees to learn from it, then opened Claude Code in the package repo, gave it my abstract, and asked it to improve the abstract.
| Keywords: Please list up to 5 keywords to help us find the right session for your contribution. | package development, object-oriented programming, data structures, visualisation |
|---|---|
| Virtual Option | This submission is for onsite presentation only |
| Video Recording | Video sharing is fine |
| The author(s) agree(s) to take responsibility and be accountable for the contents of the submission and is/are authorized to present it. | Confirm |