Skip to main content

pyALDVC banner

Full-field 3-D displacement and strain from volumetric images (micro-CT, confocal, MRI, OCT).

CI Python PySide6 CUDA License PyPI

Available in 7 languages
English Simplified Chinese Traditional Chinese Japanese German French Spanish


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.

pyALDVC workflow: load volumes, draw a region of interest, run, strain post-processing, 3-D view

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 confocal scan with 79 200 nodes takes 23 s on an NVIDIA GPU, 3.6 min on a 24-core CPU.
  • Big scans fit. A masked 1024^3 run peaks at 14 GB of volume memory instead of 53, so it runs on a 32 GB workstation; drawing and browsing stay responsive because a local change no longer costs a pass over the whole volume.
  • 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.
  • Statistics built in. Mean with its confidence interval, spread and noise floor of any field, in regions drawn on the slices, with the rigid-body motion removed exactly (fitted over a grip if needed, and shown in the main window); series over frames, profiles, a virtual extensometer, exports that state their definitions.
  • 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

Confocal scan of the MATLAB example (hydrogel indentation), 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
Statistics mean and std of uniform strain (script) tables, histograms, regions, confidence intervals, series over frames, profiles, extensometer, noise floor, rigid-body motion removed
3-D view - slices, lattice, arrows, animations, GIF / MP4 recording
Formats MATLAB TIFF, MATLAB, NumPy, HDF5, NIfTI, NRRD, DICOM; ParaView export
Large scans whole volume in memory local steps over sub-boxes, streamed frames, gradients on the fly when they would not fit
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 box with a shifted copy of itself, and divide out the overlap. The shift at which the similarity has fallen to 1/e is the correlation length: the size of your features. Shifting makes the two overlap less, which would pull the curve down on its own, so every lag is divided by the number of voxel pairs that still contribute.

A box and its shifted copy; the overlap shrinks with the shift, and the raw curve falls below the corrected one

2. Grow the box until that length stops changing. Pick a centre, analyse concentric cubes around it, each on its own voxels alone. Below the representative volume element the measurement is noise; above it, every size agrees.

Concentric boxes of growing size about one centre; the correlation length settles once the box is large enough

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.

From the 1/e correlation length to the subset size and the step

Case studies

Synthetic rotation

Synthetic rotation: frames animation with smooth deformation on the deformed lattice

Hydrogel indentation, confocal microscopy, 1024 x 1024 x 306 voxels

Hydrogel indentation: deformed lattice with displacement arrows, orbit

Hydrogel indentation: frames animation with smooth deformation

Slice sweep along x

Slice sweep along y

Slice sweep along z

Install

With conda (Miniforge if the machine has none yet):

conda create -n pyaldvc python=3.12 -y
conda activate pyaldvc
pip install al-dvc            # NVIDIA GPU: pip install "al-dvc[gpu]"
al-dvc                        # opens the application; al-dvc --help lists the commands
  • conda only provides Python; al-dvc and its dependencies come from PyPI, so do not conda install numpy, scipy and the like into this environment afterwards. Python 3.10 to 3.12 are tested in CI.
  • pip install al-dvc is the complete application: GUI, 3-D view and command line.
  • [gpu] installs the CUDA 12 libraries as pip packages: the machine needs an NVIDIA driver, not the CUDA Toolkit.
  • Check the install with al-dvc --self-test: six checks, each [ok] or [FAIL], saved to pyaldvc_self_test.txt. The compute-backend line names the GPU when one is used.
  • Optional: pip install nibabel pynrrd pydicom reads NIfTI, NRRD and DICOM; pip install imageio imageio-ffmpeg exports 3-D animations as MP4 (GIF needs nothing). Without them the application says what to install when you need it.
  • Update with pip install -U al-dvc.

No Python? Every release ships a portable Windows bundle: unzip, double-click pyALDVC.exe.

Read the user guide to get started.

Citation

Software (concept DOI, always the latest version; each release also has its own):

Tong, Z., Yang, J. pyALDVC: Augmented Lagrangian Digital Volume Correlation in Python. Zenodo. https://doi.org/10.5281/zenodo.22883767

@software{tong_pyaldvc,
  author    = {Tong, Zixiang and Yang, Jin},
  title     = {{pyALDVC}: Augmented Lagrangian Digital Volume Correlation in Python},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.22883767},
  url       = {https://github.com/zachtong/pyALDVC}
}

The method:

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.

Release files for al-dvc 0.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for al-dvc 0.10.0
File Size Uploaded
al_dvc-0.10.0.tar.gz 1.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for al-dvc 0.10.0
File Interpreter ABI Platform
al_dvc-0.10.0-py3-none-any.whl Python 3 none any Details

Total release size: 2.7 MB

Release files / al_dvc-0.10.0.tar.gz

Download URL al_dvc-0.10.0.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
bdc6ac524d8d0dcfda4b2724f4b3c0af674505351105461fe0dab4becd03b0ea
BLAKE2b-256 checksum
How to use checksums
247baacd261c0d49aad964bb6b5c22876161393f3bd3e2bfcbe200c9aad59819
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release files / al_dvc-0.10.0-py3-none-any.whl

Download URL al_dvc-0.10.0-py3-none-any.whl
Size 1.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
81bbfe57ac3c6998c35263dff343a6beecfe4c1f335c33dd2b6249d2c9da835c
BLAKE2b-256 checksum
How to use checksums
47f3a8ed4618ffccaf3d07248452ee7e154433b572db04e707bbefccdc9788b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 23, 2026.

Transparency log

Release history Release notifications | RSS feed

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

This release

0.10.0 This release

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page