TouchPy is a high-performance toolset to work with TouchDesigner components in Python
Project description
TouchPy
TouchPy is a high-performance Python toolset for working with TouchDesigner components headlessly via the TouchEngine SDK. It provides GPU-accelerated data exchange (CUDA/Vulkan) for TOPs, CHOPs, DATs, and parameters.
Requirements
- Windows 10/11 (x64)
- TouchDesigner installed (runtime dependency)
- NVIDIA GPU with CUDA support
- Python 3.9 - 3.14 (3.12 recommended for development)
Installation
If you simply want to use TouchPy and run the examples, you don't need to clone this repo:
uv add touchpy[examples]
This installs TouchPy with CUDA-enabled PyTorch and numpy for running the examples.
uv is required for dependency management. Install it via
pip install uvor see the uv docs.
Quick Start
import touchpy as tp
comp = tp.Comp()
comp.load("path/to/component.tox")
comp.start()
if comp.frame_did_finish():
comp.start_next_frame()
See the examples/ directory for more detailed usage including TOPs with PyTorch tensors, CHOPs, DATs, and parameter control.
Documentation
Full API documentation is available at intentdev.github.io/touchpy.
Development
Prerequisites
- Visual Studio 2022 with C++ desktop workload
- CMake 3.21+
- CUDA Toolkit 12.x
- Vulkan SDK
- uv for Python dependency management
Setup
git clone --recurse-submodules https://github.com/IntentDev/touchpy.git
cd touchpy
uv venv --python 3.12
uv sync --extra examples
If you already cloned without --recurse-submodules:
git submodule update --init
This creates a .venv with Python 3.12, builds TouchPy from source (via scikit-build-core), and installs CUDA-enabled PyTorch + numpy for running examples.
Note: Python 3.12 is recommended. PyTorch wheels for 3.13+ may have packaging issues.
Rebuilding after C++ changes
uv sync --extra examples --reinstall-package touchpy
Or equivalently:
uv pip install -ve .
Build a wheel
uv build
Verify
import touchpy
print(touchpy.__version__) # shows 0.12.0.dev0 for local dev builds
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file touchpy-0.12.0.tar.gz.
File metadata
- Download URL: touchpy-0.12.0.tar.gz
- Upload date:
- Size: 920.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
286269153e425ff91da21cde81f6db8875ec79c6dc1af520325c5494361151e0
|
|
| MD5 |
52c3affce540f8779ddd0490ea868c14
|
|
| BLAKE2b-256 |
a0aaa194d1fd5574855b54e0e716fea601f549ce50b156890388e5c2c297bd6e
|
Provenance
The following attestation bundles were made for touchpy-0.12.0.tar.gz:
Publisher:
wheels.yml on IntentDev/touchpy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
touchpy-0.12.0.tar.gz -
Subject digest:
286269153e425ff91da21cde81f6db8875ec79c6dc1af520325c5494361151e0 - Sigstore transparency entry: 1649201406
- Sigstore integration time:
-
Permalink:
IntentDev/touchpy@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/IntentDev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file touchpy-0.12.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: touchpy-0.12.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cfd7fe8202169fad041a111e5481b857c3b944634afa25e82427854b287bacb7
|
|
| MD5 |
10f08b842b7bd66d7bf6fa16d7ff1d82
|
|
| BLAKE2b-256 |
56468e023e864b4f3399f4d3fc434e3d74ae1e1932624df3b13fba93a82de617
|
Provenance
The following attestation bundles were made for touchpy-0.12.0-cp314-cp314-win_amd64.whl:
Publisher:
wheels.yml on IntentDev/touchpy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
touchpy-0.12.0-cp314-cp314-win_amd64.whl -
Subject digest:
cfd7fe8202169fad041a111e5481b857c3b944634afa25e82427854b287bacb7 - Sigstore transparency entry: 1649201482
- Sigstore integration time:
-
Permalink:
IntentDev/touchpy@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/IntentDev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file touchpy-0.12.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: touchpy-0.12.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 986.0 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5fc987c9f4a98c56eb278f0189916c2891cfd12b310e4caaf6674e482470fd6
|
|
| MD5 |
a8eb15d3c82f6a6027e3c19ed4c06c36
|
|
| BLAKE2b-256 |
bfabe9f5395d02fdfdecda6c275fa0faa0145ab03bf01c17581684dedabc22fc
|
Provenance
The following attestation bundles were made for touchpy-0.12.0-cp313-cp313-win_amd64.whl:
Publisher:
wheels.yml on IntentDev/touchpy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
touchpy-0.12.0-cp313-cp313-win_amd64.whl -
Subject digest:
d5fc987c9f4a98c56eb278f0189916c2891cfd12b310e4caaf6674e482470fd6 - Sigstore transparency entry: 1649201782
- Sigstore integration time:
-
Permalink:
IntentDev/touchpy@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/IntentDev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file touchpy-0.12.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: touchpy-0.12.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 986.1 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34f7f324f50b19099caccafac4a7368ad4e6094b642f122ef31417e3d1277c89
|
|
| MD5 |
5ad34d1edec970b12ec203231e8d1d85
|
|
| BLAKE2b-256 |
e47e3a585e0259278f849c94eec39ef9e5d5089746dbf9a28b923d6118b28599
|
Provenance
The following attestation bundles were made for touchpy-0.12.0-cp312-cp312-win_amd64.whl:
Publisher:
wheels.yml on IntentDev/touchpy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
touchpy-0.12.0-cp312-cp312-win_amd64.whl -
Subject digest:
34f7f324f50b19099caccafac4a7368ad4e6094b642f122ef31417e3d1277c89 - Sigstore transparency entry: 1649201691
- Sigstore integration time:
-
Permalink:
IntentDev/touchpy@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/IntentDev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file touchpy-0.12.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: touchpy-0.12.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 985.9 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07724253f444d2509a4bcc82c64f9074ef832e37e8a7377e7334643ebe5c3376
|
|
| MD5 |
ecd72b8565de055db95856374019107f
|
|
| BLAKE2b-256 |
f8bbcc659359cb3d91f501015e51cadf577a881b9ecc51ea1e41c8d80e9bc444
|
Provenance
The following attestation bundles were made for touchpy-0.12.0-cp311-cp311-win_amd64.whl:
Publisher:
wheels.yml on IntentDev/touchpy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
touchpy-0.12.0-cp311-cp311-win_amd64.whl -
Subject digest:
07724253f444d2509a4bcc82c64f9074ef832e37e8a7377e7334643ebe5c3376 - Sigstore transparency entry: 1649201555
- Sigstore integration time:
-
Permalink:
IntentDev/touchpy@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/IntentDev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file touchpy-0.12.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: touchpy-0.12.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 985.7 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ecccf44f1de3d3e18b8338be8b83cbe3ad8b5308ed54098bc409ebb9b142821
|
|
| MD5 |
06a4773679893b93eb906e3c9167085f
|
|
| BLAKE2b-256 |
e5f37f780ce427d2b1fc149d61cd671e82a14e3261e5a30afbfb886689ab6523
|
Provenance
The following attestation bundles were made for touchpy-0.12.0-cp310-cp310-win_amd64.whl:
Publisher:
wheels.yml on IntentDev/touchpy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
touchpy-0.12.0-cp310-cp310-win_amd64.whl -
Subject digest:
6ecccf44f1de3d3e18b8338be8b83cbe3ad8b5308ed54098bc409ebb9b142821 - Sigstore transparency entry: 1649201620
- Sigstore integration time:
-
Permalink:
IntentDev/touchpy@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/IntentDev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Trigger Event:
release
-
Statement type:
File details
Details for the file touchpy-0.12.0-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: touchpy-0.12.0-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 986.0 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1216d0991547786e15899207e8b1cc900f652d84f4f28f9c4ec44530c3780921
|
|
| MD5 |
8a023837e3447072dc1a1cdf0a62183a
|
|
| BLAKE2b-256 |
f5fdf11cea199c6d363a6e7a6caad761768826d2be739becad754e468c205dbe
|
Provenance
The following attestation bundles were made for touchpy-0.12.0-cp39-cp39-win_amd64.whl:
Publisher:
wheels.yml on IntentDev/touchpy
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
touchpy-0.12.0-cp39-cp39-win_amd64.whl -
Subject digest:
1216d0991547786e15899207e8b1cc900f652d84f4f28f9c4ec44530c3780921 - Sigstore transparency entry: 1649201843
- Sigstore integration time:
-
Permalink:
IntentDev/touchpy@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/IntentDev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@6960d62a8b5d47ebd8109675ec50b1a86ee616f9 -
Trigger Event:
release
-
Statement type: