Experimental Build 2018.21670 posted

:open_mouth:

YES YES YES YES WOOOOHOOOOO all my christmas wishes in one release!
Python expression caching sounds amazeballs. Also C++ SOP here i come :mrgreen:

Supercool guys!

Alembic, C++SOP, GPUvsCPU, Subtance, SOPtoGPU… wooow
Madness Power !
Nice job guys !

Wooow
Thanks y’all :smiley:

Thank you for your work, I test all the news right now.
jacques :stuck_out_tongue:

There isn’t some hack that I can install this experimental next to normal release right? That would make testing the Python expression speed difference a lot easier.

We do need to make this easier… but you can just copy the whole installation directory somewhere else and run it from there. We don’t use anything else other than whats in the directory to run, so that’s fine.

That’s a perfect hack, thanks malcolm

testing the Alembic SOP - playing a 150.000 vertices Alembic animation supersmooth on the GPU at 60fps without TD breaking a sweat is supercool ! :smiley:

Yeah! And thanks for the hack for multiple versions, I was just about to ask.

It seems I have some files who don’t load at all with the new version :cry:
Just reverted but will send your way shortly.

Though yes easier would be nice. I think I’ve said it before, I like the way it’s done in Houdini, where each version is a different entry in control panel/programs and features in windows.

Excited about new GPU based SOP stuff! Volumetric Pixelmapping here I come…

Also 13460 seems to ignore the “Check for Experimental Builds” option in the preferences and show “Update” in the corner regardless. :frowning:

Thanks for pointing this out, will have a fix for next build!

Variables and storage both got SUPER FAST. Wow.

I made this awhile ago to help folks think about cook time for various referencing methods, and it’s useful for comparison:

base_exploring_cooktimes.tox (1.99 KB)

Five second average:

088
exportCHOP 0.02455
pythonExpression 0.1102

hard_coded 0.03ms
storage 0.04388ms
variables 0.049ms
exports_constantCHOP 0.0165 ms
exports_tableDAT 0.0211 ms

099 - experimental
exportCHOP 0.02208
pythonExpression 0.07012

hard_coded 0.0284ms
storage 0.01647ms
variables 0.01319ms
exports_constantCHOP 0.01384 ms
exports_tableDAT 0.0211 ms

thanks Matt for those stats.

A default Noise CHOP (nothing connected), with Time Slice On, was always 0.04. When you set its Sample Rate parameter to a constant instead of me.time.rate, it would go to 0.02. This was for many nodes the case, such as Timer CHOP, Trigger ChOP, and all nodes who use an expression in Sample Rate.

Now in build 30400 the Noise CHOP is 0.02 by default, with still me.time.rate set as expression.
Also Timer CHOP looks twice as fast.

NICE

All super exciting - nice work!

Noticed that the Python optimisations had broken a few things in my projects.

When fetching a stored value from an expression in a constant CHOP it doesn’t update when the stored value changes. If I have the same expression in a DAT it cooks and updates just fine.
storageExample.toe (3.89 KB)

The bug with storage values not updating will be fixed in 2017.30680. Thanks for the report!

This experimental build brings the new S Curve CHOP, window spanning abilities for macOS High Sierra, Parameter COMP scope menus, and Audio Device OP parameters to deal with moving your project around to various machines with different audio devices.

You can also now right-click on any component in the address bar path as a shortcut to that component’s RMB context menu.

particlesGPU component in the Palette gets an update with a Birth parameter (only available on Windows OS due to GLSL limitations on macOS)

Last but certainly not least, many bug fixes from all your reports!

Remember we are very keen to hear how your projects run in this new optimized experimental branch, so please let us know how performance compares to the Official branch.

Download

Release Notes

Loving this new S-Curve CHOP!

I can tell already, however, that I’d love a way to specify different par values when setting up multiple channels. :slight_smile:

Nice, many cool features!

Looks like some python expressions are not being executed on each frame, for example when I’m accessing a Base operator x position using this code op('/project1/base1').worldTransform[0,3].

The transform access time dependency bug will be fixed in 2017.33080. Thanks for the report.