Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
fa27b32
A user-friendly GUI (beta version) (#149)
AYLARDJ Dec 6, 2024
055d8a4
A user-friendly GUI (beta version) (#149)
AYLARDJ Dec 6, 2024
8267bec
Merge branch 'Gui' of https://github.com/perfanalytics/pose2sim into Gui
davidpagnon Dec 6, 2024
6ba83c8
Beta version of GUI (#179)
AYLARDJ May 5, 2025
fc7a1a8
Merge branch 'main' into Gui
davidpagnon May 9, 2025
4874b6b
solved all merge conflicts
davidpagnon May 9, 2025
3fcf257
ready to test now
davidpagnon May 9, 2025
9d981c4
first edits (to the wrong file?)
davidpagnon May 9, 2025
3809b93
intro animation, displays center of screen (#183)
hunminkim98 May 9, 2025
4641270
Few edits (see pull request #180)
davidpagnon May 11, 2025
5997275
Merge branch 'Gui' of https://github.com/perfanalytics/Pose2Sim into Gui
davidpagnon May 11, 2025
9773d49
small edits
davidpagnon May 11, 2025
1eb1dd1
pose2sim_installer.py: First attempt at making a one-click install
davidpagnon May 12, 2025
32fec86
Added a simple installation GUI
davidpagnon May 12, 2025
a7ae106
Calibration:
davidpagnon May 12, 2025
7f19bfd
little bug fix in calib
davidpagnon May 13, 2025
7ef7dfe
Calibration:
davidpagnon May 15, 2025
fef4ce2
Worsk if no left side to be swapped with (single hand, for exampe)
davidpagnon May 20, 2025
cf80613
Auto mode for face blurring and some improvements for the script. (#190)
hunminkim98 Jun 27, 2025
d726604
Add conda environment configuration for Pose2Sim
davidpagnon Sep 18, 2025
eca0229
GUI: conflicts resolved, ready for review (#198)
AYLARDJ Oct 6, 2025
1bcde06
Merge branch 'main' into Gui
davidpagnon Oct 20, 2025
ded06f2
remove output calibration files
davidpagnon Oct 22, 2025
7510f7b
removed deep-sort-realtime dependency
davidpagnon Oct 22, 2025
d714af8
Added logo to intro, dark/light switch, working translation, faster l…
davidpagnon Oct 24, 2025
b9c14cb
Merge branch 'main' into Gui
davidpagnon Oct 24, 2025
354c635
Added logo in sidebar
davidpagnon Oct 24, 2025
282e25e
Merge branch 'Gui' of https://github.com/perfanalytics/Pose2Sim into …
davidpagnon Oct 24, 2025
6cee938
Missing import
davidpagnon Oct 25, 2025
33149f3
Add trc_rotate and trc_scale CLI scripts and functions
davidpagnon Nov 2, 2025
8e65272
More robust selection of Qualisys video cameras
davidpagnon Nov 6, 2025
0c61fc4
custom pose between double quote for easier handling by GUI
davidpagnon Nov 21, 2025
88bc833
changed head segment measurement to neck to nose *1.5
davidpagnon Nov 21, 2025
e85a747
fixed bug on empty frame with Mac CoreMLExecutionProvider, added_setu…
davidpagnon Nov 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,449 changes: 2,449 additions & 0 deletions Content/website/index.html

Large diffs are not rendered by default.

164 changes: 164 additions & 0 deletions Content/website/script.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
// Global variables
let currentStep = 0;
const totalSteps = 16; // FIXED: Changed from 11 to 16 (steps 0-15)
let currentLanguage = 'en';
let viewAllMode = false;

// Initialize on page load
document.addEventListener('DOMContentLoaded', function() {
initializeNavigation();
updateNavButtons();
updateActiveNavItem();
});

// Navigation functions
function goToStep(stepNumber) {
if (viewAllMode) {
toggleViewAll(); // Exit view all mode
}

currentStep = stepNumber;
showStep(currentStep);
updateNavButtons();
updateActiveNavItem();
scrollToTop();
}

function nextStep() {
if (viewAllMode) {
toggleViewAll();
return;
}

if (currentStep < totalSteps - 1) {
currentStep++;
showStep(currentStep);
updateNavButtons();
updateActiveNavItem();
scrollToTop();
}
}

function previousStep() {
if (viewAllMode) {
toggleViewAll();
return;
}

if (currentStep > 0) {
currentStep--;
showStep(currentStep);
updateNavButtons();
updateActiveNavItem();
scrollToTop();
}
}

function showStep(stepNumber) {
// Hide all steps
document.querySelectorAll('.step').forEach(step => {
step.classList.remove('active');
});

// Show current step
const currentStepElement = document.getElementById(`step-${stepNumber}`);
if (currentStepElement) {
currentStepElement.classList.add('active');
}
}

function updateNavButtons() {
const prevBtn = document.getElementById('prevBtn');
const nextBtn = document.getElementById('nextBtn');

if (viewAllMode) {
prevBtn.style.display = 'none';
nextBtn.querySelector('span').textContent = 'Exit View All';
return;
}

// Show/hide previous button
prevBtn.style.display = currentStep === 0 ? 'none' : 'inline-flex';

// Update next button text
if (currentStep === totalSteps - 1) {
nextBtn.querySelector('span').textContent = 'Finish ✓';
} else {
nextBtn.querySelector('span').textContent = 'Next →';
}
}

function updateActiveNavItem() {
document.querySelectorAll('.nav-item').forEach(item => {
item.classList.remove('active');
});

const activeItem = document.querySelector(`a[href="#step-${currentStep}"]`);
if (activeItem) {
activeItem.classList.add('active');
}
}

function toggleViewAll() {
viewAllMode = !viewAllMode;

const steps = document.querySelectorAll('.step');
const viewAllBtn = document.querySelector('.view-all-btn');

if (viewAllMode) {
// Show all steps
steps.forEach(step => {
step.classList.add('view-all-mode');
step.classList.add('active');
});

viewAllBtn.querySelector('span').textContent = 'Back to Step View';

document.querySelector('.nav-buttons').style.display = 'flex';
} else {
// Return to single step view
steps.forEach(step => {
step.classList.remove('view-all-mode');
step.classList.remove('active');
});

showStep(currentStep);

viewAllBtn.querySelector('span').textContent = 'View All Steps';
}

updateNavButtons();
scrollToTop();
}

function initializeNavigation() {
// Add click handlers to nav items
document.querySelectorAll('.nav-item').forEach((item, index) => {
item.addEventListener('click', (e) => {
e.preventDefault();
goToStep(index);
});
});
}

function scrollToTop() {
window.scrollTo({
top: 0,
behavior: 'smooth'
});
}

// Keyboard navigation
document.addEventListener('keydown', function(e) {
if (viewAllMode) return;

if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {
if (currentStep > 0) {
previousStep();
}
} else if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {
if (currentStep < totalSteps - 1) {
nextStep();
}
}
});
Loading
Loading