Downloads

Every downloadable VDM artifact, with its exact size and SHA-256 checksum. Verify what you download before you run it — instructions for Windows and Linux are at the bottom of this page.

New here? Read the prerequisites first

The install package does not bundle its dependencies. Check Prerequisites for the hardware, GPU, driver and runtime requirements before installing, then follow Installation.

Install package

The complete package: application binaries, default configuration, this documentation set, and the Install-VDM.ps1 installer. This is the only download most people need. See Installation for what to do with it.

FileSizeSHA-256
vdm-install-package-1.2.1.zip 4,330,301 bytes
(4.13 MiB)
462c34b6b468423eba1b4705bf5b4c77b52f922ff34d3ec2c7470e8514df3266

Contents: app\ (the executables), config\ (default settings.txt and supporting files), doc\ (this documentation), Install-VDM.ps1, Verify-Install.ps1, README.txt and MANIFEST.json.

What’s new in 1.2.1: preview layout fixes (tight feed spacing, correct 1080p output), 3-digit HUD + frame-drop naming, offset persistence, Go Live button, send-feed-to-viewer for grid setup, and a Force Video 520-frame failsafe (F8). The installer now preserves your existing settings/ini/config on reinstall.
v1.2.1: hardened Force Video/F8 first-press reliability.

Unblock the zip after downloading

Windows marks files downloaded from the internet. Before extracting, run Unblock-File .\vdm-install-package-1.2.1.zip in PowerShell, or use PropertiesUnblock, otherwise the bundled .ps1 scripts will refuse to run.

Running the installer

If Windows blocks the .ps1 with “running scripts is disabled on this system”, run the installer this way — it changes no system setting:

powershell -NoProfile -ExecutionPolicy Bypass -File .\Install-VDM.ps1 -InstallRoot C:\VDM

Sample footage

Three synchronised 1080p60 captures recorded 2018-09-23, one per camera. These are the input files the practice player feeds through the pipeline — they let you exercise capture, motion detection, encoding and the distance readout with no cameras attached. See Sample footage for what they contain and how to play them, and User guide § practice for the workflow.

These are large files — 5.57 GiB in total

Each capture is roughly 1.9 GiB. Download them individually rather than all at once, and use a client that can resume (see resuming a download below). They are optional: VDM installs and runs without them.

FileSizeSHA-256
capture_20180923_0_432000.mp4
camera 0
1,997,000,959 bytes
(1.86 GiB)
861f269c67eb0f78257a2a3451b7320b03cae1fff371a549f12d6425d4900be5
capture_20180923_1_432000.mp4
camera 1
1,993,842,258 bytes
(1.86 GiB)
bf2b2ab7babab72e7b6de91a3b032efc18605e0224296264283b8865f9d8058c
capture_20180923_2_432000.mp4
camera 2
1,988,170,694 bytes
(1.85 GiB)
c0eb73fe7722cdf81065a93b8e5b32c0f2482ff19114214d7812afa798cb97c7

Sample-footage helper files

Small companion files for the footage. Install-SampleFootage.ps1 downloads and verifies all three captures for you, which is easier than fetching them by hand.

FileSizeSHA-256
Install-SampleFootage.ps1 16,122 bytes 1f1d42598e88c0976f0f4043c853507a22e5d9ffdb700ff7f27acd4af3c5ac9b
manifest.json 2,989 bytes 331b85387a992dd4cb86de630ca35d9cc514f82082c4995cdc3302d1c87248f1
footage-README.md 8,892 bytes 4f9ce6a6e75131bde0f0752da896b2ce7816ee2c6a303e03742f3ba7252e1907

The checksum file

SHA256SUMS.txt lists all seven artifacts above in the standard sha256sum format — the hash, two spaces, then the filename. It is written with LF line endings so it works directly with sha256sum -c on Linux.

Verifying your download

Always verify before running an installer. A mismatch means the file is corrupt or has been tampered with — delete it and download again.

Windows (PowerShell)

To check a single file, hash it and compare against the value in the table above:

Get-FileHash -Algorithm SHA256 .\vdm-install-package-1.2.1.zip

PowerShell prints the hash in uppercase; the values published here are lowercase. The comparison is case-insensitive, so compare with -eq rather than by eye:

$expected = '462c34b6b468423eba1b4705bf5b4c77b52f922ff34d3ec2c7470e8514df3266'
$actual   = (Get-FileHash -Algorithm SHA256 .\vdm-install-package-1.2.1.zip).Hash
if ($actual -eq $expected) { 'OK' } else { 'MISMATCH - do not use this file' }

To check everything you downloaded against SHA256SUMS.txt in one pass, put that file in the same directory as the downloads and run:

Get-Content SHA256SUMS.txt | ForEach-Object {
    $expected, $name = $_ -split '\s+', 2
    if (Test-Path -LiteralPath $name) {
        $actual = (Get-FileHash -Algorithm SHA256 -LiteralPath $name).Hash
        if ($actual -eq $expected) { "OK        $name" } else { "MISMATCH  $name" }
    } else {
        "skipped   $name (not downloaded)"
    }
}

Hashing a 1.9 GiB capture takes a minute or two. That is normal.

Linux and macOS

Download SHA256SUMS.txt into the same directory as the files and let sha256sum do the work:

sha256sum -c SHA256SUMS.txt

If you only downloaded some of the artifacts, skip the absent ones instead of failing on them:

sha256sum -c --ignore-missing SHA256SUMS.txt

On macOS sha256sum may not be present; use the built-in shasum instead:

shasum -a 256 -c SHA256SUMS.txt

A passing run prints OK next to each filename. Any other result means do not use the file.

Resuming an interrupted download

The captures are large enough that a dropped connection is a real possibility. Both curl and wget can continue a partial file rather than starting over:

curl -L -C - -O https://thehansens.com/tournament/vdm/install/capture_20180923_0_432000.mp4

wget -c https://thehansens.com/tournament/vdm/install/capture_20180923_0_432000.mp4

After a resumed download, verify the checksum. That is the only reliable way to confirm the resumed file is intact.

Documentation

Full technical documentation for VDM lives at the documentation home: installation, the complete settings reference, the operator user guide, building from source, and troubleshooting. For project background rather than technical detail, see the Video Distance Marking project page.