This is an automated installer to run TouchDesigner on Linux.
- ⚡ Automated Installation (Recommended) : Script one-liner, all-in-one setup.
- Manual Installation (via Bottles) : Step-by-step setup for advanced users.
⚡ Automated Installation (Recommended)
NVIDIA users: Please install your GPU driver before running the script. Reboot after.
curl -sSL https://raw.githubusercontent.com/isw3d/TouchDesigner-Linux/main/install.sh | bashTo run in debug mode (verbose logs for bug reports):
curl -sSL https://raw.githubusercontent.com/isw3d/TouchDesigner-Linux/main/install.sh | DEBUG=true bashThe script is idempotent, it is safe to run multiple times. It skips already-installed components and can be used for updates or repairs.
What it does: detects your distro, installs system packages, downloads a Soda Wine runner, sets up a Wine prefix, installs Windows dependencies via Winetricks, lets you pick a TD version, and creates a launcher with optional desktop integration.
Supported distros:
| Family | Examples |
|---|---|
| Arch-based | Arch, CachyOS, Manjaro… |
| Debian/Ubuntu-based | Ubuntu, Mint, Pop!_OS… |
| Fedora-based | Fedora, RHEL… |
| openSUSE-based | Leap, Tumbleweed… |
Expected duration: 40–60 min on first run.
⏳ The longest step is the TouchDesigner
.exeinstallation. Expect ~30 min for that step alone.First launch can take 1–2 min. This is all normal.
Run the installer again and choose Uninstall. This removes the runner, prefix, launcher, and all desktop entries created by the script.
| Path | Description |
|---|---|
~/.local/bin/launch-touchdesigner.sh |
Launcher script |
~/.local/share/touchdesigner-linux/ |
Wine prefix + assets |
~/.local/share/touchdesigner-linux/wine_ui_fixes.tox |
Font fix file |
~/.local/share/applications/touchdesigner.desktop |
App menu entry |
| Symptom | Fix |
|---|---|
| No display / GUI fails | Run from a graphical session with DISPLAY or WAYLAND_DISPLAY set |
| Version list fetch fails | Script falls back to a curated list automatically |
| Long dependency phase | The Windows deps step is slow and quiet, just wait |
Ubuntu/Debian :i386 dependency errors (Breaks, version mismatch) |
Usually caused by third-party repo skew between amd64 and i386 packages. The installer does not force downgrades. Align package versions in apt sources, then rerun the script. |
TD installer fails on specific .dll files (for example ZED, Spinnaker, TensorRT/CUDA) |
In the TouchDesigner installer, choose Custom/Minimal install and uncheck optional hardware SDK components you do not need. |
| Duplicate menu entry | Remove stale .desktop files in ~/.local/share/applications and run update-desktop-database |
Manual Installation (via Bottles)
TouchDesigner is not officially supported on Linux, but it can run very well through Bottles (Wayland).
This guide gives a complete, working setup.
- 1. Install Bottles
- 2. Create the TouchDesigner Bottle
- 3. Install Dependencies
- 4. Install TouchDesigner
- 5. Launch TouchDesigner
- 6. Fix Missing Fonts
- 7. Optional: Flatpak Filesystem Access
- 8. Optional: Desktop Integration
- 9. Screenshots
Install Bottles using one of the methods below.
flatpak install flathub com.usebottles.bottlesIf Bottles does not appear in your app menu, restart your session.
[!WARNING] The Bottles package on AUR is not an official distribution and currently shows many bugs in this setup. For stability, use the Flatpak version instead.
yay -S bottles- Open Bottles.
- Create a new bottle.
- Use these settings:
| Setting | Value |
|---|---|
| Name | TouchDesigner |
| Environment | Gaming |
| Runner | soda |
| Directory | Default |
- Create the bottle and wait for setup to finish.
Inside the bottle:
- Go to Dependencies.
- Install:
corefontsd3dx11(latest version)
- Download the Windows installer from Derivative.
- In Bottles, click Run Executable.
- Select the
.exefile. - Install normally (same process as Windows).
- Open Programs in Bottles.
- Click Play on TouchDesigner.
TouchDesigner should now run.
Some UI elements may appear blank due to font rendering issues.
- Add
wine_ui_fixes.toxto your project.- Download
wine_ui_fixes.toxdirectly - Original post: c0deous on Derivative
- Download
- Click Fix Now.
Fonts will display correctly as long as the .tox file is present in the project.
If you installed Bottles via Flatpak, opening .toe files directly from your system may fail.
Install Flatseal:
flatpak install flathub com.github.tchx84.FlatsealThen:
- Open Flatseal.
- Select Bottles.
- Go to Filesystem.
- Enable All system files.
[!WARNING] This disables sandboxing protections for Bottles.
Inside Bottles, click the ⋮ next to TouchDesigner and select Add Desktop Entry.
- Associate
.toefiles with TouchDesigner. - Assign the TouchDesigner icon (
.png) to the file type.
The icon is located at:
Flatpak:
$HOME/.var/app/com.usebottles.bottles/data/bottles/bottles/TouchDesigner/icons/TouchDesigner.png
AUR:
$HOME/.local/share/bottles/bottles/TouchDesigner/icons/TouchDesigner.png
If the association is correctly configured, .toe files will display with the TouchDesigner icon.
If double-clicking a .toe file fails to load the project (path error), you need to update your desktop entry.
[!IMPORTANT] Before running scripts or terminal commands, verify what they do first. Check them yourself or ask an AI assistant to explain them. Avoid running commands you do not understand or trust.
Run the commands below (copy/paste) to create the launcher script:
mkdir -p ~/.local/bin
cat > ~/.local/bin/touchdesigner-launcher.sh << 'EOF'
#!/bin/bash
# Handle Wine path translation for Bottles
INPUT_PATH="$1"
if [ -z "$INPUT_PATH" ]; then
# Launch TD empty
flatpak run --command=bottles-cli com.usebottles.bottles run -p TouchDesigner -b TouchDesigner
else
# Some desktop environments pass local files as file:// URIs.
if [[ "$INPUT_PATH" == file://* ]]; then
INPUT_PATH="${INPUT_PATH#file://}"
INPUT_PATH="${INPUT_PATH//%20/ }"
fi
# Launch TD with the file mapped to the Z: drive
flatpak run --command=bottles-cli com.usebottles.bottles run -p TouchDesigner -b TouchDesigner --args "z:$INPUT_PATH"
fi
EOF
chmod +x ~/.local/bin/touchdesigner-launcher.shThen run this command to automatically update the TouchDesigner .desktop entry:
DESKTOP_DIR="$HOME/.local/share/applications"
DESKTOP_FILE="$DESKTOP_DIR/TouchDesigner.desktop"
[ -f "$DESKTOP_FILE" ] || DESKTOP_FILE="$(grep -lE '(^Name=.*TouchDesigner|bottles-cli.*TouchDesigner)' "$DESKTOP_DIR"/*.desktop 2>/dev/null | head -n1)"
[ -n "$DESKTOP_FILE" ] && sed -i "s|^Exec=.*|Exec=$HOME/.local/bin/touchdesigner-launcher.sh %f|" "$DESKTOP_FILE" && echo "Updated: $DESKTOP_FILE" || echo "TouchDesigner desktop file not found in $DESKTOP_DIR"
update-desktop-database "$HOME/.local/share/applications" 2>/dev/null || true| Area | Status | Notes |
|---|---|---|
| Launch and runtime | ✅ Working | App launches normally and runs reliably |
| UI rendering | ✅ Working | Correct with wine_ui_fixes.tox |
| Real-time visuals | ✅ Working | Live updates and interaction are smooth |
| Inputs / outputs | ✅ Working | External outputs and inputs are functional in tested scenarios |
| NDI | ✅ Working | Confirmed working |
| TD - Bitwig | ✅ Working | Confirmed working |
| Video Device In | USB Webcams work on first init, but Wine "locks" the device. Replug or TD restart required to reset | |
| NVIDIA TOP | ❌ Not working | Background, Flow and Denoise fail to init CUDA/TensorRT in this environment |
| External installs / integrations | ❓ Not fully tested | Third-party installs, Kinect, extra plugins, and advanced external production pipelines still need broader testing |
- NVIDIA GPUs are highly recommended.
- Wayland is strongly recommended (X11 may cause launch issues or black screen)
- Performance may vary depending on hardware and driver setup.
- Overall, my experience was smoother than on Windows, with better performance and a much cooler-running machine (gaming laptop) due to Linux optimizations.
Built with care — Iswad








