About the latest release of Evoke
Evoke 1.3 is the third point release of the Vicon software that controls Vicon’s Origin system, which is used in the location-based VR (LBVR) market.
It includes new features such as proximity grouping, which enables more than 70 Pulsar clusters to be used in a single volume; automatic assignment of clusters to characters; and usability improvements to radio pairing, as well as fixing a number of issues.
For information on optimizing performance for AMD CPUs, see Improving system performance on AMD CPUs.
New features in Evoke 1.3.1
Evoke 1.3.1 includes the following new features.
After you’ve calibrated the system in the usual way, for maximum real-world accuracy (particularly in large volumes), you can create a large custom calibration object from objects placed across the volume. You can then use this calibration object, coupled with using the Perform Rescale option, for subsequent setting of the system origin. This improves calibration stability and consistency over time.
For more information, see Scale calibration and set a fixed origin in Getting Started with VIcon Evoke.
Control system health metrics from the Processing panel
You can now enable and disable the production of live system health metrics and reports from the System Utils section of the Processing panel.
Note that disabling Enable Live System Health also disables auto bump healing.
See also System health reports via API.
Optimize object tracking
In Evoke 1.3.1, you can opimize system performance by specifying the number of threads used for object tracking from the Object Tracking section of the Processing panel.
Note that if Thread Count is set to 0 (the default), the thread count is calculated automatically.
New features in Evoke 1.3
Evoke 1.3 includes these new features:
- Proximity-based tracking for more than 70 Pulsar clusters in a single volume
- Automatic assignment of clusters to characters
- Improved tracking quality for large numbers of objects
- Cluster calibration and refined solving skeleton weights
- System health reports via API
- Improvements to radio pairing
- New tracking filter buttons
- Camera orientation detection
- Selected marker count
- Evoke 1.3 works with VST 3.5 files. VST 3.4 files, as used with Evoke 1.2, are compatible.
- To benefit from the latest retargeting enhancements, update Vicon Retarget to 1.1.2 for use with Evoke 1.3 (to do this, ensure that the option to upgrade Retarget is selected during installation).
- Avoid using Evoke 1.3 with Retarget 1.0.2 or earlier as the cluster template from Evoke 1.3 will not load into these earlier versions of Retarget.
- If you created retarget files in Retarget 1.0.2 or earlier, to benefit from the improved scale estimation and cluster calibration in Evoke 1.3, recreate the retarget files in Retarget 1.1.2.
Proximity-based tracking for more than 70 Pulsar clusters in a single volume
Proximity grouping enables more than 70 Pulsar clusters to be used in a single volume. To achieve this, Evoke permits some duplication of patterns between clusters. It distinguishes between the duplicated patterns by linking the patterns to unique objects by their proximity to these unique objects.
For more information, see Use proximity-based tracking in Getting started with Vicon Evoke.
Automatic assignment of clusters to characters
Evoke 1.3 enables you to automatically identify a character's limbs (eg, label hands and feet) based on position of a single reference object (eg, a headset).
This new feature significantly reduces the need to set up and organize the individual cluster identities in advance.
You no longer need to manually assign every object to the correct character and slot. For each character, you now need to manually assign only one reference object to the correct slot: the other slots may be left empty. You then designate the remaining objects as auto-assignable.
When the character is calibrated, these objects are automatically allocated to the correct limbs based on their 3D position.
After the experience, you can clear the character calibration: this returns the auto-assignable objects to their unassigned state.
If you require only object tracking, you can auto-assign clusters without character solving or retargeting by selecting an option to disable solving.
For more information, see Assign clusters and calibrate characters (automated workflow) in Getting started with Vicon Evoke.
Improved tracking quality for large numbers of objects
Evoke 1.3 introduces a new processing option, Halve Processing Rate Post-Centroid Tracking, which may help when you’re tracking a large number of objects. Normally, when the system is heavily loaded, to avoid dropping frames, you must reduce the system frame rate. With this new option, you can keep the system frame rate high, but reduce the rate of subsequent processing (eg, object and character tracking). A high frame rate may improve tracking quality (particularly for fast movements) while subsequent processing is reduced, lowering processing load requirements on the host PC.
When using the Halve Processing Rate Post-Centroid Tracking option, note the following points:
- 2D centroid detection always happens at the system frame rate
- Subsequent processing depends on whether Halve Processing Rate Post-Centroid Tracking is selected or not:
- When cleared (the default), every frame is processed as normal
- When selected, every other frame is dropped (yielding a tracking rate of 1:2)
- When using the Datastream, if Halve Processing Rate Post-Centroid Tracking is selected, dropped frames occur at every other frame.
Cluster calibration and refined solving skeleton weights
Cluster calibration corrects for minor variability in Pulsar placement on the feet and spine, along with refining the skeleton to give more lifelike character-solving. This helps adapt Characters From Clusters (CFC) to inconsistent application of the clusters to the body for specific objects on certain common axes. This happens automatically when you calibrate characters (see Calibrate characters in Getting started with Vicon Evoke).
Example of a misaligned foot cluster:
Not all clusters are calibrated on all axes. This feature adapts to minor deviations for foot and spine orientation and position to adjust for commonly misplaced locations.
In addition, skeleton solving weightings have been adjusted to provide a more lifelike character solve.
System health reports via API
To monitor your system to ensure consistent performance, you can now remotely trigger the collection of data for a system health report while continuing to run a live experience. The report includes raw data for each camera, indicating how much data it has seen and how well it corresponds to the other cameras.
If data is collected over too short a time period, these metrics may be highly variable for some cameras.
It is strongly recommended that before analysis, you collect data over a sustained period of time, and during a standardized type of activity.
These API services are available for system health reporting:
- Start/stop/cancel report collection
- Get latest report
Information on the status of your system is accessible via the API.
An example implementation (system_health_report.py) can be found in the supplied Evoke API sample scripts.
To access the example, extract the files from the .zip file installed in this default location to a suitable folder:
You can find system_health_report.py in the sample_scripts subfolder.
The information generated for each camera includes:
- Centroid count: The number of 2D centroids seen by the camera
- Labeled centroid count: The number of centroids that correspond to a 3D model point on a tracked object
- Average reprojection error: RMS error between the observed centroid coordinates and the coordinates computed by projecting the 3D model point onto the image
The following reports were generated by running the example. Three reports were generated, showing the system running normally (Report 1), a camera having been moved (Report 2), the issue fixed and the system healthy again (Report 3):
Improvements to radio pairing
This update provides improved support for multiple Beacons, and a more streamlined interface.
To access the Radio Pairing dialog box:
- In the System panel, right-click on a Beacon and select Radio Pairing.
The Radio Host list shows the number of clusters paired and connected to the host and enables you to choose whether the whitelist for the selected Beacon is enabled.
Below, each Beacon (radio host) has its own list of assigned Pulsar clusters. A cluster is assigned to a Beacon when paired to it, or added to its whitelist. The list of clusters for the selected Beacon enables you to see if each cluster is paired and to choose whether or not it is on the whitelist.
In the Assigned Clusters list, you can right-click on one or more selected clusters to perform the following operations:
- Add to or remove from the selected radio host whitelist
- Clean the whitelist. This removes any clusters from the selected radio host whitelist that are paired to another radio host. This option may be useful if you encounter problems when load-balancing or transferring clusters (see Load balancing between hosts in Getting started with Vicon Evoke).
- Unpair the selected cluster(s) from the selected radio host
- Transfer (pair) the selected cluster(s) to another connected, enabled radio host
At the bottom of the dialog box, a separate list of unassigned clusters keeps track of pairing requests and recently unpaired clusters. This list persists for the lifetime of the application session, and the time of last contact between the application and the clusters is recorded. To add one or more selected clusters to the selected radio host whitelist, right-click the cluster(s) and then click Add to Host <host name> whitelist.
Note that in the case of pairing requests, pairing must also be started in order to enable clusters to connect.
For more information on how to use the Radio Pairing dialog box, see Turn on the Beacon and enable pairing in Getting started with Vicon Evoke.
New tracking filter buttons
You can now display or hide items in the Tracking panel, depending on their type. This enables you to display only the items needed for the current task.
To toggle the display of tracking items:
At the top right of the Tracking panel, click the relevant button(s):
The buttons toggle the display of:
- Basic objects (non-assigned)
- Characters (including assigned objects)
- Smart Objects (non-assigned)
By default, all items are displayed in the Tracking panel.
Camera orientation detection
View frames in the Cameras view can now be rotated to match their physical orientation, so that up in the image matches up in the real world. The orientation is determined from the camera calibration if available, otherwise the accelerometer on board the camera is used.
This option is enabled by default.
To turn on or off camera orientation detection:
- In the Cameras view, click View Filters.
- In the 2D Data section, select or clear Show Orientation.
- To choose whether to snap to 90° increments, ignoring smaller rotations, select or clear Snap to 90°.
Selected marker count
In the 3D Scene view, you can now select a new option to show the number of markers currently selected. This enables you to quickly check that all markers on a particular target are visible.
To display the number of selected markers:
- In the 3D Scene view, click View Filters.
- In the Overlays section, select or clear Selected Marker Count.
At the bottom right of the view pane, the Marker Selection count is displayed. If no markers are currently selected, a zero is displayed.
As you select markers, the Marker Selection counter changes to display the number of selected markers.