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.
  • 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
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.

A window and its shifted copy inside the analysis region, tracing the autocorrelation curve

2. Grow the window until that length stops changing. Below the representative volume element the measurement is noise; above it, every window agrees.

Windows of growing size in the same region; the correlation length settles once the window 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, micro-CT, 306 x 1024 x 1024 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

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

al_dvc-0.6.0.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

al_dvc-0.6.0-py3-none-any.whl (2.5 MB view details)

Uploaded Python 3

File details

Details for the file al_dvc-0.6.0.tar.gz.

File metadata

  • Download URL: al_dvc-0.6.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

Hashes for al_dvc-0.6.0.tar.gz
Algorithm Hash digest
SHA256 daf0a613d4d939a0527016dcd1732ef86bae669ae8ca12e005880859e972c005
MD5 fb286532cbd680dddadd233626d68c21
BLAKE2b-256 af0c092992a38ddfa18ebf6c3c12036e47886f361204df24bc71b90fc32ff33d

See more details on using hashes here.

Provenance

The following attestation bundles were made for al_dvc-0.6.0.tar.gz:

Publisher: publish.yml on zachtong/pyALDVC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file al_dvc-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: al_dvc-0.6.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

Hashes for al_dvc-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 68da3ffe230fcea3126a699001937d27c23c1cf15012aa7b226408ffafb7f824
MD5 7e81409d22874def3813d7e7ac8154be
BLAKE2b-256 595e1b524e40fe6e4588733f31334dab5becd3f7e84a0ab8ca7a69e2e55c6ff6

See more details on using hashes here.

Provenance

The following attestation bundles were made for al_dvc-0.6.0-py3-none-any.whl:

Publisher: publish.yml on zachtong/pyALDVC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.7.0

2 files

This release

0.6.0 This release

2 files

0.5.0

2 files

0.4.1

2 files

0.4.0

2 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