helbling/passist

Smoothing out animation for flips

cwhunt opened this issue · 5 comments

Hi! First off I'd like to say thanks for an awesome program! I've been trying to find a more modern simulator (compared to JoePass or Jongl) to use to document the club passing patterns my local juggling club often uses. I've worked out a number of patterns and I've found that the animation for flips (also called vamps or straight singles - a single throw to the same hand) has a bit of a hitch in it. I may try to see if there's anything I can do to smooth it out but I'm including the simplest pattern with a flip as an example in case you are able to take a look. It's possible I'm not doing something right. In my club we call this "4-count fls" where fls stands for "flip last self". In words it's "pass self self flip" and the result is alternating right and left passes. I'm attaching the JIF file for the pattern but had to make it a Markdown file since you can't upload files with a .jif extension. I'm also attaching a movie of the result.

2J_6C_4-count_fls_generated.md

2J.6C.4-count.fls.mp4

If it helps, the causal diagram is:

two_6_4count_fls

Thanks for the report.

First a quick not about the JIF format:
Please be aware, that this ist still under development. Until we have fully specified that, it could change unexpectedly.
See https://github.com/helbling/jif for the current status and a link to the mailing list.
I'm currently playing around with different drafts for JIF in passist to figure out how good they work in practice.
The /jif page is currently just a unofficial playground to see how the current draft behaves.

That beeing said, I really like that you are interested in passist, are playing around with it and even submit pull requests and issues. Thank you!

I think the issue with your example ist this:
The way you specified it, the second self is being thrown before it lands in the hand. Look these two throws of prop 4:

    {
      "time": 2,
      "duration": 3,
      "from": 0,
      "to": 2,
      "label": "3",
      "prop": 4
    },
[..]
    {
      "time": 4,
      "duration": 3,
      "from": 2,
      "to": 1,
      "label": "3",
      "prop": 4
    },

The self lands on time 5, however, the pass afterwards already goes away at time 4 causing the teleportation visible in the animation.

For reference, here is the corresponding JIF as txt file as well (md looked a bit weird in my browser):
issue18.jif.txt

Thanks for the quick response and explanation! The mailing list looks like it has a lot of good information and I'll read through the old posts. I think I fixed my JIF file and the animation looks good.

2J_6C_4-count_fls_generated_adjusted_duration.jif.txt

4-count.fls.adjusted.duration.mp4

Oops, while I was working out the pattern for diagonal passes I noticed that my sitewap math didn't work out for this one so I fixed it. The result is:

4-count.fls.corrected.duration.mp4

This video better shows the actual timing (you throw the duration 2 throw slower and the duration 4 throw faster):

4-count.fls.adjusted.timeStretchFactor.mp4

The corrected JIF file is:

2J_6C_4-count_fls_generated_corrected_duration.jif.txt

I'm tacking on a few more JIF files and a few more videos to refer to in a discussion on the JIF mailing list.

These first two videos show 4-count with diagonal passes (diagonal pass, self, self, self).

2J_6C_4-count_diagonal_pass_unadjusted_timeStretchFactor.jif.txt

2J_6C_4-count_diagonal_pass_unadjusted_timeStretchFactor.mp4

2J_6C_4-count_diagonal_pass.jif.txt

2J_6C_4-count_diagonal_pass.mp4

These last two show one person doing 4-count fls (pass, self, self, flip) and one person doing 4-count with diagonal passes (diagonal pass, self, self, self).

2J_6C_4-count_fls_diagonal_unadjusted_timeStretchFactor.jif.txt

2J_6C_4-count_fls_diagonal_unadjusted_timeStretchFactor.mp4

2J_6C_4-count_fls_diagonal.jif.txt

2J_6C_4-count_fls_diagonal.mp4

For the second video in each pair I set an individual timeStretchFactor and used it in this way in animation.js:

throwTimeStretchFactor