Let's begin with a simple shot - A 500x500 canvas with a single rectangle.
Follow along by opening Studio at this link. The page will already be populated with the following configuration -
A Simple Shot
{ ๐Notice the shot and parameters tabs below๐}
Learn more about Parameters
{
"duration": 1000,
"objects": [
{
"comment": "Background Layer",
"opacity": 1,
"kind": "rectangle",
"scale": 1,
"color": "{{backgroundColor}}",
"position": {
"x": 0,
"y": 0
},
"type": "shape",
"size": {
"h": "500",
"w": "500"
}
}
],
"size": {
"h": "500",
"w": "500"
}
}
{
"backgroundColor": {
"default": "#00d5e9",
"type": "color",
"title": "Background Color"
}
}
Understanding the basics
There's a few things happening in the shot. Let's first look at shots.json
above and understand the keys at the top level which are duration
, objects
and size
. Any valid shot would need all three.
Field | Description |
---|---|
duration | specifies in milliseconds how long a shot should last. Any value <= 1000 identifies the output of a shot as an image. To make the output a Video or a GIF use a value greater than 1000 |
objects | is an array of all the objects in the shot (duh). An object can be of type text, image or shape. In this sample shot there is a single shape object of |
size | The height and width of the canvas in pixels |
Detailed descriptions, defaults & available values of each property mentioned anywhere in the docs can be found in the Glossary
The output of the shot -


The output of this shot is this 500x500 blue rectangle
Understanding the rectangle
Now, let's focus on the rectangle. The JSON used is -
{
"comment": "Background Layer",
"opacity": 1,
"kind": "rectangle",
"scale": 1,
"color": "{{backgroundColor}}",
"position": {
"x": 0,
"y": 0
},
"type": "shape",
"size": {
"h": "500",
"w": "500"
}
}
Let's unpack and understand each field.
Field | Description |
---|---|
comment | This is just a field where you can name the object for your reference |
opacity | Defines the opacity of the rectangle. It is a floating point value that can go from 0 to 1. |
kind | The kind of shape. Values could be |
scale | Defines the scale of the rectangle. It is multiplied with the specified size to calculate the final height and width. You could zoom in or zoom out the rectangle using this field. |
color | Defines the color of the rectangle. You could use a hex code such as |
position | The coordinates of the rectangle with respect to the top left of the canvas. |
type | Type of object. Could be |
size | height and width of the object respectively |
Parameterization
In the previous section we saw that the value of the color was {{backgroundColor}}
. This is called a parameterized value. A parameter is a way to create a named variable. You can then change the value of the parameter in one place and the value will be automatically updated everywhere that the parameter is used.
In this case, if you switch to the parameters tab in studio you will see
{
"backgroundColor": {
"default": "#00d5e9",
"type": "color",
"title": "Background Color"
}
}
You can then use this parameter as the value of any field in the shot by referring to it as {{backgroundColor}}
.
Let's now unpack the fields in a parameter definition -
Field (in parameters config) | Description |
---|---|
default | The default value for the parameter. |
type | The type of the value being passed. |
title | The title that will show up when you export and expose this shot in a storyboard. |
Saving a Shot
๐พ Save and name/rename the shot. Tadaa ๐! you just made your first shot!


Updated 8 months ago
What's Next
Convert this shot into a storyboard to expose & use it for customisation
Shot to Storyboard |
Parametrisation |
Objects |