Skip to content

CEmM2/Hopki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hopki

Hopki

Hopki is a desktop app and command-line toolkit for analyzing split Hopkinson bar experiments (compression and tension) — turning raw oscilloscope captures into dispersion-corrected stress–strain curves and publication-ready figures.

It is a from-scratch Python reimplementation of a legacy MATLAB analysis suite, validated to within 1e-8 of the original's reference outputs.

Features

  • WFT → FLT conversion of Nicolet oscilloscope binary captures (wft-to-csv).
  • Two-bar analysis pipeline: pulse windowing, frequency-domain dispersion correction (Bancroft phase velocity), reflected-pulse alignment, and engineering/true stress–strain.
  • Interactive desktop GUI (PySide6 + pyqtgraph): load an experiment, pick the pulse window and bar geometry by dragging, toggle polarity / Poisson ratio, and view every derived signal live.
  • Curve cleanup (toe correction, smoothing, true-strain conversion) and a publication-figure builder (matplotlib / SciencePlots export to PNG/PDF).

Download (prebuilt binaries)

Grab the latest build for your OS from the Releases page:

OS Asset Run
macOS Hopki-macos-*.zip unzip → open Hopki.app
Windows Hopki-windows-*.zip unzip → run Hopki.exe
Linux Hopki-linux-*.tar.gz extract → ./Hopki

The binaries are unsigned, so the OS may warn on first launch:

  • macOS — right-click Hopki.appOpen (or xattr -dr com.apple.quarantine Hopki.app).
  • Windows — SmartScreen → More infoRun anyway.

Run from source

Hopki uses uv and Python 3.12.

uv sync --extra gui          # GUI + analysis; omit --extra gui for a CLI-only install
uv run hopki-gui             # launch the desktop app

Command-line entry points (add --help to any for the full option list):

uv run wft-to-csv input.WFT out.FLT            # Nicolet .WFT -> legacy .FLT export
uv run twobar-analyze EXP_DIR --out OUTDIR     # run the analysis pipeline on an experiment dir
uv run figcorr CURVE --cut 256 --zero          # curve cleanup (toe correction, smoothing, …)

Documentation

A full user guide is bundled at docs/index.html — open it in any browser.

Test data

The fixtures under tests/ include representative recorded signals from real split Hopkinson bar experiments, released here for regression testing. Tests use the stdlib unittest runner; address modules by their dotted path (GUI tests run headless):

uv run python -m unittest tests.analysis.test_twobar tests.Converter.test_wft_to_csv
QT_QPA_PLATFORM=offscreen uv run python -m unittest tests.gui.test_controller

Building binaries

Binaries are produced with Nuitka via a single cross-platform script (the release workflow runs it on a macOS/Windows/Linux matrix for each tagged version):

uv sync --extra gui --extra packaging
uv run python packaging/build.py

License

MIT — see LICENSE.

About

Split Hopkinson bar experiment analysis — desktop GUI + CLI. A from-scratch Python port of the legacy MATLAB twobar suite.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors