Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
4f1f0a0
[feature] update mesh visualizer using pyvista, and convert from glob…
sibocw Nov 24, 2025
5d54f99
[feature] finish script to visualize 6d mesh states in pyvista
sibocw Nov 27, 2025
92c2009
[feature] rerun pose nmf postprocessing with bodyseg states
sibocw Nov 27, 2025
3ff696c
[fix] fix handling of failed simulations
sibocw Nov 28, 2025
40acfca
[run] retrain feature extractor with low LR and with fewer variants p…
sibocw Nov 29, 2025
76fb3f0
[feature] save predicted probabilities in bodyseg pipeline, also remo…
sibocw Nov 30, 2025
10a16c7
[feature] add mesh state in atomic batch extraction pipeline
sibocw Nov 30, 2025
9e528df
[run] update paths for 20251127a training (based on pretrained featur…
sibocw Nov 30, 2025
ab25d33
[wip] start pose6d model implementation
sibocw Nov 30, 2025
514975a
[refactor] minor enhancements for keypoints3d and bodyseg models
sibocw Nov 30, 2025
eb12e74
Merge branch 'pose6d' of github.com:NeLy-EPFL/poseforge into pose6d
sibocw Nov 30, 2025
3581d28
[fix] add missing class labels metadata
sibocw Nov 30, 2025
c2a962b
[refactor] update feature extractor calls to use forward_with_interme…
sibocw Nov 30, 2025
9b7587c
[refactor] rename scripts for clarity + other refactors
sibocw Nov 30, 2025
6cd42fb
[feature] initial training attempt on workstation
sibocw Nov 30, 2025
128e35f
[fix] temporary fix for mesh state coords system bug
sibocw Nov 30, 2025
f0d3f29
[run] run atomic batch extraction with multiple torque jobs
sibocw Dec 1, 2025
f888884
[feature/fix] use hybrid attention-gated/global features, account for…
sibocw Dec 1, 2025
a9f4359
[feature] update training script and configuration for 6D mesh pose m…
sibocw Dec 1, 2025
40966ee
add logging
sibocw Dec 1, 2025
f337127
[fix] compute relative 6dpose in postprocessing
sibocw Dec 1, 2025
25ded3d
Merge branch 'pose6d' of github.com:NeLy-EPFL/poseforge into pose6d
sibocw Dec 1, 2025
e0f5350
[fix] rely on pose6d extraction from nmf postprocessing instead of at…
sibocw Dec 1, 2025
c34370f
[run] fix paths in batch script
sibocw Dec 2, 2025
11a9f14
[feature] add script to replay simulated 6d pose sequence
sibocw Dec 8, 2025
67723b7
[housekeeping] update dependencies, gitignore, etc
sibocw Dec 8, 2025
ff6db87
Merge branch 'main' into pose6d
sibocw Dec 8, 2025
ad1f686
[fix] remove buggy auto-close at the end in live mode
sibocw Dec 8, 2025
104f571
[refactor] fix style/docs/typehints for nmf postprocessing module
sibocw Dec 10, 2025
c21961c
[feature/fix] apply alignment rotation to mesh 6d states
sibocw Dec 10, 2025
2f8c931
move atomic batches preextraction from contrastive pretraining module…
sibocw Dec 11, 2025
576d183
fix temp path; undo temporary test script
sibocw Dec 11, 2025
5da5209
[refactor] refactor scitas scripts - consolidate submission scripts a…
sibocw Dec 11, 2025
7d5ff4f
[run] rerun pose6d training with correctly rotated labels
sibocw Dec 11, 2025
b25403f
[feature] add legends metadata to atomic batches files
sibocw Dec 13, 2025
a73ca9b
[fix] fix hard-attached metadata
sibocw Dec 14, 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
133 changes: 24 additions & 109 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Created by https://www.toptal.com/developers/gitignore/api/python,linux,macos,windows,jupyternotebooks,visualstudiocode,vim,git,pycharm+all
# Edit at https://www.toptal.com/developers/gitignore?templates=python,linux,macos,windows,jupyternotebooks,visualstudiocode,vim,git,pycharm+all
bulk_data
production_models/**
!production_models/**/
!production_models/**/README.md
logs/
wandb/
*.mp4
*.jpg
*.pth
*.png
temp/
batch_scripts/
outputs/
notebooks/

# I want all JetBrains-specific file to be ignored
# (gitignore.io defaults allow style and run settings to be included)
.idea/

# Created by https://www.toptal.com/developers/gitignore/api/git,vim,linux,macos,python,windows,jupyternotebooks,visualstudiocode
# Edit at https://www.toptal.com/developers/gitignore?templates=git,vim,linux,macos,python,windows,jupyternotebooks,visualstudiocode

### Git ###
# Created by git for backups. To disable backups in Git:
Expand Down Expand Up @@ -78,94 +97,6 @@ Temporary Items
# iCloud generated files
*.icloud

### PyCharm+all ###
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# AWS User-specific
.idea/**/aws.xml

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn. Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# SonarLint plugin
.idea/sonarlint/

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

### PyCharm+all Patch ###
# Ignore everything but code style settings and run configurations
# that are supposed to be shared within teams.

.idea/*

!.idea/codeStyles
!.idea/runConfigurations

### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
Expand Down Expand Up @@ -288,7 +219,7 @@ celerybeat.pid
# Environments
.env
.venv
# env/
env/
venv/
ENV/
env.bak/
Expand Down Expand Up @@ -357,7 +288,7 @@ tags

### VisualStudioCode ###
.vscode/*
# !.vscode/settings.json
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
Expand Down Expand Up @@ -400,20 +331,4 @@ $RECYCLE.BIN/
# Windows shortcuts
*.lnk

# End of https://www.toptal.com/developers/gitignore/api/python,linux,macos,windows,jupyternotebooks,visualstudiocode,vim,git,pycharm+all


bulk_data
production_models/**
!production_models/**/
!production_models/**/README.md
logs/
wandb/
*.mp4
*.jpg
*.pth
*.png
temp/
batch_scripts/
outputs/
notebooks/
# End of https://www.toptal.com/developers/gitignore/api/git,vim,linux,macos,python,windows,jupyternotebooks,visualstudiocode
84 changes: 82 additions & 2 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 5 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ readme = "README.md"
requires-python = ">=3.13,<3.14"
dependencies = [
"numpy>=2.0,<3",
"scipy>=1.16.1,<2",
"pandas>=2.3,<3",
"scipy>=1.16.2,<1.17.0",
"pandas>=2.3.3,<2.4.0",
"matplotlib>=3.10,<4",
"torch==2.9.*", # specific version required by torchvision and torchcodec!
"torchvision==0.24.*", # specific to torch 2.9
Expand Down Expand Up @@ -41,6 +41,9 @@ dependencies = [
"filelock>=3.20.0,<4",
"av<16", # imageio depends on pyav but no pyav 16.0.0 wheel is available for my hardware yet
"loguru==0.7.*",
# PEP561 stub packages for better static analysis
"pandas-stubs (>=2.3.3,<2.4.0)",
"scipy-stubs (>=1.16.2,<1.17.0)"
# The following should be installed manually (pip install -e .):
# flygym & dm_control
# parallel-video-io
Expand Down
66 changes: 66 additions & 0 deletions scripts_on_cluster/atomic_batch_extraction/compress_results.run
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#!/bin/bash -l

#SBATCH --job-name=compress_output
#SBATCH --nodes 1
#SBATCH --ntasks 1
#SBATCH --cpus-per-task 36
#SBATCH --mem 96GB
#SBATCH --time 1:00:00
#SBATCH --partition=standard
#SBATCH --qos=serial
#SBATCH --output=logs/compress_output.log

# -------------------------------------------------------------------
# CRASH CHECK: Ensure SLURM_CPUS_PER_TASK is set
# -------------------------------------------------------------------

# Get the requested number of CPUs from the Slurm environment
max_jobs=$SLURM_CPUS_PER_TASK

# Check if the variable is empty or null.
if [ -z "$max_jobs" ]; then
echo "ERROR: SLURM_CPUS_PER_TASK environment variable is not set." >&2
echo "This script must be submitted using 'sbatch' and requires the --cpus-per-task flag in the header." >&2
exit 1
fi

echo "Running up to $max_jobs concurrent tar jobs ($(date))."
echo "----------------------------------------------"

input_basedir="$HOME/poseforge/bulk_data/pose_estimation/atomic_batches/4variants"
output_basedir="$HOME/poseforge/bulk_data/pose_estimation/atomic_batches/4variants_tarballs"
mkdir -p $output_basedir

# Loop through all subdirectories
job_count=0
for dir_path in "$input_basedir"/*/; do
if [ -d "$dir_path" ]; then

dir_name=$(basename "$dir_path")
output_file="$output_basedir/${dir_name}.tar.gz"

# Launch the tar command in the background
# Note the -C flag to change directory to the parent
# *before* archiving. This keeps the archive clean.

tar -czf "$output_file" -C "$dir_path/.." "$dir_name" &

echo "Launched job for $dir_name (PID: $!)"
job_count=$((job_count + 1))

# When we hit the max number of concurrent jobs, we wait for *one*
# of the currently running background jobs to complete (wait -n).
if [ "$job_count" -ge "$max_jobs" ]; then
wait -n
job_count=$((job_count - 1))
echo "A background job finished. Resuming launch..."
fi
fi
done

# Wait for ALL remaining background jobs to finish
echo "----------------------------------------------"
echo "All jobs launched. Waiting for final completion..."
wait

echo "All parallel tar operations complete ($(date))."
Loading