Skip to content

Repository files navigation

PyPI versionPyPI - Python Version

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 uv or see the uv docs.

Quick Start

importtouchpyastpcomp=tp.Comp()
comp.load("path/to/component.tox")
comp.start()
ifcomp.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

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

importtouchpyprint(touchpy.__version__) # shows 0.12.0.dev0 for local dev builds

About

Toolkit providing various interconnectivity tools between TouchDesigner and Python

Resources

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages