Reels (Instagram Reels, TikTok, YouTube Shorts, 1080x1920) assembled from the same templates as SocialStory, opened and closed by the logo bumper.
SivaliSocial.reel(el, { format: 'reel', lang, brand, scenes: [{ id, dur, data }], url, bumper })returns{ play(), stop(), seek(t), duration }. Timing is a pure function oft, so the same reel renders to MP4 frame by frame (seeassets/Motion/).- Timeline: bumper intro 2.6s (the intro played at 1.35x, lockup only) · scenes cross-fade over 0.4s · inside each scene every
data-aelement rises 46px and fades in over 0.7s, staggered 0.12s · orbit rings spin slowly and the Jakarta skyline animates (camera sway, travelling pulses) · bumper outro 3.2s withsivali.co, fade to black. - Scene length: 3.5 to 5s; one idea per scene; a reel of 3 scenes lands at 15 to 20s.
- Captions: burn in Indonesian subtitles when there is voice; keep them above the 280px bottom safe area.
- Music: instrumental, no lyrics, mixed under -18 LUFS speech. Keep the bumper's fade intact.
Rendered examples: sivali-reel-product-launch-9x16.mp4 (17.8s), sivali-reel-event-9x16.mp4 (17.3s), sivali-reel-podcast-audiogram-9x16.mp4 (19.3s). Load three.js r128 and kits/motion/sivali-city.js before the kit for the skyline.
Co-brand reels: SivaliSocial.coReel(partner) returns ready options (scenes cbdist, cbspot, cbwebinar, background and bumper theme in the partner's colours, no Sivali indigo or mint). Partners: canonical, nextcloud, coriolis, castai, trilio, netra. Rendered: sivali-cobrand-<partner>-reel-9x16.mp4 for Canonical, Nextcloud, Coriolis and Cast AI.