Full-field 3-D displacement and strain from volumetric images (micro-CT, confocal, MRI, OCT).
Available in 7 languages
pyALDVC is the Python version of the MATLAB ALDVC code (Yang, Hazlett, Landauer, Franck, Exp. Mech. 2020) and the volumetric sibling of pyALDIC: a desktop application that turns a sequence of 3-D scans into displacement and strain fields.
Why pyALDVC
- Accurate where subset DVC breaks down. Local subsets are coupled to a global smoothness step, so steep gradients, boundaries and noisy scans stay sub-voxel accurate.
- Cracks and holes stay sharp. A subset that meets a boundary keeps only the material on its own side of it, and the smoothing never crosses it, so a displacement jump survives instead of being averaged away.
- Fast. A 1024 x 1024 x 306 micro-CT scan with 79 200 nodes takes 23 s on an NVIDIA GPU, 3.6 min on a 24-core CPU.
- Point and click. Load the scans, draw the region of interest on the slices, run, look, export. No code.
- Knows your data. The texture analysis measures your scan and suggests the subset size and step.
- See it in 3-D. Field slices, the deformed lattice, displacement arrows; animations recorded as GIF or MP4.
- Strain included. Four gradient methods and four strain measures, computed after the run in their own window.
- Every format. TIFF, MATLAB, NumPy, HDF5, NIfTI, NRRD, DICOM in; NumPy, MATLAB, CSV, ParaView and a PDF report out.
Accuracy and speed
Synthetic volumes with a known deformation (subset 16, step 8), displacement error at the interior nodes:
| case | error (voxel) |
|---|---|
| rigid translation | 0.003 - 0.006 |
| 2 % strain | 0.004 |
| 5 deg rotation with 12 voxel motion | 0.001 - 0.006 |
| 2 % strain, noisy scan (SNR 6) | 0.012 |
Micro-CT scan of the MATLAB example, 1024 x 1024 x 306 voxels, 79 200 nodes:
| time | agreement with the MATLAB code | |
|---|---|---|
| NVIDIA RTX 5090 | 23 s | median 0.005 / 0.006 / 0.020 voxel (u, v, w) |
| 24-core CPU | 3.6 min | the same field |
Compared with the MATLAB code
| MATLAB ALDVC | pyALDVC | |
|---|---|---|
| Method | augmented Lagrangian DVC | the same, results within 0.01 voxel |
| Interface | scripts | desktop application, 7 languages, command line |
| GPU | - | NVIDIA CUDA, one install flag |
| Region of interest | box | masks drawn on the slices, auto-segmentation, per-frame masks |
| Subset size | by hand | texture analysis suggests it from the scan |
| Cracks and holes | subsets and smoothing reach across them | subsets and smoothing stop at the boundary |
| Strain | in the run | its own window, four methods, four measures, recomputed on demand |
| 3-D view | - | slices, lattice, arrows, animations, GIF / MP4 recording |
| Formats | MATLAB | TIFF, MATLAB, NumPy, HDF5, NIfTI, NRRD, DICOM; ParaView export |
| Long sequences | - | checkpoints, resume, batch runs, sessions |
| Install | MATLAB licence | pip install al-dvc, or a portable Windows bundle |
Texture analysis
A subset too small drifts, a subset too large blurs the field. pyALDVC measures the texture of your scan and tells you what to use. The same guide is built into the application, under Help.
1. Compare a window with a shifted copy of itself. Inside a region you draw, the window slides and the similarity of the two is traced. The shift at which it has fallen to 1/e is the correlation length: the size of your features.
2. Grow the window until that length stops changing. Below the representative volume element the measurement is noise; above it, every window agrees.
3. The subset follows. Four correlation lengths per axis, stepped by half a subset: a recommended start, not a guarantee. One click writes it into the run.
Case studies
Synthetic rotation
Hydrogel indentation, micro-CT, 306 x 1024 x 1024 voxels
Install
pip install al-dvc # add "[gpu]" for the NVIDIA backend
al-dvc-gui
No Python? Every release ships a portable Windows bundle: unzip, double-click pyALDVC.exe.
Read the user guide to get started.
Citation
J. Yang, L. Hazlett, A. K. Landauer, C. Franck. Augmented Lagrangian Digital Volume Correlation (ALDVC). Experimental Mechanics 60, 1205-1223 (2020). https://doi.org/10.1007/s11340-020-00607-3
License
BSD 3-Clause. Developed in Dr. Jin Yang's group at The University of Texas at Austin.
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 al_dvc-0.7.0.tar.gz.
File metadata
- Download URL: al_dvc-0.7.0.tar.gz
- Upload date:
- Size: 2.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01feed295d66593bd22a9ac76115846b39adce8deb494daac090fe5c547d4b4a
|
|
| MD5 |
4973107b50bad699d475adbca4207ec4
|
|
| BLAKE2b-256 |
2961cc2eb4614ba37be09f1a32209bbaca709ea4a92868265ce01baf9375bdb4
|
Provenance
The following attestation bundles were made for al_dvc-0.7.0.tar.gz:
Publisher:
publish.yml on zachtong/pyALDVC
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
al_dvc-0.7.0.tar.gz -
Subject digest:
01feed295d66593bd22a9ac76115846b39adce8deb494daac090fe5c547d4b4a - Sigstore transparency entry: 2754391438
- Sigstore integration time:
-
Permalink:
zachtong/pyALDVC@8b1ca9021b9e8a2dffd2e8c78c6ac2028b5c1d10 -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/zachtong
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8b1ca9021b9e8a2dffd2e8c78c6ac2028b5c1d10 -
Trigger Event:
push
-
Statement type:
File details
Details for the file al_dvc-0.7.0-py3-none-any.whl.
File metadata
- Download URL: al_dvc-0.7.0-py3-none-any.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8165ef59ff07ad09831461064a189a63b54c481d1db89d5aea3e017d51745550
|
|
| MD5 |
f2b559b83db11810907db592957b127c
|
|
| BLAKE2b-256 |
166027f58655f6e7e6f371ee9f66a4610558839636130d867769c0f04c2908d2
|
Provenance
The following attestation bundles were made for al_dvc-0.7.0-py3-none-any.whl:
Publisher:
publish.yml on zachtong/pyALDVC
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
al_dvc-0.7.0-py3-none-any.whl -
Subject digest:
8165ef59ff07ad09831461064a189a63b54c481d1db89d5aea3e017d51745550 - Sigstore transparency entry: 2754391446
- Sigstore integration time:
-
Permalink:
zachtong/pyALDVC@8b1ca9021b9e8a2dffd2e8c78c6ac2028b5c1d10 -
Branch / Tag:
refs/tags/v0.7.0 - Owner: https://github.com/zachtong
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8b1ca9021b9e8a2dffd2e8c78c6ac2028b5c1d10 -
Trigger Event:
push
-
Statement type: