Skip to content
Back to skills

Getting Started

ASecurity

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.

  • 124 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 5, 2026
developmentjavascripttypescriptgojavabashreactvuenodeapi

Works with

  • cli
  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned November 5, 2026

npx -y skills add BintzGavin/helios --skill getting-started --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Getting Started?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Getting Started
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bintzgavin-getting-started/badge)](https://www.skillsdirectory.com/skills/bintzgavin-getting-started)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.
---

# Helios Getting Started

Quick installation and setup guide for Helios, a browser-native video engine for programmatic animation and rendering.

## Requirements

Before installing Helios, ensure you have:

- **Node.js**: v18 or higher (recommended)
- **npm** or **yarn** package manager
- **Chrome/Chromium**: Required for rendering (automatically installed by Playwright)

### FFmpeg (Automatically Included)

**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.

## Installation

Helios is modular—install only what you need.

### Core Package (Required)

The `@helios-project/core` package contains the engine logic, timing drivers, and animation helpers. This is required for any composition.

```bash
npm install @helios-project/core
```

### Renderer Package (Recommended)

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.

```bash
npm install @helios-project/renderer
```

### Quick Install (Core + Renderer)

For most use cases—creating MP4 videos—install both core and renderer:

```bash
npm install @helios-project/core @helios-project/renderer
```

### Player Package (Optional - For Preview/Development)

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.

```bash
npm install @helios-project/player
```

## Basic Setup

### 1. Create a Composition File

Create an HTML file (e.g., `composition.html`) that will serve as your composition:

```html
<!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>
```

### 2. Initialize Helios

In your JavaScript file (`src/main.js`), import and initialize Helios:

```typescript
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
})();
```

### 3. Use Standard CSS Animations

Your existing CSS animations work without modification:

```css
@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.

### 4. Render to Video

**This is the primary use case**—most users want to create MP4 files from their compositions.

Use the CLI to render your composition:

```bash
npx @helios-project/cli render ./composition.html -o output.mp4
```

Or use the Renderer package programmatically:

```typescript
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');
```

### 5. Preview with the Player (Optional)

If you installed the player package, use the `<helios-player>` web component for preview during development:

```html
<helios-player src="./composition.html" width="1920" height="1080"></helios-player>
<script type="module" src="@helios-project/player"></script>
```

## Framework Integration

Helios works with any framework or vanilla JavaScript:

**React:**
```typescript
import { useVideoFrame } from '@helios-project/core/react';

function MyComponent() {
  const { currentFrame } = useVideoFrame();
  return <div>Frame: {currentFrame}</div>;
}
```

**Vue:**
```typescript
import { useVideoFrame } from '@helios-project/core/vue';

const { currentFrame } = useVideoFrame();
```

**Svelte:**
```typescript
import { videoFrame } from '@helios-project/core/svelte';

$: currentFrame = $videoFrame.currentFrame;
```

**Vanilla JS:**
```typescript
helios.subscribe(state => {
  console.log(state.currentFrame);
});
```

## Checklist

When setting up a new Helios composition, ensure:

- [ ] **Core package installed**: `npm install @helios-project/core`
- [ ] **Renderer package installed** (for MP4 output): `npm install @helios-project/renderer`
- [ ] **Helios instance created**: `new Helios({ duration, fps })`
- [ ] **Window exposed**: `window.helios = helios` set
- [ ] **State subscribed**: `helios.subscribe(...)` used to trigger renders
- [ ] **Canvas/DOM ready**: Elements are sized correctly

## Next Steps

- See `helios/core` skill for detailed API reference
- See `helios/workflows/create-composition` for composition creation workflow
- See `helios/examples/react` or `helios/examples/vue` for framework-specific patterns
- See `helios/renderer` for rendering pipeline details

## Troubleshooting

**"Cannot find module '@helios-project/core'"**
- Ensure you've run `npm install @helios-project/core`
- Check that your bundler (Vite, Webpack, etc.) is configured correctly

**Animations not syncing**
- Ensure `autoSyncAnimations: true` is set in the Helios constructor
- Call `helios.bindToDocumentTimeline()` after creating the instance

**Renderer fails**
- FFmpeg is bundled with the renderer package, so no manual installation needed
- The first render downloads the headless Chromium that the renderer's Playwright version needs, once. Running `npx playwright install` yourself may fetch a build for a different version.
- If you need to use a custom FFmpeg path, set `ffmpegPath` in renderer options

**Player not detecting composition**
- Ensure `window.helios = helios` is set
- Verify the composition HTML file path is correct

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.