A type-safe EDSL for TouchDesigner written in Haskell.
TouchDesigner nodes written as functions in Haskell and sent to TouchDesigner as json.
λDesigner
A type-safe EDSL for TouchDesigner written in Haskell. Instead of connecting nodes by hand, use the power of algebraic data types to program TouchDesigner projects in Haskell.
Getting Started
Prerequisites
- TouchDesigner ** With
dictdiffer
installed. You canpip install dictdiffer
and then make sure TouchDesigner can see that module by following the TouchDesigner tutorial - Haskell (only tested with haskellstack)
Installing
Clone or download LambdaDesigner-sample.
Using
Setup
This takes you through Main.hs
. Note that you must be running LambdaDesigner.toe
to see the results of running code.
The first thing you need to do is grab a reference to the runner.
topRunner :: IO ( Tree TOP -> IO () )
main = do
r <- topRunner
...
This will let us run a Tree TOP
which will show up as an output connector on the lambda
COMP in TouchDesigner. Lets see this happening by creating a movieFileIn
top with the sample image.
main = do
r <- topRunner
r $ movieFileIn (bstr "app.samplesFolder+'/Map/Banana.tif'")
We have something we can run!
$ stack build
$ stack exec LamdaDesigner-sample-exe
Take a look at it running in TouchDesigner! To experiment with different node types check out the . Not every TouchDesigner node is represented yet, but the most common ones are there.
If you'd.