Video and audio similarity arrangement toolkit (set-cover and adaptive LTW)
Project description
Multiarrangement - Video, Image, and Audio Similarity Arrangement Toolkit
Multiarrangement is an open-source toolkit for collecting human similarity judgments by arranging video, image, or audio stimuli on a 2D canvas. The package supports fixed-batch set-cover experiments and adaptive Lift-the-Weakest (LTW) experiments, then fuses trial-level layouts into representational dissimilarity matrices (RDMs) for downstream analysis.
Distances are computed between stimulus token centers. In the hosted web implementation, submitted center coordinates are interpreted relative to the arena center and scaled by the arena radius before RDM estimation, so equivalent layouts have the same geometry across screen sizes while exact raw coordinates remain available for trial reconstruction.
Repository layout
multiarrangement/andcoverlib/: desktop package source, demos, bundled media, and covering-design utilitiesserver/: FastAPI backend for hosted studiesweb/: Next.js frontend for setup, participation, results, and admin flowstests/andserver/tests/: regression tests for the package and hosted stackmultiarrangement/examples/: runnable example scripts
Quick demo
Bundled package assets include:
- videos:
multiarrangement/15videos/* - images:
multiarrangement/15images/* - audio:
multiarrangement/15audios/*,multiarrangement/sample_audio/* - instruction clips:
multiarrangement/demovids/* - cached covering designs:
multiarrangement/ljcr_cache/*.txt
Install
From the repository root:
python -m pip install .
Requirements:
- Python 3.8 or newer
- NumPy 1.20+
- pandas 1.3+
- pygame 2.0+
- opencv-python 4.5+
- matplotlib 3.4+
- openpyxl 3.0+
Python API quickstart
Set-cover demo with bundled media:
import multiarrangement as ma
ma.demo()
Adaptive LTW demo with bundled media:
import multiarrangement as ma
ma.demo_adaptive()
Minimal set-cover experiment:
import multiarrangement as ma
input_dir = "path/to/input"
output_dir = "path/to/output"
batches = ma.create_batches(ma.auto_detect_stimuli(input_dir), 8)
results = ma.multiarrangement(input_dir, batches, output_dir)
results.vis()
results.savefig(f"{output_dir}/rdm_setcover.png", title="Set-cover RDM")
Minimal adaptive LTW experiment:
import multiarrangement as ma
input_dir = "path/to/input"
output_dir = "path/to/output"
results = ma.multiarrangement_adaptive(input_dir, output_dir)
results.vis()
results.savefig(f"{output_dir}/rdm_adaptive.png", title="Adaptive LTW RDM")
Example scripts are included under multiarrangement/examples/.
Outputs
Typical outputs include:
- fused RDMs
- per-trial logs
- schedule metadata
- evidence matrices for adaptive runs
- JSON, CSV, XLSX, and NumPy exports, depending on the workflow
Citation and support
Please cite the software using CITATION.cff. Archival metadata for Zenodo is included in .zenodo.json.
Source code, releases, documentation updates, and issue tracking are available at:
https://github.com/UYildiz12/Multiarrangement-for-videos
License
MIT License. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file multiarrangement-0.3.0.tar.gz.
File metadata
- Download URL: multiarrangement-0.3.0.tar.gz
- Upload date:
- Size: 44.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99fb20fb8726572750e87da33431b5776c4fa26bdea347b88ec1445c666a3629
|
|
| MD5 |
0d64c79d9d804c813f6495d3667aef86
|
|
| BLAKE2b-256 |
7e8755f0331cf5b6b9cdebb3d7774d7c0d608c00fedfad3ce17b27363a7d0cff
|
File details
Details for the file multiarrangement-0.3.0-py3-none-any.whl.
File metadata
- Download URL: multiarrangement-0.3.0-py3-none-any.whl
- Upload date:
- Size: 44.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
104f38f28c52f2342b669c8a4732160fcd78d6bc279e59882b882be30afffd61
|
|
| MD5 |
3760a00d559c046867393973eb6a9f57
|
|
| BLAKE2b-256 |
58f4b156512ed747bcac34016113fd6dc8fb0d7177d2f1f2a8581fd05e1249de
|