This Dash application is designed for analyzing and visualizing motion capture data, providing insights into positional and velocity data, error metrics, and comparisons between different motion capture systems.
The app layout is divided into three main sections:
- Sidebar: Contains buttons for selecting different markers.
- Main Content: Displays various plots and charts related to motion capture data.
- Info Section: Shows detailed information about the selected marker and includes the save report button.
MoCapData
Model: Encapsulates position and velocity data, RMSE, and absolute error dataframes, ensuring a structured and consistent data format.
Callbacks in Dash drive the interactivity of the app. Here's an overview of the key callbacks:
- Purpose: Manages the selection of markers within the app.
- Functionality:
- Stores the name of the selected marker in
dcc.Store
. - Responds to user interactions like clicking on a marker in the graph or a button.
- Other callbacks use this stored data to update plots and information cards.
- Stores the name of the selected marker in
- Purpose: Dynamically update the trajectory, velocity, and error plots based on the selected marker.
- Functionality:
- Retrieves the selected marker's name from
dcc.Store
. - Generates updated plots for the selected marker using the data stored in the
MoCapData
model.
- Retrieves the selected marker's name from
- Purpose: Updates various components in the UI with the name of the currently selected marker.
- Functionality:
- Monitors changes in the selected marker stored in
dcc.Store
. - Updates elements like trajectory labels, error plot labels, etc., with the current marker name.
- Monitors changes in the selected marker stored in
dcc.Store
:- Used to store the name of the currently selected marker.
- Placed outside the visible layout components, acting as a silent data holder.
- Enables efficient data management and inter-component communication.
- Save Button:
- Located in the Info Section.
- Allows users to save a comprehensive report of the current analysis as an HTML file.
- The report includes RMSE and absolute error data, plots, and other relevant information.
- Graphs and Buttons:
- Users can interact with various elements like scatter plots, marker buttons, etc.
- These interactions trigger callbacks that update the app's content dynamically.
To run the app:
- Ensure all dependencies are installed.
- Navigate to the app directory and run
python app.py
.