Skip to content

Latest commit

 

History

History
549 lines (282 loc) · 37 KB

File metadata and controls

549 lines (282 loc) · 37 KB

CHANGELOG

v0.1.0 (2026-03-23)

Bug Fixes

  • fix: Correct parameter name from 'methods' to 'metrics' in StatisticalMoment initialization (7ab1722)

Features

  • feat: Add new analytical primitives for synchronization, kinetic energy, rarity, and statistical moments. (8adbdf1)

  • feat: add @property to set Smoothness parameters (575a9cb)

  • feat: add Equilibrium class with elliptical balance evaluation and interactive demo

  • Implemented Equilibrium class to evaluate balance using an ellipse aligned with the feet line, supporting margin and Y-axis weighting.
  • Added full NumPy-style docstrings with detailed type annotations.
  • Created interactive matplotlib demo (demo_equilibrium.py) to visualize equilibrium in real-time by moving the mouse cursor.
  • The demo shows:
    • Feet positions as reference points.
    • Dynamic ellipse ROI, rotated according to foot alignment.
    • Barycenter position updated interactively.
    • Equilibrium value displayed and ellipse colored (green inside, red outside). (a14d04e)
  • feat(smoothness): added the functionality for computing smoothness and also a test example (5d9b294)

  • feat(sync): add synchronization module and live demo using MediaPipe (a1f55f3)

Refactoring

  • refactor: rename BaseLowLevelFeature to BaseFeature, update its usage, and standardize compute method parameter names. (b6d4d00)

  • refactor: Remove old test and benchmark data, introduce new benchmark scripts and results, and update module imports and examples. (b6f0c96)

  • refactor: extract smoothness calculation utilities to math_utils and signal_processing modules (6d46548)

  • refactor: extract utility functions from sync.py to reusable utils modules (5253406)

Unknown

  • Merge pull request #82 from InfoMusCP/dev

Dev (147eeeb)

  • delete: md version of notebooks (f3d0828)

  • bump version (503a982)

  • Merge branch 'examples' into dev (fa8a875)

  • add: WIP examples and feat: release pipeline (e3d8d4a)

  • add: educational md (5903a73)

  • Merge pull request #81 from InfoMusCP/dev

Dev (08ec98a)

  • Merge branch 'main' into dev (85b8fc6)

  • Update warning note in README.md (5727bf8)

  • Update README with refactoring notice

Added a note about ongoing refactoring and potential API changes. (bb64466)

  • Add reference to additional smoothness research (21b3dc0)

  • Update reference for movement smoothness analysis (d337051)

  • Add: mike for documentation versioning (d4e27fe)

  • add: missing references and links in conceptual documentation (ecabc16)

  • improved documentation (56a279d)

  • add: python docstrings and updated markdown documentation (a0fd2b5)

  • Removed absolute path (3c74802)

  • Aligned Compute_Sparc to article Balasubramanian, S., Melendez-Calderon, A., Roby-Brami, A., & Burdet, E. (2015). On the analysis of movement smoothness. Journal of NeuroEngineering and Rehabilitation, 12(1), 1-11. Add parameters in compute_sparc (286e9bc)

  • Add benchmarks for equilibrium and smootness Add KinectLoaderV2 (Kinect Log in EyesWeb Standard) (71d7ff8)

  • add todo (e44e904)

  • remove index (763744c)

  • synchronization benchmark (c90a2a7)

  • update benchmarks (23d9fdc)

  • add feature benchmarks (997b1c6)

  • rarity test (69c5e89)

  • add example notebooks (1ae3a55)

  • rarity test (6c3c80f)

  • Merge remote-tracking branch 'origin/refactor-sliding-window' into refactor-sliding-window (aba5108)

  • refactoring (8529131)

  • Rarity test (e3fae2e)

  • refactoring (0f05078)

  • bug fix (d785409)

  • removed a left print (e92d7d4)

  • bug fixed and changed deps due to removal of trapz from numpy>=2.4.0 (21a8066)

  • bug fix pt.2 (7b1fb82)

  • bug fix (dc82e1c)

  • SlidingWindow now has generic signals instead of joints refactored other classes to align with current design (1d92adf)

  • Merge branch 'main' into dev-impulsivity (cb4b9ff)

  • Merge pull request #75 from Foysal440/main

Add files via upload (5085a6e)

  • Add files via upload (d66c02b)

  • Update license badge to MIT (fedd375)

  • Add files via upload (4c0d928)

  • Update license badge in README.md (43549f3)

  • Merge pull request #76 from InfoMusCP/review_doc

fix doc (ab71f59)

  • fix doc (95cdad3)

  • fix missing dependency (aa2d89a)

  • fix missing dependency (795c747)

  • change doc theme to readthedocs (dd298ef)

  • fix lightness calculation to ensure sliding window length is an integer and prevent division by zero (32c4b3b)

  • refactor Lightness class to make sliding window length configurable (f44971e)

  • Merge pull request #74 from InfoMusCP/docs

rename index.md files to improve clarity and organization in documentation (ab0d43a)

  • rename index.md files to improve clarity and organization in documentation (bb7b073)

  • Merge pull request #73 from Foysal440/stat

added statistical_moment (4d2c5bb)

  • added stat_moment (3e58248)

  • remove print from synchronization.py (acc0c1d)

  • fix accessing rarity value in lightness (56880f2)

  • minor fixes to kinetic_energy.py and lightness.py (f57d665)

  • Add Kinetic Energy and Lightness (1360f3d)

  • remove print in rarity.py (ec36754)

  • update Rarity class to return a dictionary instead of a float (0cfbec4)

  • fix return values in clusterability.py for consistency (6c903fa)

  • add rarity.py (79e1007)

  • Merge branch 'Foysal440-Clusterability' (eff0ffc)

  • improve readability and documentation (56ade52)

  • improve readability and documentation (c1f128e)

  • Added clusterability.py (5632864)

  • bump to v0.0.1a5 (b7c8bf0)

  • Merge pull request #68 from InfoMusCP/feature/fixes

Feature/fixes (5c706d3)

  • Merge branch 'main' into feature/fixes

Conflicts:

docs/user_guide/theoretical_framework/analysis_primitives/synchronization.md

docs/user_guide/theoretical_framework/low_level/contraction_expansion.md

docs/user_guide/theoretical_framework/low_level/smoothness.md (72f2ea5)

  • fix broken links and review docs information (ae8cab1)

  • Extend smoothness functionality as raised in #66 (0f87455)

  • Clarify velocity input requirement for smoothness module and improve jerk computation (ee37a2d)

  • Enhance type validation in SlidingWindow and clarify comments in PointsDensity (938dfd3)

  • Refactor Synchronization and SlidingWindow classes for improved functionality and clarity; update dependencies in pyproject.toml (7453e1d)

  • contraction expansion (42f0e6e)

  • developed and tested geometric symmetry (9c7c431)

  • Refactor DirectionChange and Suddenness classes to return dictionaries with calculated values (a7e956b)

  • Add DirectionChange and Suddenness classes for impulsivity evaluation (84d5e7a)

  • started testing (4cc67ca)

  • Merge branch 'main' into test-gabriele (10bad5e)

  • Simplify test fixtures using factory pattern (487451c)

  • Apply ThreadSafeHistoryBuffer and validation utilities to bilateral_symmetry (d0b97aa)

  • Apply ThreadSafeHistoryBuffer and utilities to synchronization module (a8f4878)

  • Standardize NaN usage to np.nan for consistency (c1b585f)

  • Add helper methods to reduce duplication in signal generators (4d8638b)

  • Refactor baseline validation to eliminate duplication in contraction_expansion (4d1e62b)

  • Extract phase synchronization computation to reusable utility (bf63a13)

  • Add validation utilities for filter params and window size (5878754)

  • Add ThreadSafeHistoryBuffer for centralized thread-safe operations (9d062b1)

  • Add option to use real data files in CLI tool (521391c)

  • Fix scipy version constraint in pyproject.toml (efc0b61)

  • Update README and pyproject.toml for dependency specifications (272a799)

  • Add missing dependencies for scikit-learn, pytest, opencv, and matplotlib (bdf16ab)

  • Refactor testing framework with pytest fixtures and modular architecture (8d960a7)

  • Remove sys.path manipulation that caused import issues for Nicola (10df0a1)

  • Update documentation (0aed2ff)

  • Add tests README with usage guide and examples (b9c6770)

  • Add feature testing CLI tool with timestamped output (3dbb749)

  • Remove TouchDesigner examples (570724b)

  • Flatten examples directory structure (3f1611b)

  • Add signal generation utilities for feature testing (e6ee8e2)

  • Move Smoothness to low_level subpackage and relocate LICENSE to .github folder (6ecf06d)

  • Fix Smoothness examples and correct SPARC interpretation in documentation (f03e8fd)

  • Correct SPARC value interpretation in documentation (more negative = less smooth) (ada3ede)

  • Add SPARC reference documentation and remove redundant validator comments (da9b253)

  • Add thread lock, filter_params support, and centralized phase computation utilities to BilateralSymmetryAnalyzer (efbca98)

  • Refactor synchronization module: move sync.py to analysis_primitives, use centralized validators, update import paths, and remove redundant comments (6f501e3)

  • Improve SPARC computation with normalized frequency differences and add rate_hz validation (ea29b2a)

  • Add validate_filter_params_tuple function to centralize filter parameter validation (1809010)

  • Refactor bilateral_symmetry to use centralized phase computation utilities (2c6fef7)

  • Refactor modules to use centralized validators (d1ea34c)

  • Add validation utilities and extract filter validation (e700afc)

  • Fix typos and broken links in documentation (correct GitHub URL, fix variable names, and grammar corrections) (a1ccb04)

  • Add thread lock to Synchronization class to prevent race conditions in plv_history access (fixes #42) (bf9dd0b)

  • Fix - remove test file. (a990ad4)

  • Address issue #39 - tested and made sure all feats have a call method. (9621b35)

  • Standardize all feature functions to return dictionaries (a73c7c0)

  • Bump version to v0.0.1a4 (1c40cd5)

  • Bump version to v0.0.1a3 (aa20d6b)

  • bump version to v0.0.1a2 (32c3554)

  • Merge pull request #48 from InfoMusCP/feature/sliding_window

resize sliding_window.py at runtime and add repr method (9b2ffc1)

  • resize sliding_window.py at runtime and add repr method (5c4f2e5)

  • Update README.md (55a591f)

  • Merge pull request #47 from InfoMusCP/documentation

improve docs structure (31fbf33)

  • links docstrings to user guide (5c7dd23)

  • improve framework explanation (c2c885b)

  • improve docs structure (c37e9d5)

  • Merge pull request #30 from InfoMusCP/documentation

Setup Mkdocs and Getting Started page (293e9f0)

  • add references to tables (8eb36a8)

  • move getting_started.md and integrations.md to specific section (e2a52a5)

  • merge main into current branch (9aeb63e)

  • Merge pull request #46 from InfoMusCP/nicola-corbellini-patch-1

Create CONTRIBUTING.md (2902883)

  • Create CONTRIBUTING.md (2e3bfbd)

  • minor fixes to readme (ac2c083)

  • Merge pull request #45 from InfoMusCP/feature/readme

update README.md (1e5e30d)

  • update README.md (35202bf)

  • Merge pull request #44 from InfoMusCP/feature/readme

update README.md and add CITATION.cff (9e50624)

  • update README.md and add CITATION.cff (bc62f9b)

  • improve documentation (b11d79f)

  • Merge remote-tracking branch 'origin/main' into documentation (91eacb0)

  • Update: Make z-coordinate optional in Equilibrium by accepting both 2D and 3D inputs (7bd8e5e)

  • add user guide, modules documentation and getting started (d68cc93)

  • Merge branch 'main' into documentation (1ed5914)

  • Fix: Add del method to SlidingWindow for explicit memory cleanup (9a35ffc)

  • Fix: Return NaN instead of None for errors and remove print statements from Smoothness (d452bdb)

  • Fix: Add column count validation to Synchronization and return NaN for insufficient data (67d324a)

  • Fix: Add array shape validation to SPARC function to prevent crashes (29b1d34)

  • Fix: Update Synchronization docstring to document validation requirements and exceptions (008b12d)

  • Fix: Add comprehensive input validation to Synchronization class constructor (c709114)

  • Fix: Add validation for rate_hz and use_filter parameters in Smoothness class (98a96c1)

  • Fix: Replace busy wait loop with time.sleep() in TSVReader to reduce CPU usage (3717508)

  • Fix: Add input validation to SlidingWindow constructor to prevent invalid parameters (2e299f0)

  • Fix: Return NaN instead of 0.0 on errors in bilateral symmetry analysis (ac0150d)

  • Fix: Return NaN instead of infinity for zero baseline in contraction expansion analysis (83b9504)

  • Fix: Add parameter validation to bandpass filter to prevent invalid frequencies (06ec347)

  • Fix: Return NaN for constant signals in SPARC function and validate sampling rate (f1e8e54)

  • Fix: Handle division by zero in Equilibrium class for degenerate ellipse cases (2c58f4b)

  • Fix: Add thread-safe locking to SlidingWindow methods and return copies from to_array() to prevent race conditions (c5422b9)

  • Merge remote-tracking branch 'origin/main' into documentation (7551edf)

  • Moved gen_pages.py to docs/scripts (c4c73eb)

  • Add docstrings and translate Italian comments to English in TSV reader (b84fd78)

  • Add docstrings to signal processing functions (37463d6)

  • Add docstrings to math utility functions (844aadf)

  • Add docstrings to contraction expansion module (957c945)

  • Add docstrings to smoothness module (89d12cb)

  • Add docstrings to sync module (783154a)

  • Merge pull request #29 from InfoMusCP/reorganize-examples-structure

Reorganize examples folder structure with test_scripts and touchdesigner subfolders (4e62409)

  • Reorganize examples folder structure with test_scripts and touchdesigner subfolders (0aa95ae)

  • setup mkdocs.yml and getting_started.md (e50caeb)

  • update folder name (ddeb0ab)

  • Merge pull request #26 from InfoMusCP/Equilibrium

feat: add Equilibrium class with elliptical balance evaluation and in… (ec28e3d)

  • Merge pull request #25 from InfoMusCP/feature/fix_action

fix action (aad66df)

setup github pages (1907aa2)

  • setup github pages (fcb0758)

  • Merge pull request #23 from InfoMusCP/feature/deploy_pypi

setup pypi deploy (c0c6ee5)

  • Merge branch 'main' into feature/deploy_pypi (7539fd1)

  • Update pyproject.toml (ab52cc1)

  • Merge pull request #22 from InfoMusCP/update-repo-name-to-pyeyesweb

update repository name from infomove to pyeyesweb (2c3a7b4)

  • update repository name from infomove to pyeyesweb (8a4ef86)

  • setup pypi deploy (de1781c)

  • Merge pull request #21 from InfoMusCP/feature/license

add license to pyproject.toml (975b67a)

  • add license to pyproject.toml (bcf8b6f)

  • Create LICENSE (4b5d49a)

  • Merge pull request #20 from InfoMusCP/feature/sliding_window_doc

add SlidingWindow docstrings (4ecf6fe)

  • add SlidingWindow docstrings (119f45d)

  • Merge pull request #19 from InfoMusCP/feature/pyproject

update pyproject.toml (d97cbef)

  • update pyproject.toml (fdbfbd5)

  • Update README.md to reflect change of repo name (4df54c5)

  • remove unnecessary parts (6306d38)

  • Merge pull request #17 from InfoMusCP/docs/modular-readme

initial documentation structure (a833309)

  • initial documentation structure (d2afe48)

  • add comprehensive biomechanical test suite for bilateral symmetry analysis (bac585e)

  • implement bilateral symmetry analysis with research-based methods (9f5bcc1)

  • add example demonstrating contraction_expansion module usage (4454e06)

  • implement contraction_expansion module with numba-optimized geometric analysis (cbfb4cc)

  • add numba dependency to pyproject.toml (d77a92a)

  • Merge branch 'fix/core-sync' (58da844)

  • Merge pull request #16 from InfoMusCP/fix/core-sync

optimize phase computation with vectorized operations and remove redu… (e4950bf)

Create TD demo installation script (97edd16)

  • Create setup.bat (1366730)

  • Merge pull request #9 from InfoMusCP/develop/td_synch_demo

Add TD demo draft (861b49f)

  • remove Lib folder (1133775)

  • add Lib to .gitignore and remove action (016bffa)

  • fix actions (44fd9d2)

  • fix build.yml action (dc10283)

  • fix build.yml action (0960b5b)

  • add pyproject.toml for TD demo and installed Lib (a8c9504)

  • add pyproject.toml for TD demo (fb6a8bd)

  • This TSV reader is currently designed starting from exported files from Qualisys Motion Capture. Future versions will support reading generic TSV files with different headers (bd726a3)

  • Merge pull request #8 from InfoMusCP/develop/sliding_window

Implement SlidingWindow (6de8872)

  • add type checking and empty init (40df64a)

  • add sliding_window.py and refactor features (4c30537)