initial commit

This commit is contained in:
max/sooulix 2025-09-10 15:48:29 +02:00
commit c40f1e89da
5 changed files with 150 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
**.pyc
.*.swo
.*.swp

0
__init__.py Normal file
View File

88
gant_project.py Normal file
View File

@ -0,0 +1,88 @@
work_packages = [{
'title': 'Inclusive Gesture Recognition Models (4 PM)',
'duration':9,
'start': 0,
'method': """
Develop an initial gesture recognition baseline using existing datasets (e.g.,
$Q, public gesture datasets with diverse motion pattern). Apply unsupervised ML
techniques like Dynamic Time Warping (DTW) for feature extraction. Build on
these techniques for pretraing supervised ML datasets while identifying biases.
Check disparity in model accuracy across participant groups. Assure user studies
will be conducted in compliance with GDPR and relevant ethics approvals.
""",
}, {
'title': 'Motor Variability in Interaction',
'duration': 7,
'start': 6,
'method': """
Conduct at least 3 mixed-method user studies with ~30 participants across three
groups: (1) ageing adults (n10), (2) participants with motor
impairments/disabilities (n10), and (3) expert movers/performers (n10). Both
quantitative kinematic data (motion capture, wearable sensors) and qualitative
data (interviews, observations) will be collected. Motor variability will be
modelled using clustering algorithms (e.g., k-means, Gaussian mixture models)
and nonlinear statistical analyses to capture individual patterns. Build
statistical models to capture variability. The prototype developed in WP1 will
serve as the baseline architecture for the user studies in WP2. Fuse statistical
insights with supervised ML to allow the system to adapt rather than enforce
rigid categories.
""",
} , {
'title': 'Inclusive, Embodied, and Ecofeminist System Refinement',
'duration': 5,
'start': 14,
'method': """
"""
} , {
'title': 'Dissemination and Public Engagement',
'start': 10,
'duration': 13,
'method': """
"""
}]
deliverables = [{
'title': 'Framework specification',
'month': 4,
'wp': 1
}, {
'title': 'Baseline prototype',
'month': 8,
'wp': 1
}, {
'title': 'Annotated Dataset',
'month': 12,
'wp': 2,
}, {
'title': 'Technical Report on Motor Variability',
'month': 13,
'wp': 2,
}, {
'title': 'Updated prototype with integrated supervised ML and explainability mechanisms',
'month': 15,
'wp': 3,
}, {
'title': 'Design and evaluation framework for inclusive, interpretable ML in movement systems',
'month': 18,
'wp': 3,
}]
milestones = [{
'title': 'Baseline Gesture Model and Bias Evaluation Metrics Defined',
'month': 8,
'wp': 1,
}, {
'title': 'Completion of User Studies and Initial Statistical Variability Models',
'month': 12,
'wp': 2
}, {
'title': 'Completion of Transparent Model Integration and Ethical Evaluation Setup',
'month': 13,
'wp': 3
}]

44
main.py Normal file
View File

@ -0,0 +1,44 @@
import sys
import pandas as pd
import datetime
import plotly.express as px
from dateutil import relativedelta
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import matplotlib.patches as mpatches
import mplcursors
from matplotlib import rcParams
from matplotlib.widgets import CheckButtons
from .settings import (
TITLE, TITLE_SIZE, TITLE_FONT_WEIGHT,
FONT_FAMILY, FONT_SANS_SERIF, FONT_COLOR,
LABEL_SIZE, DAY_FONT_SIZE, MONTH_FONT_SIZE, MONTH_FONT_WEIGHT,
X_LABEL, Y_LABEL, BAR_COLOR, TEAM_BAR_COLORS, DATE_FORMAT
)
from .gant_project import work_packages, deliverables, milestones
# style confs
rcParams['font.family'] = FONT_FAMILY
rcParams['font.sans-serif'] = FONT_SANS_SERIF
rcParams['axes.titlesize'] = TITLE_SIZE
rcParams['axes.labelsize'] = LABEL_SIZE
start = datetime.datetime.now()
data_frame = pd.DataFrame(reversed([
{
'Work Package': f"WP {n+1}",
'Label': f"WP {n+1}: {elt['title']}",
'start_date': start + relativedelta.relativedelta(months=elt['start']),
'end_date': start + \
relativedelta.relativedelta(months=elt['start']) + \
relativedelta.relativedelta(months=elt['duration']),
}
for n, elt in enumerate(work_packages)
]))
fig = px.timeline(data_frame, x_start="start_date", x_end="end_date",
y="Work Package", color="Label")
fig.update_yaxes(autorange="reversed") # otherwise tasks are listed from the bottom up
fig.show()

15
settings.py Normal file
View File

@ -0,0 +1,15 @@
TITLE=''
TITLE_SIZE='12'
TITLE_FONT_WEIGHT=''
FONT_FAMILY=''
FONT_SANS_SERIF=''
FONT_COLOR='#FFFFFF'
LABEL_SIZE='12'
DAY_FONT_SIZE='12'
MONTH_FONT_SIZE=''
MONTH_FONT_WEIGHT=''
X_LABEL=''
Y_LABEL=''
BAR_COLOR='#FFFFFF'
TEAM_BAR_COLORS='#FFFFFF'
DATE_FORMAT=''