4.1 OSC to GH with Multiple Objects

Step 1:

/vicon/frame
1378
100
/vicon/marker/orange/orange0
-1554.7418
-1700.4406
1050.1528
/vicon/marker/orange/orange1
-1678.9219
-1789.2358
1022.3948
/vicon/marker/orange/orange2
-1430.8173
-1949.1526
1178.9094
/vicon/marker/apple/apple0
-593.426
-589.5725
1409.8335
/vicon/marker/apple/apple1
-349.87317
-499.42212
1429.9751
/vicon/marker/apple/apple2
-699.663
-686.95197
1254.6859

Step 2:

/vicon/frame
1378
100
/vicon/marker/orange/orange0
-1554.7418
-1700.4406
1050.1528
/vicon/marker/orange/orange1
-1678.9219
-1789.2358
1022.3948
/vicon/marker/orange/orange2
-1430.8173
-1949.1526
1178.9094
/vicon/marker/apple/apple0
-593.426
-589.5725
1409.8335
/vicon/marker/apple/apple1
-349.87317
-499.42212
1429.9751
/vicon/marker/apple/apple2
-699.663
-686.95197
1254.6859

Step 3:

orange
orange
orange
apple
apple
apple
{-1554.74,-1700.44,1050.15}
{-1678.92,-1789.23,1022.39}
{-1430.81,-1949.15,1178.90}
{-593.42,-589.57,1409.83}
{-349.87,-499.422,1429.97}
{-699.66,-686.95,1254.68}

Step 4:

{-1554.74,-1700.44,1050.15}
{-1678.92,-1789.23,1022.39}
{-1430.81,-1949.15,1178.90}
{-593.42,-589.57,1409.83}
{-349.87,-499.422,1429.97}
{-699.66,-686.95,1254.68}

Step 1: The original OSC data stream

Step 2: just as before, the first thing we need to do is get rid of the first three lines of the stream (The address, frame, and frame rate). To do this we use the split component with the index set to 3. Then we partition List B from the split component into branches of four values.

Step 3: Separate the marker names into a list by getting the first list item of each branch and then splitting the address string with a “/”. The separates each address into a list of branch of 5 strings. Get the list item of index 3 which will be the object name.

Use list item to separate the X,Y, and Z values of each marker from the original partitioned list. Use these values to create a vector for each marker.

Both of the above lists should be flattened.

Step 4: The final step is to separate the vectors per object. We can use the create set component tot create a pattern of numbers based on the object names. We can then use the sift pattern component to separate the vectors with that number pattern. This will produce lists with null values so you will need to use the clean tree component to remove the null values form each list.

You can download the final definition here: OSC_TO_GH_Multiple_Objects