VJ UNION

Cover image for ISF TouchDesigner
vdmo
vdmo

Posted on

ISF TouchDesigner

https://github.com/marcinbiegun/isf-touchdesigner

ISF TouchDesigner

This component integrates ISF shaders into TouchDesigner.

Discussion thread: https://forum.derivative.ca/t/isf-parser/10588

Donations are welcome: https://ko-fi.com/martinrocker3d

ISF TouchDesigner

What is ISF?

ISF (Interactive Sahder Format) is wrapper around GLSL pixel shaders. It standarizes way
to create live video effects that can be then used in and controlled by VJ Software.

Learn more about ISF here: https://isf.video/

How to use it

The workflow is very simple:

  1. Create a Text DAT node, paste some ISF code there and connect it to isfParser component.
  2. Connect your video input to the component.
  3. Click "Reload" and it's done! You will receive the video output and you can play with the ISF parameters that will be now visible on the component.

Screenshot

Compatibility

Supported variables:

PASSINDEX
RENDERSIZE
isf_FragNormCoord
TIME
TIMEDELTA
DATE
FRAMEINDEX
Enter fullscreen mode Exit fullscreen mode

Supported functions:

IMG_PIXEL()
IMG_THIS_PIXEL()
IMG_NORM_PIXEL()
IMG_THIS_NORM_PIXEL()
IMG_SIZE()
Enter fullscreen mode Exit fullscreen mode

Supported input types:

float
color
long
bool
event
shape
Enter fullscreen mode Exit fullscreen mode

Features

  • ISF controls are exposed as custom parameters on Base OP
  • Image / video input
  • Custom resolution
  • GLSL code translation is done by a single Python script, it's rather easy to follow
  • Works with latest TouchDesigner
  • Multiple passes (1 and 2)

What's missing

  • More than 2 passes
  • Vertex shader (varying not implemented)

Changelog

2022.08.07

  • make IMG_THIS_PIXEL work exactly like IMG_THIS_NORM_PIXEL
  • don't crash on invalid INPUTS and PASSES
  • fix ISF shaders using fragColor variable, usage is reserved for TD

2022.06.24

  • fix IMG_THIS_PIXEL and IMG_THIS_NORM_PIXEL sampler functions

2022.06.02

  • fixed compatibility with TouchDesigner 2022.24200
  • added support for TIMEDELTA keyword

2020.05.28

  • fixed compatibility with TouchDesigner 2020
  • float parameters exposed as relative value in 0.0 to 1.0 range instead of absolute value

2018.06.13

  • initial release

Contribuing

Issue reports and pull requests are welcome.

Discussion (0)