ARToolKitNFT for python
This is a python binding for WebARKitLib library. It is based on the WebARKitLib library and provides a python interface to the library. Install from PyPI:
pip install artoolkitnft
Supported platforms
| platform | wheels |
|---|---|
| Linux x86_64 | CPython 3.9-3.13 |
| macOS Apple silicon (arm64) | CPython 3.9-3.13 |
| Windows x86_64 | CPython 3.9-3.13 |
| macOS Intel (x86_64) | none -- see below |
There is deliberately no source distribution: the build compiles sources from outside
the package directory and needs the WebARKitLib git submodule, neither of which survives an
sdist. So on a platform without a wheel, pip reports no matching distribution found
rather than attempting a build that cannot succeed.
Intel macOS is not supported. GitHub retired its free Intel runner (macos-13) in
December 2025; the replacement is a paid runner, and GitHub removes x86_64 macOS entirely
in August 2027. Apple has already discontinued the architecture. If you need Intel macOS,
build from a repository checkout following Local development below, or open an issue --
cross-compiling universal2 wheels is possible if there is demand.
Rehearsal builds are published to TestPyPI by running the Publish Python package
workflow manually with the testpypi target. Note that any python/* tag publishes to
PyPI, including a pre-release version such as 0.0.14rc1 -- routing is chosen by how the
workflow is triggered, not by the version number. To install a rehearsal build:
pip install -i https://test.pypi.org/simple/ artoolkitnft
Local development (build and install from source)
To build the bindings locally and test them without publishing to TestPyPI:
Prerequisites
- Python 3.9+ with
pip - A C/C++ toolchain (MSVC Build Tools on Windows,
build-essentialon Linux) cmakeavailable onPATH(used bysetup.pyto build the bundled zlib)- The git submodules initialised:
git submodule update --init
- On Windows:
vcpkgwithlibjpeg-turboandpthreadsinstalled (see thebuild-windowsjob in.github/workflows/build-python.ymlfor the exact commands). - On Linux:
sudo apt-get install -y libjpeg9
Build and install
From the python-bindings/ directory:
pip install --upgrade pip setuptools wheel pybind11 numpy pillow pytest
python setup.py bdist_wheel
pip install --force-reinstall dist/artoolkitnft-*.whl
On Windows PowerShell the last step needs an explicit Get-ChildItem because
PowerShell does not expand globs the way bash does:
pip install --force-reinstall (Get-ChildItem dist\artoolkitnft-*.whl | Select-Object -First 1).FullName
--force-reinstall is important — without it, pip sees the version has
not changed and skips reinstalling, so your C++ changes never land.
Run the example
python example.py
Notes
- Do not use
python -m buildhere: it creates an isolated build environment that does not inheritcmake(orvcpkg) from your shell. Use the legacypython setup.py bdist_wheelinstead, which keeps your currentPATH. - Working inside a virtualenv (
python -m venv .venv) is recommended so you do not pollute the system / Anaconda site-packages.
Publishing
Releases are built and published by the Publish Python package workflow, through PyPI trusted publishing (OIDC). There is no token, and nothing is uploaded by hand.
- Bump the version in both
pyproject.tomlandsetup.py— the workflow refuses to publish if the tag and the two files disagree. - Rehearse: run the workflow manually with the
testpypitarget and confirm the wheels build on all three platforms. - Release: tag
python/<version>(for examplepython/0.0.13) and push it.
Do not publish by hand
This section previously documented a manual twine upload. It has been removed because it
produced a broken artifact that is still on TestPyPI. The instruction was:
# DO NOT DO THIS
python setup.py sdist bdist_wheel --plat-name manylinux2014_x86_64
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
--plat-name forcibly stamps a platform tag onto whatever was just built, without checking
it. Run on Windows, or with a stale build tree, it labels a Windows .pyd as Linux. That is
exactly what artoolkitnft-0.0.12-cp311-cp311-manylinux2014_x86_64.whl on TestPyPI contains:
artoolkitnft_core.cp311-win_amd64.pyd, which installs on Linux and then fails to load.
It also uploads dist/*, which includes an sdist — and a source build cannot work here,
because it needs sources from outside the package directory and the WebARKitLib submodule.
The workflow avoids all of this: it builds natively per platform, repairs wheels with
auditwheel / delocate, rejects any wheel whose contents disagree with its tag
(.github/scripts/check_wheel.py), installs and imports each one in a clean virtualenv, and
publishes nothing unless every wheel in the matrix succeeded.
Release files for artoolkitnft 0.0.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 8.7 MB
Release files / artoolkitnft-0.0.13-cp313-cp313-win_amd64.whl
| Download URL | artoolkitnft-0.0.13-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 322.3 kB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c1d757678dc43b5625b3536402154cc7d8b63b155869029b3707e112efe73690
|
|
BLAKE2b-256 checksum How to use checksums |
9a35b024b690fdc6bc6b340768e9e4b41e8c437230fbfbbd510e86f95a2a5871
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp313-cp313-manylinux_2_39_x86_64.whl
| Download URL | artoolkitnft-0.0.13-cp313-cp313-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 579.1 kB |
| Tags | CPython 3.13 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
b9764d3463bea237abe5094e0a09c5395a75477c4413bbde1aceccf5f88f8302
|
|
BLAKE2b-256 checksum How to use checksums |
3b737b56b8077866353f6e577e9e047c60f360d113e503f0f0517a155c1da0a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp313-cp313-macosx_10_14_x86_64.macosx_15_0_arm64.whl
| Download URL | artoolkitnft-0.0.13-cp313-cp313-macosx_10_14_x86_64.macosx_15_0_arm64.whl |
|---|---|
| Size | 842.2 kB |
| Tags | CPython 3.13 macOS 10.14+ x86-64 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3e555f0501b71d02decfc97c0e608d0b42ca89b78767d775e9f2ce235a484ac3
|
|
BLAKE2b-256 checksum How to use checksums |
2f1cdddbecc44fb7eee95f9ec9a4c40c6371947b93f9df0db160862ecaf3834d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp312-cp312-win_amd64.whl
| Download URL | artoolkitnft-0.0.13-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 322.3 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
238406071fbbedfa2670386f796adcf05c21250b11ad49cd33de3f6fbbf44ac9
|
|
BLAKE2b-256 checksum How to use checksums |
9ec94a41cbc792e016b9aded8ff547876b60f917be2e8cfa3c5ca887c2ecea3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp312-cp312-manylinux_2_39_x86_64.whl
| Download URL | artoolkitnft-0.0.13-cp312-cp312-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 578.9 kB |
| Tags | CPython 3.12 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
7305c5a69fcf18ef85169afd8afe0dd0c1a2973885d9d3b4871f81aa98342696
|
|
BLAKE2b-256 checksum How to use checksums |
f31f6a7a34b53807a463ae26c0c21cead64c151e09dcbc5f4f58058eafbad03d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp312-cp312-macosx_10_14_x86_64.macosx_15_0_arm64.whl
| Download URL | artoolkitnft-0.0.13-cp312-cp312-macosx_10_14_x86_64.macosx_15_0_arm64.whl |
|---|---|
| Size | 842.2 kB |
| Tags | CPython 3.12 macOS 10.14+ x86-64 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
41f2601c13febedf10c0bda248d9feb4e9880d2d6ae7111cb58e861eeca28b6e
|
|
BLAKE2b-256 checksum How to use checksums |
ca0546d81fa1064cc900ffd6d0d485474601f4cd0c44d1c116d6afa84e344f81
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp311-cp311-win_amd64.whl
| Download URL | artoolkitnft-0.0.13-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 320.5 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
b782442ec25eed704a99da3f39d368aebca4ab2442aaa627b45be66a11b9f9d3
|
|
BLAKE2b-256 checksum How to use checksums |
fd25533ec7324d47d29a697cd8573a7b4ac2983117fbba105f0a397c9230066b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp311-cp311-manylinux_2_39_x86_64.whl
| Download URL | artoolkitnft-0.0.13-cp311-cp311-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 578.9 kB |
| Tags | CPython 3.11 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
2443bea302ffde1687941e39aa673deb3560a5089dc9e6479d9ae6ee28ff27c9
|
|
BLAKE2b-256 checksum How to use checksums |
db2cf5189a5fceff42ee24572c00da55e54cede87439949d4f82f1fa537a696b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp311-cp311-macosx_10_14_x86_64.macosx_15_0_arm64.whl
| Download URL | artoolkitnft-0.0.13-cp311-cp311-macosx_10_14_x86_64.macosx_15_0_arm64.whl |
|---|---|
| Size | 845.6 kB |
| Tags | CPython 3.11 macOS 10.14+ x86-64 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
3ff7f64226cf99431643e55e71f21e8a397d318dac860ab52d6d6162eb262444
|
|
BLAKE2b-256 checksum How to use checksums |
e752fcf8b2706666abb4517b77b856142747d48bf8ed500f42204da2d5bec963
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp310-cp310-win_amd64.whl
| Download URL | artoolkitnft-0.0.13-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 319.7 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c22e975fd9cd2f51b6de4ffa9e6e40e4491653f404b4f4e86c79c8e09a63e6e0
|
|
BLAKE2b-256 checksum How to use checksums |
b56ed2af470bb9c874c8780eeb4101903f34dee18a2e77cb10c62933ff0a2530
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp310-cp310-manylinux_2_39_x86_64.whl
| Download URL | artoolkitnft-0.0.13-cp310-cp310-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 578.0 kB |
| Tags | CPython 3.10 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
c59623b02f6d60a54817ab5b602f58dc47854c7794c1dc33e2451d7384394918
|
|
BLAKE2b-256 checksum How to use checksums |
2c0a2e50b389846b1e84999ebf8976c74b05dfc529cf1615e4e2998fc7d0fb0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp310-cp310-macosx_10_14_x86_64.macosx_15_0_arm64.whl
| Download URL | artoolkitnft-0.0.13-cp310-cp310-macosx_10_14_x86_64.macosx_15_0_arm64.whl |
|---|---|
| Size | 842.8 kB |
| Tags | CPython 3.10 macOS 10.14+ x86-64 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
efef01d249a867efe5efde8fc719a849df23bd08b6b75069cf424fb65a28f0e9
|
|
BLAKE2b-256 checksum How to use checksums |
b71938db5ae4b09a7de1554b2283283f627a4bf37648b4e95f0ef33b401e3540
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp39-cp39-win_amd64.whl
| Download URL | artoolkitnft-0.0.13-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 342.6 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
23dbac41db712dbd894ef65b8bceb057696ac3291cad74e41278c20a9891a134
|
|
BLAKE2b-256 checksum How to use checksums |
eaa18c543de4fffd5159df3faf7a3ad84870a5b64a0956ae7e71167865f2d0b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp39-cp39-manylinux_2_39_x86_64.whl
| Download URL | artoolkitnft-0.0.13-cp39-cp39-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 577.3 kB |
| Tags | CPython 3.9 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
fe705287eaf1bea98c5c2707172cd40d6ae4df3ff10e4612699c9a38370a2a4a
|
|
BLAKE2b-256 checksum How to use checksums |
578755a9790f40e9520347dd965bcda45b90e3fc824f9b87f80ee5a1c5d1bd37
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / artoolkitnft-0.0.13-cp39-cp39-macosx_10_14_x86_64.macosx_15_0_arm64.whl
| Download URL | artoolkitnft-0.0.13-cp39-cp39-macosx_10_14_x86_64.macosx_15_0_arm64.whl |
|---|---|
| Size | 843.0 kB |
| Tags | CPython 3.9 macOS 10.14+ x86-64 macOS 15.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ba6a78a29a97b951ac2997d604d0f8114add44f485301c4fb93c8bfe5af71791
|
|
BLAKE2b-256 checksum How to use checksums |
6d099a25f04274625b9949cc1d2146c8e2c1b5828d2f6df9ba34cc070febd97d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency log