Stack Builder Tool

This tool helps you put flat shapes on top of each other to build structures like this:

Example of Boxshot books stack

To run the tool, pick its name from the Tools menu after selecting some shapes that you would like to stack up. Please note that Boxshot Home allows you to stack just one shape at a time, you can’t mix different books like on the image above. Professional and Ultimate editions support mixing different shapes in the same stack.

User Interface

The user interface of the tool is quite straightforward. The list at the left contains shapes to be stacked. You can arrange them by dragging items with the mouse. Boxshot repeats this list several times to build a stack.

Boxshot stack tool user interface


This section controls how many times to repeat the list and which seed number to use for disorder randomization. Use the Repeat the list parameter to set up the number of shapes in the stack.


Use the Step parameter to control the relative rotation of the items in the stack. The Disorder parameter allows you to add some noise to the stack by shifting the rotation angles by random values.


The same as above, but for offset, not rotations. You may shift each item in the stack relatively to a previous one. Like a stairs, or something like that. Use the Disorder parameter to add some noise here, as well.


Boxshot rebuilds the stack while you changing parameters, so you can move the tool window away from the scene to see the effect of your changes. Then click the OK button to commit your changes.

Stacks are not special shapes. Boxshot simply clones your shapes and adjust transformations, so you can edit separate shapes later by selecting them as usual.


You can do the same using JavaScript, the simple script is:

tools.stack(scene.selection, {});

It gives you a stack of 3 items of the currently selected object, if the object supports stacking. The first parameter is a node (or array of nodes), while the second parameter is a dictionary of stack properties:

  • repeats
  • seed
  • twistStep
  • twistDisorder
  • offsetX
  • offsetY
  • offsetDisorder

All the properties work exactly as in the user interface. Here is a more detailed sample:

var params = {
    repeats: 5,
    twistStep: 2,
    offsetDisorder: 0.1
tools.stack(scene.selection, params);