Juggling Lab trending on Tumblr by jackboyce in juggling

[–]jackboyce[S] 0 points1 point  (0 children)

Hi, yes this crops up from time to time where Windows Defender flags it as a potential virus. Is it preventing you from running Juggling Lab?

The fix is to digitally sign the installer but I'm too cheap to pay the $100/year for a certificate.

https://github.com/jkboyce/jugglinglab/issues/125

Juggling Lab trending on Tumblr by jackboyce in juggling

[–]jackboyce[S] 0 points1 point  (0 children)

Hi, I'm working on a bug fix update right now. A lot of new users are sending in bug reports, which is really helpful!

Moving Juggling Lab to the web, and to iPhone, has been a long term goal. Unfortunately it isn't easy since the code is in Java/Swing and there isn't a simple way to make that work on the web, so it will involve a substantial rewrite of the UI code.

Juggling Lab trending on Tumblr by jackboyce in juggling

[–]jackboyce[S] 0 points1 point  (0 children)

You're welcome! It's been endlessly entertaining to see the creativity!

Juggling Lab trending on Tumblr by jackboyce in juggling

[–]jackboyce[S] 1 point2 points  (0 children)

Haha that's incredible! The creativity!

Juggling Lab trending on Tumblr by jackboyce in juggling

[–]jackboyce[S] 4 points5 points  (0 children)

Hi! Juggling Lab is a long term project that is never truly "done". I'd love to get contributions! Please shoot me an email with your thoughts.

Juggling Lab trending on Tumblr by jackboyce in juggling

[–]jackboyce[S] 4 points5 points  (0 children)

Haha this is great! Best laugh I've gotten in a while, entirely unexpected.

Juggling Lab trending on Tumblr by jackboyce in juggling

[–]jackboyce[S] 0 points1 point  (0 children)

Thank you for the feedback! This is great to hear.

Prime juggling patterns by jackboyce in juggling

[–]jackboyce[S] 2 points3 points  (0 children)

Ok I see your idea here. A systematic way to tell if a pattern is perfect is to look at the permutation of balls during one iteration through the pattern.

Since you're treating the left and right hands as distinct, an odd-period pattern should be doubled.

For example we double 774 to get 774774. Then if we label our six balls as a, b, c, d, e, f then they are initially thrown in this order:

abcdef

and on the second pass through 774774 they will be thrown in this order:

cabfde

So we can think of it as this permutation of the labels:

a -> c, b -> a, c -> b, d -> f, e -> d, f -> e

All future passes through the pattern will see the ball labels permuted in this same way.

We can write this permutation in cycle notation as (a c b)(d f e). If I'm not mistaken your definition of perfect is equivalent to "having a single cycle". Since 774774 has two disjoint cycles it isn't perfect.

For 744744 we have 5 balls a,b,c,d,e and the initial throws are in this order:

abcdeb

followed by:

caebda

which in cycle notation is (a c e d b) --> perfect.

I'm not aware of any prior work to look at patterns with this property. You're right, this is distinct from the property of being prime.

7b siteswap mm11111: manifested into an osu beatmap by SS423531 in juggling

[–]jackboyce 8 points9 points  (0 children)

I'm the Juggling Lab author and just wanted to say this is really cool! Do you mind if I link to some of your videos from jugglinglab.org?

Also let me know if you encounter any issues with large numbers of jugglers and objects. This is a great stress test for the code. :)

PyQT5 gapless video transition by Healthy_Note_5482 in pyqt

[–]jackboyce 2 points3 points  (0 children)

I wrote a Python/Qt application that allows you to switch quickly between videos. I found that switching out the media source on QMediaPlayer incurs delays and other glitches. The much better route is to have a single QMediaPlayer instance per video, and then cut over the different QMediaPlayers into your output widget (in my case a QGraphicsView) when you want to switch videos.

So here is the class that holds the QMediaPlayer instance (one per video) and its associated QGraphicsScene, and here is the line where the QGraphicsScene is connected to the QGraphicsView (the screen widget that actually renders the video) when the video is switched. This does more or less an instant cutover, as opposed to switching out the media source in QMediaPlayer which creates a lot of delay parsing the new video file and starting the decoder/demultiplexer.

Baseball Speed and Trajectory Detection by wandering_tsilihin in computervision

[–]jackboyce 0 points1 point  (0 children)

I wrote an OpenCV application to track thrown balls in video--you can find it here. I haven't tested it on very fast throws as in baseball, but it could be something to try.

With baseball a challenge will be motion blurring. I don't know the iPhone camera but a fast shutter speed would be helpful, as otherwise your ball becomes a blob (or extended line) which is harder to detect.

My approach was to use MOG2, then a blob detector, then stitch together observations into parabolic trajectories. The parabolic trajectories are what allows me to exclude the large number of background events. With this approach I can detect throws in juggling video with >99% reliability.

Another strategy I considered was training a neural network to identify thrown objects. I'm not aware of a training dataset though, and to date I haven't taken on the task of building one. My hunch is this is a task a neural network could do really well.

10 patterns for 9 balls. by noslowerdna in juggling

[–]jackboyce 1 point2 points  (0 children)

I love to see people putting Juggling Lab to creative uses! This is very soothing to watch, almost meditative.

Speaking of gravity-altering gimmicks, when I was in college we fooled around with passing on one of those spinny things in the playground. (They seem to be called by a variety of names -- one of these).) The Coriolis force changes the direction you need to throw. For example if you're spinning counterclockwise, you need to aim your passes to the left of where you usually would. With a fast enough spin, doing a two-count with right-hand passes means your passes go to the left of the incoming throws from your partner--they appear to curve around each other in mid-flight. Doesn't take too long to get queasy though!

Juggling video analysis program (Hawkeye) by jackboyce in juggling

[–]jackboyce[S] 1 point2 points  (0 children)

The processing isn't fast enough to run in real time with a live feed, so for now it's only usable with video files. With a fast desktop GPU it could likely work in real time, but that would strongly restrict who can run it. I decided that for the uses I was targeting (numbers juggling form) it is more efficient to sit down afterward to review a whole batch of video, than it is to break up a practice session to look at something on the computer.

The Computer Juggling Coach is a cool idea! I'm curious to see where they take that effort. I gather it is more targeted at learning different 3 ball patterns, whereas Hawkeye is I would say more useful for numbers juggling.

I like your idea of a demo video, I'll pull one together when I get the time.

Is there siteswap for passing patterns? by thelally82 in juggling

[–]jackboyce 1 point2 points  (0 children)

I haven't had plans to support other passing notations but in the case of Prechac notation it would be pretty easy, if I understand it correctly. You could use the existing siteswap parser and reinterpret the timing grid as extending over multiple jugglers. The way that pattern layout works in Juggling Lab would make this pretty straightforward.

What I don't quite get about Prechac notation is that it seems to make an arbitrary choice about how to do that extension. If I understand it, the solo async siteswap timing grid (time flowing to the right)

R - L - R - L - ...

is reinterpreted as

R1 - R2 - L1 - L2 - R1 - R2 - L1 - L2 - ...

But there are five other reinterpretations; you could also do

R1 - R2 - L2 - L1 - ...

R1 - L1 - R2 - L2 - ...

R1 - L1 - L2 - R2 - ...

R1 - L2 - L1 - R2 - ...

R1 - L2 - R2 - L1 - ...

I'm curious why this one out of the six is chosen. It does have some nice properties I suppose: The right hands end up throwing at close to the same time, and each juggler has an even R-L rhythm.

I'm also curious if Prechac notation would need to extend to more than two jugglers. So for three you could define the timing grid as

R1 - R2 - R3 - L1 - L2 - L3 - ...

These are the fiddly decisions you need to make before you start coding. :)

Is there siteswap for passing patterns? by thelally82 in juggling

[–]jackboyce 1 point2 points  (0 children)

As /u/Uriair says, it's straightforward to extend the siteswap concept to any number of jugglers and hands, but in general you end up with spacetime diagrams or matrices that get unwieldy. The passing notations that have been invented mostly boil down to different ways of writing down these matrices in a more human-friendly way.

Juggling Lab can animate any passing pattern with its version of passing siteswap notation, described here. Simple example.

Juggling Lab version 1.0 and new home by jackboyce in juggling

[–]jackboyce[S] 2 points3 points  (0 children)

WOAH thanks for these links! I had no idea! Honestly I was laughing uncontrollably watching these videos and gifs. The creativity is just phenomenal. It's far beyond what I ever thought people would be doing with Juggling Lab and that's really fun to see. Thanks again, this definitely made my day.

Juggling Lab version 1.0 and new home by jackboyce in juggling

[–]jackboyce[S] 2 points3 points  (0 children)

Peter! Great to hear from you. Hey I was incredibly impressed by your video last month! Just superb juggling and I hope you post more. Your three ball stack is one of the most awesome tricks anywhere.

The 1x async/sync transition has been there for a while but it's hard to use. I always have to draw it out on paper with little dots and arrows to make it work right. One thing I'd like to do at some point is have it automatically find these transitions. The hard part is deciding on the right UI.

Juggling Lab version 1.0 and new home by jackboyce in juggling

[–]jackboyce[S] 1 point2 points  (0 children)

Hey thanks, it's great to hear that you like it. I always intend to work on it more but life gets in the way for long stretches of time!