Remotion image gallery animations
Photo walls, moodboards and 3D card rails for Remotion — the shot that shows a body of work rather than one screen.
Some beats are not about one screen, they are about how much there is: a portfolio, a template library, a feed. These arrange your images in space and move the camera through them.
Orbit Gallery rings them around a centre mark, Moodboard Reveal flies a scatter in and lands on a hero, and Card Rail flicks them sideways on a tilted plane. All of them take your own images — pass real ones, because a gallery running snapcn's demo pictures is a video about snapcn.
The components
3 free Remotion image gallery animations, plus 3 in Pro. Each card plays its own scene — open one for its props, the source shadcn add writes, and a player you can scrub frame by frame.
Install
Each one is copied into your own Remotion project by the shadcn CLI, and the file it writes is yours to edit — there is no snapcn package to depend on. Set the registry up once, then add components by name:
$ pnpm dlx shadcn@latest add @snapcn/orbit-galleryNeeds an existing Remotion project and a components.json. Two-minute setup if this is your first snapcn component.
Swap the name for any other component on this page. Every prop has a working default, so it renders the moment it is mounted.
Frequently asked questions
How do I add a Remotion image gallery animation to a Remotion project?
Every Remotion image gallery animation here installs with the shadcn CLI — npx shadcn@latest add @snapcn/orbit-gallery copies Orbit Gallery into your project as a file you own, written against the plain Remotion API. There is no runtime package to keep installed.
Are snapcn's Remotion image gallery animations free?
3 of them are MIT-licensed and free to use commercially; the other 3 are part of snapcn Pro — $129 a year for the whole catalogue, or $249 once to own it outright.
Do I need Remotion to use a Remotion image gallery animation?
Yes. snapcn is a component registry, not a video framework — each component is a React component built on Remotion's useCurrentFrame() and interpolate(), so it renders inside an existing Remotion project.