Table of Contents
EVENT LABEL Data Type
Overview
In Visual3D, an Event Label represents a specific, named time point in a motion capture trial, typically used to segment data into meaningful intervals for analysis or reporting. Events are tied to discrete motion capture frames within the C3D format, meaning they must occur at a specific frame. If an event is calculated from analog data and falls between two frames, it will automatically be assigned to the nearest frame- this limitation is inherent to the C3D standard.
Extra data is often collected in trials- sometimes to minimize the effects of filtering near the start and end of the recording, sometimes to capture multiple cycles in a single trial, or to ensure no important moments are missed. While this extra data can be useful, it is rarely necessary to process all of it.
Instead, analysts define a region of interest using events to mark the beginning and end of the relevant time window. Visual3D provides several ways to generate events, including automatic detection (e.g., Automatic_Gait_Events for heel strike and toe off), manual creation in the interface, or computational methods.
Note: Event Labels are part of the C3D format, and as such follow the rules of the format. The notable limitation of Event Labels is that they must occur at a Point frame. If an event is calculated from an Analog signal that happens to lie between two point frames, then the nearest point frame is used.
Event Definitions and Common Command Parameters
This section will go over important definitions and frequent parameters which are used in many of the Event Commands.
Range
A range is the set of frames between a start and end event, or between events defined in an Event_Sequence. Ranges are the building blocks of event-driven analysis in Visual3D:
Start Event: LHS (Left Heel Strike) End Event: RHS (Right Heel Strike) -> Range = One Gait Step
Event_Sequence
Specifies a strict ordered list of events that must occur in sequence for the range to be considered valid. For example:
/EVENT_SEQUENCE= RHS + RTO + LHS + LTO
This defines a sequence starting with a right heel strike, followed by right toe off, left heel strike, and left toe off. Any deviation from this order will cause the match to fail for that section of the trial, and extra events within the range are ignored unless they break the sequence. The sequence matching is chronological and must be exact; adding an additional RHS at the start of the sequence, for example, will cause the first RHS to be ignored if it does not match the specified pattern.:
/EVENT_SEQUENCE= RHS + RHS + RTO + LHS + LTO
Exclude_Events
Allows the user to exclude any range that contains a specific event.
For example, if Event_Sequence is paired with Exclude_Events, like below- any range that matches the sequences but contains the BAD event at any point will be ignored. This is especially useful when a trial contains unwanted intervals due to marker loss, perturbations, or other irregularities that should not be included in analysis.
/EVENT_SEQUENCE=RHS+RTO+LHS+LTO /EXCLUDE_EVENTS=BAD
Event_Instance
Controls which occurrence of a specific event is used. There are important rules revolving around the use of this parameter and values entered.
- By default, Event_Instance=0 selects ALL occurences.
- A positive, non-zero number selects the n'th occurrence from the start of the trial (e.g. Event_Instance = 2 selects the second occurrence)
- A negative value selects from the end of the trial (e.g., Event_Instance = -1 selects the LAST occurrence.)
Range_Instance
Similar to Event_Instance, this parameter applies the same selection logic, but to ranges rather than individual events.
- A value of 0 selects all matching ranges.
- A positive value selects the n'th range from the START.
- A negative value selects the n'th range from the END of the trial.
For example, Range_Instance=-1 selects only the final matching range in the trial.
Working with Events in the Interface
Events can also be created, edited, and visualized directly in Visual3D's graphical interface.
Step 1: After loading a trial, switch to the Signal and Event Processing Tab, expand the data tree to find the signal of interest, and right-click to select Graph Direction > New Graph.
Step 2: Once the graph is displayed, select it by left-clicking, which will activate the handles indicating it is selected.
- Existing events are shown as small vertical bars on the signal.
Step 3: To add a new event, double-click at the approximate frame location where you want it placed.
- A dialog will appear prompting you to name the event label.
- Multiple events of the same name are permitted, which makes the instance parameters described above essential for precise selection.
The buttons « and » allow you to move the Event forward or backward through the frames. After an event has been created it can be edited using the Edit Events Dialog.
Manually Adding Event using Pipeline Command
Events can also be added manually from the following pipeline command, using the Event_Explicit command.
Event_Explicit /Event_Name= /Frame= /Time= ;
Notes
The Visual3D pipeline includes event commands to identify and manage signal events in your data. Event commands are separated into two categories:
- Event Creation: Commands for creating events; and
- Event Management: Commands for managing events, such as renaming, copying, deleting, etc.
Visual3D's tutorials include a tutorial focused on event processing.