Rig
RigTemplateTwo robot arms fly in panel after panel and build each screen from the top down.
Showreel 1 of 14 · 1 to 5 images or videos
0:00 / 0:00
Settings
Template settings
Specific to this template. Every template also accepts the common settings (aspect ratio, background, corner radius).
| Setting | Type | Default | What it does |
|---|---|---|---|
scaleIntensity | number | 0.72 | Width of the assembled board as a fraction of the canvas. The column of media is centered in it. |
rowCount | number | 3 | Horizontal bands each media is cut into. One band is one placement beat, so this also sets how long a media takes to build. |
splitMode | enum | mixed | How many panels a row is cut into: "solo" (one full-width band, arms taking turns), "pair" (two, one arm each), "triple" (three — both arms set the outer panels, then one swings back out to its own side, collects the middle panel and flies it in to close the row), or "mixed" (a rotating pattern of all three).One of: mixed, solo, pair, triple |
buildOrder | enum | top-down | Order a screen's rows are filled: "top-down", "center-out", "outside-in", or "scatter". A page too tall for the camera to frame whole is always built top-down regardless, because the camera tracks the row being placed.One of: top-down, center-out, outside-in, scatter |
placeDuration | number | 1.1 | Seconds one band takes: the arm swings out, flies the panel in and seats it. |
rowPauseDuration | number | 0.14 | Seconds of stillness after a row lands, before the rig reaches for the next. 0 keeps the arms working continuously, which is how the reference rig runs. Not applied after a screen's last row, where the screen hold already covers the gap. |
screenHoldDuration | number | 1 | Seconds a finished screen is held — arms pulled clear of it — before the rig starts the next one. Also the window the camera has to travel between screens. |
holdDuration | number | 1.8 | The ending's still time: the camera's pull-back and rewind to the top take a little over half of it, and the rest is the pause it settles into at the bottom. The review travel down the finished column between them is sized from the media and is not part of this. Also sets how quickly the last arm clears the shot. |
armColor | color | #f0512e | Body colour of both arms. Joints and suction cups stay charcoal. |
armScale | number | 1 | Multiplier on the arms' tube thickness. Their reach is fixed by the canvas so they always cover the board. |
shadowIntensity | number | 0.35 | Strength of the shadow the arms and the in-flight panels cast (0 = none, 1 = strong). |
gridOpacity | number | 0.2 | Opacity of the faint alignment grid behind the board (0 = off). |
mediaFit | enum | natural | How each media becomes a block: "natural" (the block keeps the media's own aspect ratio, so a full-page screenshot builds tall and a section builds short) or "crop" (every block uses the same cropAspectRatio slot).One of: natural, crop |
imagePosition | number | 0 | Vertical crop anchor 0–100 (0 = top, 50 = center, 100 = bottom). Only applies when mediaFit is "crop". |
Request
Example request
A complete, working body for POST /api/v1/render with every default spelled out. Send only the settings you want to change.
POST /api/v1/render — Rig
{
"id": "RigTemplate",
"scale": 1,
"inputProps": {
"images": [
"https://picsum.photos/seed/reelfolio1/1280/800",
"https://picsum.photos/seed/reelfolio2/1280/800",
"https://picsum.photos/seed/reelfolio3/1280/800"
],
"settings": {
"backgroundColor": "#050505",
"backgroundType": "gradient",
"backgroundLibraryCategory": "raycast",
"backgroundLibraryImage": "https://cdn.reelfolio.io/reelfolio-background-library/raycast/blob.webp",
"blurAmount": 27,
"backgroundOpacity": 1,
"backgroundGradientStart": "#111111",
"backgroundGradientEnd": "#444444",
"backgroundGradientNoise": 0,
"borderRadius": 6,
"aspectRatio": "16:9",
"cropAspectRatio": "9:16",
"scaleIntensity": 0.72,
"rowCount": 3,
"splitMode": "mixed",
"buildOrder": "top-down",
"placeDuration": 1.1,
"rowPauseDuration": 0.14,
"screenHoldDuration": 1,
"holdDuration": 1.8,
"armColor": "#f0512e",
"armScale": 1,
"shadowIntensity": 0.35,
"gridOpacity": 0.2,
"mediaFit": "natural",
"imagePosition": 0
}
}
}