LambdaDesigner: A type-safe EDSL for TouchDesigner written in Haskell.

[ bsd3, library, touchdesigner ] [ Propose Tags ]

TouchDesigner nodes written as functions in Haskell and sent to TouchDesigner as json.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0
Dependencies aeson, base (>=4.7 && <5), bytestring, bytestring-trie, containers (>=0.5), hosc, lens, lens-aeson, matrix, text, transformers (>=0.5), vector (>=0.11) [details]
License BSD-3-Clause
Copyright 2017 Ulysses Popple
Author Ulysses Popple
Maintainer ulysses.popple@gmail.com
Category TouchDesigner
Home page https://github.com/ulyssesp/LambdaDesigner#readme
Source repo head: git clone https://github.com/ulyssesp/LambdaDesigner
Uploaded by ulyssesp at 2017-12-05T23:39:07Z
Distributions
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 925 total (3 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2017-12-05 [all 1 reports]

Readme for LambdaDesigner-0.1.0.0

[back to package description]

λ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 can pip 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