ISF Parser

Hi guys,

I’ve published my component for working with ISF shaders: github.com/marcinbiegun/isf-touchdesigner

It’s not a full ISF implementation (leaving some hard parts like multiple shader passes) but it works fine with 90% shaders you can find on interactiveshaderformat.com

The ISF controls are exposed as Custom Parameters.

2 Likes

Great idea, nice work!

Maybe a useful addition could be to pulse Reload automatically whenever a new ISF DAT is connected (check with onTableChange with a DAT Execute).

If you apply as a publisher and send it in I’d be happy to publish this on ChopChopChop!
cheers

Good idea, I’ve added this. :slight_smile:

Sure, I’m going to do that once the implementation is more complete.

Great stuff, thank you for your efforts!!! :smiley:

Seems not to work with the latest experimental builds…

1 Like

The example.toe project still works fine with latest 2019.19160 experimental build on MacOS.

Do you have some specific ISF shader that does not work?

I just made it work with two, the other ones throw errors. in previous versions of Touch, I was converting a lot of ISF shaders with your parser without problem (by the way, thank you for this super-useful plugin!).

Kind Regards,

Joan

1 Like

@nosebleed I’m glad you like it!

I have tested only a few dozens of ISF shaders, for sure there are some that break the script (as in your screenshot). Please paste the links to ISF code from https://www.interactiveshaderformat.com/ or your own full ISF code - if I can recreate the error on my machine, I’ll be able to post some fixes.

Thank you so much for this! I was able to get it work on a deprecated version of Touch, but on the latest version it appears something in the vector linking is breaking ( I’m getting a nonetype error in the GLSL top for 3 of the params: maxUpdateSize,maxBlend,and resetImage properties). I’m fairly inexperienced with GLSL so I can’t figure out what might’ve changed between that working (2019) version of TD and this latest experimental (37030). Do you know what changed that’s causing it to no longer work?

We will have some fixes for the startup errors in the latest build, but the reset/reload script could use an update still for changes in 2020 builds.

Now, “script” CHOP Execute in isfParser has error so you cannot reload it.
line 31,
op(op_name).par.enablevectorpage3.val = True
but glsl1 TOP has not enablevectorpage3? parameter.
I have checked the following website, but no such parameters are currently available.
GLSL TOP Class
To use isfParser, you delete the above line31 and reload isfParse! I wish it works well.

2 Likes

Thanks for the tip! I’ve updated the version on GitHub to work with TD 2020.

3 Likes

Hi there, is there a list of the non-working shaders?

1 Like

I’d love to try and help figure this out and fix any issues/grow it to work with as many shaders as possible, I’ll provide any notes here or fork this if I get some time.

the neon shader from ISF is cool, but doesnt work. Here are the errors

python >>>
Traceback (most recent call last):
File “/project1/ISF/script”, line 296, in onOffToOn
KeyError: ‘TARGET’
Traceback (most recent call last):
File “/project1/ISF/script”, line 296, in onOffToOn
KeyError: ‘TARGET’
Traceback (most recent call last):
File “/project1/ISF/script”, line 296, in onOffToOn
KeyError: ‘TARGET’
Traceback (most recent call last):
File “/project1/ISF/script”, line 296, in onOffToOn
KeyError: ‘TARGET’
Traceback (most recent call last):
File “/project1/ISF/script”, line 296, in onOffToOn
KeyError: ‘TARGET’
Traceback (most recent call last):
File “/project1/ISF/script”, line 115, in onOffToOn
AttributeError: ‘NoneType’ object has no attribute ‘group’
python >>>

I am wondering if multiGLSL wouldn’t be a better object for this to allow multiple input textures and buffers inside the one shader. Ive seen the built in gpuparticles component uses this node and has loads of feedback textures driving things. I also am exploring connecting autoUI to the control values, as well as a file browser gui, and im seeing if I can make this a more comprehensive and better overall workflow. I also added audioFFT and some other things, but I need to clean those up along with making the feedback multipass actually work and the input textures load the proper files. for nearly every generator i have these are critical… things like the noise textures… and being able to quickly browse and try values is important… so yeah… look forward to a way more useful ISF patch / update soon from me.

1 Like

Great tool, thanks. Ive been using ISF for a number of years with VDMX (Vidvox) and your toe has correctly handled pretty much any shader I threw at it. Only issues I noticed were 1) sometimes all controls were not exposed in the generated Parameters and 2) the defaults for converted controls were different from what was in the original ISF. Really great work.

Saw another minor issue. A warning is thrown in the script if the ISF INPUTS section isn’t present in the input. Its optional in ISF.

weird, you didn’t have any parsing issues? maybe my ISF files are crazy. I noticed it doesn’t have audio input, input files, feedback buffers, and loads of other things that likely came in mainly from importing shadertoys.