Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .github/workflows/draft-pdf.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Draft JOSS PDF

on:
push:
branches:
- main
pull_request:
workflow_dispatch:

permissions:
contents: read

jobs:
paper:
name: Paper draft
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false

- name: Build draft PDF with the Open Journals action
# master commit observed and verified on 2026-07-30
uses: openjournals/openjournals-draft-action@85a18372e48f551d8af9ddb7a747de685fbbb01c
with:
journal: joss
paper-path: paper/paper.md

- name: Upload paper artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: straintrace-joss-paper
path: paper/paper.pdf
if-no-files-found: error
18 changes: 18 additions & 0 deletions .github/workflows/joss-artifacts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: JOSS artifact checks
on:
push:
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
artifacts:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: python -m pip install PyYAML cffconvert
- run: python scripts/check_joss_artifacts.py
- run: cffconvert --validate -i CITATION.cff
38 changes: 38 additions & 0 deletions .github/workflows/package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Python distribution
on:
push:
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
wheel:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: python -m pip install build twine
- run: python -m build
- run: python -m twine check dist/*
- name: Install and run outside source
shell: pwsh
run: |
python -m venv "$env:RUNNER_TEMP/wheel-env"
$python = "$env:RUNNER_TEMP/wheel-env/Scripts/python.exe"
$wheel = (Get-ChildItem dist/*.whl).FullName
& $python -m pip install $wheel
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
& $python -m pip check
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
Set-Location $env:RUNNER_TEMP
& $python -I -c "import ezdic_cli; assert ezdic_cli.SCHEMA_PATH.is_file()"
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
& $python -I -m ezdic_cli benchmark --output wheel-benchmark
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
- uses: actions/upload-artifact@v4
with:
name: distributions
path: dist/*
if-no-files-found: error
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,11 @@ strain_results_*.csv
Thumbs.db
.vscode/
.idea/

*.egg-info/
outputs/
paper/paper.pdf
paper/paper.tex
paper/paper.html
paper/paper.jats
paper/paper.crossref
15 changes: 8 additions & 7 deletions .zenodo.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{
"title": "ezDIC: Lightweight Virtual Extensometer for Linear Strain Extraction from Image Sequences",
"title": "StrainTrace: Virtual extensometry and in-plane digital image correlation",
"upload_type": "software",
"version": "0.1.4",
"publication_date": "2026-08-30",
"language": "eng",
"access_right": "restricted",
"access_conditions": "Access is granted for authorized research or teaching use. Contact Dr. Delun Gong for permission before redistribution, reuse outside the authorized context, or derivative use.",
"access_right": "open",
"creators": [
{
"name": "Gong, Delun"
"name": "Gong, Delun",
"affiliation": "Institute of Metal Research, Chinese Academy of Sciences, Shenyang 110016, China",
"orcid": "0000-0001-7877-7707"
}
],
"description": "<p>ezDIC is a lightweight dual-mode workstation for image sequences. The virtual-extensometer mode tracks two user-defined ROI markers and exports engineering strain, true strain, and quality-control results. The full-field mode correlates each deformation frame to one fixed reference frame, samples a rectangular ROI on a POI grid with IC-GN or IC-LM, and exports displacement and strain maps under <code>dic/</code> for frames with a finite strain field.</p><p>Full-field coordinates and displacements are in px; strain components are dimensionless, and Exy/exy are tensor shear components. The fixed full-field core outputs are tabular data plus u/v/Exx/Eyy/Exy maps. An Exx overlay is optional. The result is a POI grid, not a per-pixel or 3D measurement.</p><p>Failed tracking frames and failed POIs remain NaN rather than being silently interpolated. A full-field frame with no finite strain points is skipped as a failed frame, and a run with no finite strain points fails instead of being reported as completed.</p>",
Expand All @@ -31,11 +31,12 @@
],
"related_identifiers": [
{
"identifier": "https://github.com/D-sudoasd/ezDIC",
"identifier": "https://github.com/D-sudoasd/StrainTrace",
"relation": "isSupplementTo",
"resource_type": "software",
"scheme": "url"
}
],
"notes": "Developed by Dr. Delun Gong. Release date: 2026-08-30. DOI: 10.5281/zenodo.20222465. Recommended citation: Gong, D. (2026). ezDIC: A lightweight virtual extensometer for extracting linear strain from image sequences (Version 0.1.4) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.20222465. Users are not permitted to claim authorship, remove or alter attribution, redistribute the software to unauthorized users, or use it outside the authorized research or teaching context."
"notes": "Metadata for a future archive of the MIT-licensed source candidate. Not an update to the historical DOI 10.5281/zenodo.20222465. The source retains legacy version 0.1.4; select a distinct final version after review.",
"license": "mit"
}
41 changes: 12 additions & 29 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -1,35 +1,18 @@
cff-version: 1.2.0
title: ezDIC
message: "If ezDIC supports your research, please cite the Zenodo DOI: 10.5281/zenodo.20222465."
message: "Please cite StrainTrace with the exact source commit used until the current candidate has its own version archive."
type: software
title: "StrainTrace: Virtual extensometry and in-plane digital image correlation"
authors:
- family-names: Gong
given-names: Delun
name-particle: Dr.
email: dlgong17s@imr.ac.cn
affiliation: "Institute of Metal Research, Chinese Academy of Sciences, Shenyang 110016, China"
orcid: "https://orcid.org/0000-0001-7877-7707"
version: 0.1.4
date-released: 2026-08-30
doi: 10.5281/zenodo.20222465
url: "https://github.com/D-sudoasd/ezDIC"
repository-code: "https://github.com/D-sudoasd/ezDIC"
abstract: "ezDIC is a lightweight dual-mode workstation for image sequences: a virtual extensometer for engineering and true strain histories, and an in-plane full-field 2D DIC workflow that correlates each deformation frame to one fixed reference frame and computes displacement and strain on a POI grid with IC-GN or IC-LM. Full-field x/y/u/v values are in px, strain is dimensionless, Exy/exy are tensor shear components, and failed points remain NaN; the result is not per-pixel or 3D DIC."
keywords:
- Digital image correlation
- virtual extensometer
- strain extraction
- engineering strain
- true strain
- materials testing
- full-field 2D DIC
- POI grid
license: LicenseRef-Proprietary-Research-Use
preferred-citation:
type: software
title: "ezDIC: A lightweight virtual extensometer for extracting linear strain from image sequences"
authors:
- family-names: Gong
given-names: Delun
name-particle: Dr.
version: 0.1.4
date-released: 2026-08-30
doi: 10.5281/zenodo.20222465
url: "https://doi.org/10.5281/zenodo.20222465"
license: MIT
repository-code: "https://github.com/D-sudoasd/StrainTrace"
url: "https://github.com/D-sudoasd/StrainTrace"
identifiers:
- type: doi
value: "10.5281/zenodo.20222465"
description: "Historical ezDIC archive; not the current MIT preparation candidate."
15 changes: 15 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Contributing

Report reproducible defects or propose changes through GitHub issues and pull requests.
Include the source commit, operating system, Python version, a minimal permitted input,
configuration and observed/expected result. Remove private images and paths first.

Install with `python -m pip install -e ".[test]"`, run `python -m pytest -q`, and
run the locked synthetic benchmark described in `docs/joss/validation.md`.
Numerical changes must retain displacement/strain conventions, explicit invalid states,
fixed-reference semantics and manifest verification. Add a regression for the original
failure; do not relax a locked tolerance merely to make an algorithm pass.

Delun Gong maintains the project and reviews changes. There is no guaranteed response
time. Contributions are made under the MIT license. Credit substantive contributions
in the change history and assess software-paper authorship using JOSS criteria.
51 changes: 21 additions & 30 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,30 +1,21 @@
ezDIC Usage Terms
=================

Version: 0.1.4
Release date: 2026-08-30

Developer:
Dr. Delun Gong

DOI:
10.5281/zenodo.20222465

This software was developed by Dr. Delun Gong for lightweight extraction of linear strain from image sequences.

Recommended citation:
Gong, D. (2026). ezDIC: A lightweight virtual extensometer for extracting linear strain from image sequences (Version 0.1.4) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.20222465

This repository is shared for research visibility, evaluation, and authorized research or teaching use. It is not released under an open-source license.

Users are not permitted to:
1. claim that they developed this software;
2. remove or alter the developer attribution;
3. redistribute, copy, forward, or share this software with unauthorized users;
4. use this software outside the authorized research or teaching context.

If you use ezDIC in a thesis, paper, presentation, or report, please cite the DOI above.

If you need to share, reuse, modify, or redistribute this software, please obtain permission from Dr. Delun Gong first.

Unless explicit written permission is granted, all rights are reserved.
MIT License

Copyright (c) 2026 Delun Gong

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
11 changes: 11 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
include README.md README_使用说明.txt LICENSE.txt NOTICE_Attribution_and_Usage.txt CITATION.cff VERSION.txt
include requirements*.txt build_release.ps1 *.spec start_ezDIC.bat
recursive-include docs *.md *.json *.txt *.cff
recursive-include paper *.md *.bib *.png *.svg *.py
recursive-include tests *.py
recursive-include schemas *.json
recursive-include benchmarks *.json
include RELEASE_NOTES*.md

recursive-include docs/joss *.md *.json
include scripts/check_joss_artifacts.py
30 changes: 10 additions & 20 deletions NOTICE_Attribution_and_Usage.txt
Original file line number Diff line number Diff line change
@@ -1,25 +1,15 @@
ezDIC Attribution and Usage Notice

Version: 0.1.4
Release date: 2026-08-30
StrainTrace attribution and licensing

Developer:
Dr. Delun Gong

DOI:
10.5281/zenodo.20222465

This software was developed by Dr. Delun Gong for lightweight extraction of linear strain from image sequences.

Recommended citation:
Gong, D. (2026). ezDIC: A lightweight virtual extensometer for extracting linear strain from image sequences (Version 0.1.4) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.20222465

Users are not permitted to:
1. claim that they developed this software;
2. remove or alter the developer attribution;
3. redistribute, copy, forward, or share this software with unauthorized users;
4. use this software outside the authorized research or teaching context.

If you need to share or reuse this software, please obtain permission from Dr. Delun Gong first.
The author authorized MIT licensing for the current repository source on
27 September 2026. See LICENSE.txt. Modification, commercial use and
redistribution are permitted under that license; preserve the copyright and
permission notice. Citation in scholarly work is requested, not an additional
license restriction.

If you use ezDIC in a thesis, paper, presentation, or report, please cite the DOI above.
Historical ezDIC archives retain their original records and terms. The old
archive DOI 10.5281/zenodo.20222465 is not an archive of this MIT candidate.
See docs/history/pre-mit/ for the superseded repository metadata and license.
No remote archive was changed by this source-license transition.
36 changes: 35 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ smoke-verified Windows asset.

The current `main` source tree contains a narrowly scoped research-grade
upgrade. It does **not** bump `VERSION.txt`, `CITATION.cff`, the Zenodo record,
or the DOI: those remain the v0.1.4 metadata of this source snapshot. The
or the existing DOI. The 27 September MIT preparation updates repository citation and license metadata; the archived DOI remains historical. The
implemented development capability is a reproducible fixed-reference,
local-subset, in-plane 2D DIC workflow plus the existing 1D virtual
extensometer; it is not a claim of universal DIC superiority or experimental
Expand Down Expand Up @@ -353,3 +353,37 @@ Gong, D. (2026). ezDIC (v0.1.4). Zenodo. https://doi.org/10.5281/zenodo.20222465
```

See `CITATION.cff`, `NOTICE_Attribution_and_Usage.txt`, `LICENSE.txt`, and `RELEASE_NOTES_v0.1.4.md` for attribution, redistribution terms, and the release boundary.

## JOSS preparation

See the [submission guide](docs/joss/README.md) for the manuscript, verified author metadata, research-use evidence and final checks. This repository is being prepared for submission; no JOSS acceptance is claimed.

## Installable Python package

Python 3.11–3.13; desktop use requires Tk. Windows is the maintained desktop platform.
From a source checkout:

```bash
python -m pip install ".[test]"
straintrace --help
straintrace-gui
```

For a reproducible numerical check, run from a different directory:

```bash
straintrace benchmark --output straintrace-synthetic-check
```

This generates its own synthetic images and reports defined numerical gates. It is
not experimental accuracy or quality-threshold calibration. See [API](docs/API.md),
[contributing](CONTRIBUTING.md), and [support](SUPPORT.md).

## Current license and historical archives

The author authorized **MIT** licensing of the current source on 27 September 2026.
See [LICENSE.txt](LICENSE.txt). Historical ezDIC archives retain their original records;
[the historical metadata](docs/history/pre-mit/LICENSE.txt) does not govern this candidate.
The existing DOI is not an archive of the new MIT preparation. Legacy module names,
source version 0.1.4 and executable identity remain for compatibility; use the Git commit
to identify this candidate and choose a distinct final release version after review.
14 changes: 5 additions & 9 deletions README_使用说明.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
当前源码许可更新(2026-09-27):StrainTrace 已获作者授权采用 MIT 许可。允许修改、商业使用和再分发,须保留版权与许可声明。旧 ezDIC 归档不代表当前候选版本;历史条款保留于 docs/history/pre-mit。

ezDIC v0.1.4 使用说明
======================
发布日期:2026-08-30
Expand All @@ -6,7 +8,7 @@ ezDIC v0.1.4 使用说明
v0.2.0-dev 开发目标(尚未发布)
------------------------------
当前 `main` 源码树已经实现一个有明确边界的研究级升级,但没有修改 `VERSION.txt`、
`CITATION.cff`、Zenodo 元数据、许可证、作者署名或 DOI;这些仍是本源代码快照的
历史归档 DOI;2026-09-27 的 JOSS 准备已更新源码许可及引用信息,源码版本仍为
v0.1.4 元数据。目标是固定参考、局部子集、面内 2D DIC 加现有 1D 虚拟引伸计,
不是“超过所有 DIC 软件”或“已证明适用于实验数据”的声明。

Expand Down Expand Up @@ -297,15 +299,9 @@ PoissonRatio = - ε_transverse / ε_axial (engineering)
--------
Gong, D. (2026). ezDIC: A lightweight virtual extensometer for extracting linear strain from image sequences (Version 0.1.4) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.20222465

归属与使用限制
当前源码许可
--------------
用户不得:
1. 声称该软件由其开发;
2. 删除或修改开发者署名;
3. 向未经授权的用户重新分发、复制、转发或分享该软件;
4. 在获授权的科研或教学范围之外使用该软件。

如需分享、复用、修改或重新分发,请先联系 Dr. Delun Gong 获得许可。论文、学位论文、报告或演示文稿使用 ezDIC 时,请引用上述 DOI。具体条款见 LICENSE.txt 与 NOTICE_Attribution_and_Usage.txt。
当前源码采用 MIT 许可。允许使用、复制、修改和再分发,须保留版权和许可声明。具体条款见 LICENSE.txt。上列 DOI 属于历史 ezDIC 归档,使用当前候选版本时请同时记录 Git 提交,勿将历史归档当作本次源码。

安全提示
--------
Expand Down
7 changes: 7 additions & 0 deletions SUPPORT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Support and maintenance

Use [GitHub issues](https://github.com/D-sudoasd/StrainTrace/issues) for installation,
usage questions and reproducible defects. Delun Gong is the maintainer; response times
are not guaranteed. For private correspondence use dlgong17s@imr.ac.cn. Do not attach
confidential experimental data to a public issue. Supply a minimal synthetic example
when possible and distinguish a program failure from insufficient image texture.
Loading
Loading