Content
pellicule avatar

pellicule

Pellicule is a Vue-native library for programmatic video generation, allowing you to render deterministic videos, animations, and motion graphics directly from Vue components.

Introduction

Pellicule is a powerful engine designed for developers who want to create video content programmatically using the Vue ecosystem. By treating video as a sequence of frames rather than a time-based timeline, Pellicule ensures deterministic rendering, meaning the same Vue component will always output the exact same visual frames. This makes it an ideal tool for generating dynamic social media assets, data visualizations, automated marketing videos, or programmatic video intros without the need for manual non-linear editing software.

It works by leveraging Vite for bundling, Playwright for headless browser-based frame capturing, and FFmpeg for high-quality video encoding. Whether you are building components in a standalone project or integrating them into existing Nuxt, Quasar, or Laravel applications, Pellicule provides a familiar developer experience using standard Vue reactivity, composables, and styling techniques.

  • Deterministic rendering engine that ensures consistent output across every execution.

  • Seamless integration with Vue 3 and standard web technologies like CSS, fonts, and SVG.

  • Rich library of animation utilities including interpolate for value mapping, sequencing for scene management, and easing functions for natural motion.

  • Built-in composables like useFrame and useVideoConfig to synchronize components with the render cycle.

  • Headless CLI interface for zero-config rendering and automated pipeline integration.

  • High flexibility to define video duration, frame rates, and dimensions dynamically.

  • Recommended for front-end developers familiar with Vue who need to automate visual content creation.

  • Avoid using non-deterministic browser APIs such as Date.now(), Math.random(), or asynchronous timers; all animations must be derived from the provided frame index.

  • Ensure FFmpeg is installed on your environment, as it is required for the final video encoding process.

  • Use the defineVideoConfig macro for local configuration overrides within your video components.

  • Ideal for use cases like dynamic lower thirds, programmatic data-driven video reporting, and templated motion design systems.

Repository Stats

Stars
67
Forks
5
Open Issues
8
Language
JavaScript
Default Branch
main
Sync Status
Idle
Last Synced
May 3, 2026, 09:23 PM
View on GitHub