About the Infinite Workspace

Another of Shake's unique features since 2.0 is its Infinite Workspace. Shake's rendering is similar to a camera; whatever is exposed in the frame is rendered (and only that), no matter what its original resolution. What this means is that if you have a very small element, say 100x200 pixels, and you then pan it 50 pixels in X and 100 in Y, three-fourths of the image is outside of the 100x100 pixel frame. However, if you then place that over a 200x400 pixel frame, everything that previously went outside of the frame is "rediscovered" - you never lose data due to transformations.



Another benefit is if you transform an image, say with a pan of 10,000 pixels, and then pan it back to its original position with a second node, the image will be restored perfectly intact.

This powerful feature has almost no memory or calculation cost, and will, on the other hand, give you a significant boost in processing speed since you are not obliged to change your elements to a larger size when transforming them.

Another optimizing aspect of this camera analogy is that Shake only renders what is in the current frame. This means if you have a 20,000x20,000 pixel image, but have a crop window of 100x100 pixels, only those 100x100 pixels are considered, even if you do blurs and pans before the Crop. Again, only what is inside of the Crop window is calculated. This makes Shake ideally suited for higher-resolution functions like scrolling a large background plate under lower-resolution foreground elements.

The Infinite Workspace has several important workflow advantages:


  No Scale Scale, then Blur
spread = 0
spread = 1


To disable the effect of the Infinite Workspace, simply insert a Crop command and leave it at its default values (which don't change the resolution). This will cut off everything outside of the frame, replacing it with black pixels. The Viewport command is similar to the Crop, except it doesn't disable the Infinite Workspace.

Be very careful about Scaling elements up, applying an operation, and then zooming back down. When you apply the operation on the scaled element, even though your frame is small, it will still calculate everything outside of the frame *if* you scale it back down to fit in the frame.