should "prop" be included in "throw" ?

11 views
Skip to first unread message

JaCo Stuifbergen

unread,
Feb 2, 2026, 8:15:30 AMFeb 2
to juggling-interchange-format
I had a look at a file from passist:
https://github.com/helbling/passist/blob/main/tests/jif/4count_vs_3count_out.jif

In this example, an element of "throws" mentions the prop that is used.

  "throws": [
    {
      "time": 0,
      "duration": 4,
      "from": 0,
      "to": 3,
      "spins": 1,
      "label": "pass",
      "prop": 0
    },

I think that this can be useful for animators, but I prefer to leave it out, because the duration of a throw already tells us when a prop will be used again.
(supposing that the first throw takes the first prop etc., we can still specify colors etc.)
 "props": [
    {
      "color": "#c0392b",
      "type": "club"
    },
    {
      "color": "#0c0d5d",
      "type": "club"
    },

On the other hand,
juggling patterns can also be described as objects that juggle limbs (the hold times are the same. While club is flying, it doesn't hold a hand) so there could be reasons to treat limbs and props on a same footing.

should "prop" be an optional element of "throws[]"?

Christian Helbling

unread,
Feb 3, 2026, 2:48:32 PMFeb 3
to juggling-inte...@googlegroups.com
Hi JaCo

Thank you for bringing this up.

On 2/2/26 14:15, JaCo Stuifbergen wrote:
> I had a look at a file from passist:
> https://github.com/helbling/passist/blob/main/tests/jif/4count_vs_3count_out.jif
>
> In this example, an element of "throws" mentions the prop that is used.
>
>   "throws": [
>     {
>       "time": 0,
>       "duration": 4,
>       "from": 0,
>       "to": 3,
>       "spins": 1,
>       "label": "pass",
>       "prop": 0
>     },

As of now, jif usage in passist is just an experiment, to find out how well ideas of the jif-format are working in practice.
Nothing is set in stone yet.
The test-jif files might still change depending on format decisions.


> I think that this can be useful for animators, but I prefer to leave it out, because the duration of a throw already tells us when a prop will be used again.
> (supposing that the first throw takes the first prop etc., we can still specify colors etc.)
>  "props": [
>     {
>       "color": "#c0392b",
>       "type": "club"
>     },
>     {
>       "color": "#0c0d5d",
>       "type": "club"
>     },

Yes, the idea is, that the prop property of a throw should be optional
and the jif-standard should define the default prop assignment algorithm.

And yes, it is very useful for animaters, which is the main reason why I've got an internal
expanded jif representation including prop assignments in passist.

There are some special cases where one might want to specify some prop assignments in the input.
Consider a multiplex with two objects thrown to two different limbs. You've got two possibilities to decide
which object goes to which limb. The default prop assignment algorithm will choose one way.
But if you want to specify the other way, you'll have to specify the prop assignments of these two throws.

> On the other hand,
> juggling patterns can also be described as objects that juggle limbs (the hold times are the same. While club is flying, it doesn't hold a hand) so there could be reasons to treat
> limbs and props on a same footing.
Interesting thought.


> should "prop" be an optional element of "throws[]"?
Yes.

Cheers Christian

JaCo Stuifbergen

unread,
Feb 3, 2026, 3:29:41 PMFeb 3
to juggling-interchange-format
Thanks for your quick answer!
( and I am happy to treat "prop" as an optional attribute)

I have a small comment on 

The default prop assignment algorithm will choose one way.
But if you want to specify the other way, you'll have to specify the prop assignments of these two throws. 

The default algorithm could have the rule that, for multiplex throws, the "throw" elements that comes first, will apply to the prop that was caught first.
If you want to use the other prop, you must change the order of the throws in the JSON.
(for comparison, I make the same distinction in my mind when I write a multiplex like [43] or [34])
 
PS: I think that I should have used the term "element" for items from an array (e.g. an element of "throws"),
and that I should use "attribute" for a property that belongs to 1 element (an element of "throws" can have attributes like duration, spin and prop).
Reply all
Reply to author
Forward
0 new messages