Slate Editor - 1.75 Update & Free for individuals!



The time has come to release the very long overdue 1.75 release for Slate, as well as a new website that should be a lot more reliable.
As part of this, I have made Slate completely free for individual users. (Commercial licenses still have to pay, it’s not cheap to keep up the vendors!)

There are far too many changes to list. I’ve taken everyone’s feedback over the past few years on board and will continue to do so, no matter how slowly.

Headline features include:

  • New UI system, with docking and many drag-drop quality of life features.
  • A flexible “Image Sequence” approach, rather than a static list of textures, allowing you to easily create multi-pass content
  • A large focus on custom shaders being enabled, allowing custom passes that can each use different shader passes whilst maintaining the same layout.

Updating is a little bit of a pain point. I have completely changed the update system to be much more user friendly. Unfortunately this also breaks the old method (through the app itself) so you will need to uninstall & install the new version.
The hope is, from now on, I can just publish updates and you wont need to touch an installer again. That, at least, was the motivation.

Now, the bad.
I broke the docs and really need to do some more :frowning:

Over the coming days and weeks I will begin to put out tutorial/showcase videos highlighting features, providing people can put up with my dulcet tones.

All the best!

Hey guys,
A little shameless here, but I have finally released Slate! It’s a one-stop for Texture Layouts, Optical Flow, and shader trickery for FX artists. I’m really excited to finally be releasing properly after all this time. I’m really hoping it can become something that’s regarded as a standard.

Here’s the docs:
What’s pretty crazy for pipelines is the command line interface - it can be hooked in to most DCC apps with Python or other scripting languages - as long as you can kick off a binary with arguments, you should be good to go :wink:

It also generates Optical Flow maps, and supports looping optical flow assets & will auto calculate your magic numbers for shaders!

Here’s the release notes [spoiler ] I finally added an Undo buffer. [/spoiler ]

It would be great if you have an interest to follow my company on Facebook and/or Twitter. I normally post development things on Twitter and if you are curious, there’s quite a few shots of old/heritage builds that I still find interesting!

I should also thank everyone who helped me during the prolonged Beta for Slate - everyone was a huge help with this! Here’s to the next one!

Mentioned at VFX Roundtable- Sandstorm Demo?

Awesome! Been waiting for this for a long time, now! Can’t wait to try it out. :slight_smile:




I’d just like to chime in and say that Slate is simply incredible. Thanks Alex! It’s already a comfortable part of my workflow.


NICE !! looks like unity try to make VFX package that might compete with it in the future :slight_smile:
by the way I think its gonna be a tool in my workflow for sure.

keep it up guys!


@dbruington Fantastic, that makes all the years worth it! Its great to hear when people find it useful.


Awesome! I’m moving this into resources so it can be found in the future.


Nice one Alex!

I was lucky enough to get to play around with an earlier beta, and have just purchased an individual license - looking forward to seeing this grow :smiley:


will it support HLSL as well? or no plan for implementing it?


Just OpenGL - it’s what the whole thing is built on.

If it helps I can try to write some wrappers or interpreters for common HLSL functions though such as float3 instead of vec3 etc. let me know if that’s useful.


I mostly use this page Article for syntax conversion.

but if I’m not wrong the code structure is also different right?


At the Filter/user-facing exposed level there’s not much difference at all. I’ll admit I’m more familiar with GLSL than I am HLSL, but I’ve used both before and there’s not much difference - at this entry point - afaik until we get in to some esoteric stuff - and as part of the UX I normally aim to wrap those in easy-to-use functions too.

If you ever do come across anything that’s massively different just let me know and I can always look to roll things in as needed.


thanks I will start playing around with it


Super cool. Playing around with the demo right now.

I did break it, super low chance bug where if you try to “File > Install Filters from File” on a filter file already in the Filters folder it will crash (IE I placed a sflt file in the Documents/Slateblahblah/Filters, then went to Install it.). :smile: I was trying to see if loading the file like that would fix the issue I was having.

I’m having trouble getting new filters to show up actually. Do I need to close the editor everytime I make a change to a filter’s file?

I have the following, but I don’t see a “Test” filter in the add filter browser.

      "filter" : {
         "Parameters" : {
            "category" : "Test",
            "description" : "Test",
            "name" : "Test",
            "shadercode" : " = oColor.w;"
         "UI_Parameters" : [

Did I miss something super obvious?


Let me patch up that crash, that should be easy to solve.

For the filter stuff I’ll message you here to solve it and update the post with what we find!


Also another small bug. Looks like transparent PNGs break the optical flow. The Optical Flow Preview works fine, but the actual output just is blank. This isn’t actually a big deal because no one should use transparent PNGs for anything like this. :slight_smile: Still I was confused for a bit.


Cool - so I’ve been talking with @ryan.dowlingsoka to solve these. Expanded usability in Optical Flow even more, allowing for custom coefficient weights when pulling motion vectors. For day to day use this will remain identical, but if you’ve got artwork that’s tonally similar and the difference/motion is in the alpha, this is a great way to force it to listen to specific channels.

The Filter example is my bad; a Filter file must be wrapped in square brackets as they are considered an array of objects. I’ve updated the documentation example of a simple filter file. In the future I’d quite like a dedicated Filter Creator, to streamline this process.

Once updated , updated builds should get prompted if you enabled automatic updating, or go to Help -> Check for Updates [which isn’t available in the demo]. I don’t know when the new build will drop but it shouldn’t be too long.


Congrats with the release Alex, very useful program!
I also have a small issue, when I try to even the size of the texture in every frame with “Transformation Panel -> Use Per-Tile” it works but every frame is offset a little bit compared to other frames, so the resulting animation is a little bit twitchy. May be I`m doing something wrong?


That sounds like I haven’t labelled them right!
So that part of the transformation panel controls dead space/cutting out images so only valid pixels are visible.

If it uses Per-Tile, then a bounding box of each tile will be calculated - so if it changes shape or volume then each tile will be offset slightly.

For sequential animations, try “Use Automatic Largest”. This should look through all your images, and find the biggest bounds of the entire sequence. Imagine if you stack up all your images on top of each other - that’s sort of how this will be calculated.

Additionally make sure you’re all set to look at the correct calculation - the default is Alpha, but if an image doesnt have Alpha this can get confusing.

I will try to make the default behaviour/factory default for this to be Use Automatic Largest; I’ve just noticed my default settings here default to Use Per-Tile. I’ll also throw on a (?) section for this.

I think Per-Tile is probably more of a sprite-packing kind of system, and Automatic Largest is more for animation sheets (which is what it will mostly be used for!)


Ah, ok, you’ve meant Per-tile for sprite packing. I thought I could resize some smaller frames of my flipbook so they would be the same size of larger ones. We did that kind of stuff in Nuke by animating crop function for a smoke blob flipbook. I think I will try manually offset and rescale all frames in Slate in order to get the same result.