make-video
Make videos drawn with code: motion graphics, launch and explainer videos, animated shorts, animated charts and data, logo…
Installation and quick start guide for Helios video engine. Use when setting up a new Helios project, installing packages, or creating your first composition. Covers package installation, requirements, basic setup, and initial composition structure.
Claude Code
$ npx -y skills add BintzGavin/helios --skill getting-started --agent claude-code
Codex
$ npx skills add BintzGavin/helios --skill getting-started -a codex -y
Cursor
$ npx skills add BintzGavin/helios --skill getting-started -a cursor -y
Gemini CLI
$ npx skills add BintzGavin/helios --skill getting-started -a gemini-cli -y
GitHub Copilot
$ npx skills add BintzGavin/helios --skill getting-started -a github-copilot -y
OpenCode
$ npx skills add BintzGavin/helios --skill getting-started -a opencode -y
Windsurf
$ npx skills add BintzGavin/helios --skill getting-started -a windsurf -y
name: helios-getting-started description: Installation and quick start guide for Helios video engine. Use when setting up a new Helios project, installing packages, or creating your first composition. Covers package installation, requirements, basic setup, and initial composition structure.
Quick installation and setup guide for Helios, a browser-native video engine for programmatic animation and rendering.
Before installing Helios, ensure you have:
**Good news:** FFmpeg is automatically bundled with `@helios-project/renderer` via the `@ffmpeg-installer/ffmpeg` package. You don't need to install it manually!
The renderer package includes platform-specific FFmpeg binaries that work out of the box. If you prefer to use a system-installed FFmpeg instead, you can specify a custom path via the `ffmpegPath` option in the renderer configuration.
Helios is modular—install only what you need.
The `@helios-project/core` package contains the engine logic, timing drivers, and animation helpers. This is required for any composition.
npm install @helios-project/core
The `@helios-project/renderer` package is a Node.js library for rendering compositions to video files (MP4, etc.) using Headless Chrome and FFmpeg. **Most users want to create MP4 files**, so this is the recommended second package.
npm install @helios-project/renderer
For most use cases—creating MP4 videos—install both core and renderer:
npm install @helios-project/core @helios-project/renderer
The `@helios-project/player` package provides the `<helios-player>` web component for embedding compositions with playback controls. Useful for previewing compositions during development, but not required for rendering.
npm install @helios-project/player
Create an HTML file (e.g., `composition.html`) that will serve as your composition:
<!DOCTYPE html>
<html>
<head>
<title>My Composition</title>
<style>
body { margin: 0; overflow: hidden; background: black; }
canvas { display: block; width: 100vw; height: 100vh; }
</style>
</head>
<body>
<canvas id="canvas"></canvas>
<script type="module" src="./src/main.js"></script>
</body>
</html>In your JavaScript file (`src/main.js`), import and initialize Helios:
import { Helios } from '@helios-project/core';
// Create a 10-second video at 30fps
const helios = new Helios({
duration: 10, // seconds
fps: 30,
width: 1920,
height: 1080,
autoSyncAnimations: true // Sync CSS/WAAPI animations
});
// Optional: follow the page clock, so opening the file in a browser plays it.
helios.bindToDocumentTimeline();
// Required: the renderer and the player find and drive the composition through window.helios.
window.helios = helios;
// Subscribe to frame updates
helios.subscribe((state) => {
const { currentFrame, duration, fps } = state;
const progress = currentFrame / (duration * fps);
// Render your frame here
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
// Example: Draw something based on progress
ctx.fillStyle = 'white';
ctx.fillRect(0, 0, canvas.width * progress, canvas.height);
});
// Initial render
const state = helios.getState();
helios.subscribe((state) => {
// Render logic here
})();Your existing CSS animations work without modification:
@keyframes fadeIn {
from { opacity: 0; transform: scale(0.9); }
to { opacity: 1; transform: scale(1); }
}
.my-element {
animation: fadeIn 1s ease-out forwards;
}When you call `helios.seek(45)`, all CSS/WAAPI animations instantly update to frame 45.
**This is the primary use case**—most users want to create MP4 files from their compositions.
Use the CLI to render your composition:
npx @helios-project/cli render ./composition.html -o output.mp4
Or use the Renderer package programmatically:
import { Renderer } from '@helios-project/renderer';
import { pathToFileURL } from 'node:url';
const renderer = new Renderer({ width: 1920, height: 1080, fps: 30, durationInSeconds: 10, mode: 'dom' });
await renderer.render(pathToFileURL('./composition.html').href, './output.mp4');If you installed the player package, use the `<helios-player>` web component for preview during development:
<helios-player src="./composition.html" width="1920" height="1080"></helios-player> <script type="module" src="@helios-project/player"></script>
Helios works with any framework or vanilla JavaScript:
**React:**
import { useVideoFrame } from '@helios-project/core/react';
function MyComponent() {
const { currentFrame } = useVideoFrame();
return <div>Frame: {currentFrame}</div>;
}**Vue:**
import { useVideoFrame } from '@helios-project/core/vue';
const { currentFrame } = useVideoFrame();**Svelte:**
import { videoFrame } from '@helios-project/core/svelte';
$: currentFrame = $videoFrame.currentFrame;**Vanilla JS:**
helios.subscribe(state => {
console.log(state.currentFrame);
});When setting up a new Helios composition, ensure:
Programmatic video creation with web technologies you already know. CSS animations just work.
Make videos drawn with code: motion graphics, launch and explainer videos, animated shorts, animated charts and data, logo…
Core API for Helios video engine. Use when creating compositions, managing timeline state, controlling playback, or subscribing…
Story-first motion design philosophy for animated video: motion must earn its place; arc (establish, complicate, resolve); show…
End-to-end production plan template for feeling-first cinematic product promos: brief interrogation, 45s beat structure (cold…
Opt-in library of established visual styles for code-drawn Helios videos: style cards (colour rules, type, motion grammar, a…
Patterns for using Helios with Vanilla Canvas API. Use when building high-performance 2D/3D animations without frameworks.
Overlay doctrine for captions in HyperFrames videos — the caption MODEL (drop / rail / embed) and the rule that captions are an…
AI music generation with ACE-Step 1.5 — background music, vocal tracks, covers, stem extraction for video production. Use when…
This skill should be used when a Seedance 2.0 prompt contains generic AI filler, hollow superlatives, vague cinematic language,…