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

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.7.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.7.0-py3-none-any.whl (2.5 MB view details)

Uploaded Python 3

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

Hashes for al_dvc-0.7.0.tar.gz
Algorithm Hash digest
SHA256 01feed295d66593bd22a9ac76115846b39adce8deb494daac090fe5c547d4b4a
MD5 4973107b50bad699d475adbca4207ec4
BLAKE2b-256 2961cc2eb4614ba37be09f1a32209bbaca709ea4a92868265ce01baf9375bdb4

See more details on using hashes here.

Provenance

The following attestation bundles were made for al_dvc-0.7.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.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

Hashes for al_dvc-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8165ef59ff07ad09831461064a189a63b54c481d1db89d5aea3e017d51745550
MD5 f2b559b83db11810907db592957b127c
BLAKE2b-256 166027f58655f6e7e6f371ee9f66a4610558839636130d867769c0f04c2908d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for al_dvc-0.7.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

This release

0.7.0 This release

2 files

0.6.0

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