are custom operators in the future of Touch?

I’m wondering if now or in the future it will be possible to write actual custom code for Touch through an SDK.

I’ve had a conversation with a real time/AI programmer familiar with Houdini and he was convinced that to get maximum performance, and to also do complex collisions/dynamics/etc. I would need to write actual code if I wanted to keep up a real time performance, no matter the current speed of the generic chop operators and tables in Touch.

Admittedly he was only superficially familiar with Touch, but I can see his point. Derivative has a more generic agenda in mind than the customer wanting to challenge certain aspects of real time rendering engines out there and there are certain fundamental aspects (i.e. weighting/rigging, collisions and dynamics, etc.) which would be very nice to have the option to write for oneself, as writing one’s own operators would also give the customers a competitive advantage which is always at the center of many code developments.

?
d

Ya I can see that happening in the future. First step would be Python as a way to write custom operators. Maybe a native c++ code SDK like Houdini has later.
In the meantime though as long as your are ultimately rendering your data, GLSL will get you very far, and be way faster than anything you could write in C++ with an SDK.

Quoted from Garman from www.vizyacky.com :

“When H9 was announced, it was stated that H9 will replace all hscript expressions with python.
But even with H9.5, the python implementation isn’t fully functional yet.”

We currently have Shared Memory Out / In TOPs, and Shared Memory Out / In CHOPs. Users have employed the TOPs to get images into TouchDesigner from tracking software like ARToolkit. (Any feedback on your experience with it?)

Say we had also Shared Memory Out / In DATs. I would postulate with all three you would be able to do 90% of the AI/python/custom programs in a process external to TouchDesigner, and exchange data through these OPs. Given multi-core computers and millisecond-granular syncronization, how far could you go, and where would this fall short?

greg

There’s a shared memory CHOP? Can’t find it.
Is it possible to write to shared memory in something other than C. python for example?

It’s currently a Pro node, not sure if we are keeping it there or not.

You probably can do it in python, the only trick is making sure you write to the memory in exactly the correct order, which may be difficult in python.

can’t find it in pro either. At least not under shared*
Does it have another name?

Sorry Achim, there is a bug I just confirmed showing these Pro nodes. Will get it fixed asap.

I’ve been enjoying using the shared memory TOP.

It’s set up to receive image data so you can pump pixels in a huge scale from other programs without resorting to pipes (TCP sockets)

a nice feature is that it will accept negative values for RGB and A so it’s easy to attach other data to it. In our augmented reality project, we attach marker tracking info to each pixel then retrieve the data by using the TOPtoCHOP operator. I imagine the shared memory CHOP speeds tht up slightly by removing this conversion step. That said, the TOP method is quite fast enough for us.

a brief help note is here:
[url]http://www.derivativeinc.com/wiki/index.php?title=Shared_Mem_In_TOP#Using_Shared_Memory_Operators_in_Touch[/url]

it links to [url]http://www.derivativeinc.com/wiki/index.php?title=Using_Shared_Memory_Tips[/url] but there’s no info there yet

but there’s a more detailed explanation here:
[url]http://www.derivativeinc.com/wiki/index.php?title=Write_a_Shared_Memory_TOP[/url]

Rod.