099 Experimental Beta 2017.760 posted

This build’s got a lot of new stuff to check out in addition to a full stack of bug fixes.

Panel Components
New features have been added to reduce the need for expressions and make panels much more flexible in their layout and sizing. We’ve added Aspect, Anchor, and Fill modes for width and height sizing and a full reorganization and tweaking all parameter pages. Sorry about destroying your muscle memory, but this was long overdue as these operators have received new features here and there over 8 years and needed a reworking to make more manageable.

Python Programming - BACKWARD COMPATIBILITY WARNING
Important changes have been made to casting in TouchDesigner’s python implementation to bring it more inline with casting in python proper. For now these changes will just throw warnings but in the future this will be removed and cause errors if you are happen to be casting the old way. Changing “Show Startup Errors” to “Warnings” in the Preference dialog can help alert you to these occurring in your projects.
Please read the release notes and attempt to fix your warnings.

Some other goodies include;

  • The CUDA TOP is being dropped soon but now CUDA has been added to the C++ TOP giving you all the new and improved features of the C++ TOP like custom parameter creation and so on.
  • The Blob Track TOP has been overhauled with the latest openCV and is much easier to setup and use now.
  • A new Black Trax CHOP bring in data from Black Trax motion tracking systems.
  • Did I mention the bug fixes?

Release Notes

Download

[size=50]codename:anchorage[/size]

You guys are killing it right now.

HOLY SMOKES.

I could really get used to this new quick release schedule :slight_smile:

We are very interested in hearing how the Python casting changes effects existing files. Does it break a lot of files for people in ways that is a a large amount of work to fix? We want to be more Python consistent, but also we don’t want to burden everyone with work by breaking things.

Those Python changes shouldn’t break much of our files and are good. Consistency has always been a bit of an annoying thing.

I think it might also be a good time to fully define how TouchDesigner automatically casts and resolves certain Python things. This has always felt a bit convoluted to me and I think it creates a lot of less-than-ideal practices in new users.

A good example is when and where you should use .val on the cell class. My answer when people ask is “always, because you want the value of the object”, but I encounter so many people that don’t use .val and just assume op(‘table_dat’)[0,0] is the value itself. This may work, but it doesn’t seem very Pythonic and clear. I think the same thing re: .eval() on CHOP channels.

control-c copy/pasting is working a lot better now too. It used to paste something that wasn’t most recently copied or an incomplete copied selection.