원클릭으로
example-vue
Patterns for using Helios with Vue. Use when building compositions in a Vue environment.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Patterns for using Helios with Vue. Use when building compositions in a Vue environment.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Collection of agent skills for Helios video engine. Use when working with programmatic video creation, browser-native animations, or Helios compositions. Install individual skills by path for specific capabilities.
Core API for Helios video engine. Use when creating compositions, managing timeline state, controlling playback, or subscribing to frame updates. Covers Helios class instantiation, signals, animation helpers, and DOM synchronization.
Patterns for using Helios with Vanilla Canvas API. Use when building high-performance 2D/3D animations without frameworks.
Chart.js integration patterns for Helios. Use when creating animated data visualizations with Chart.js.
Learn how to use D3.js with Helios for data visualization. Use when creating charts, graphs, or data-driven animations.
Patterns for using Helios with Framer Motion. Use when you want to use Framer Motion's physics and transitions but need frame-perfect synchronization with Helios.
| name | example-vue |
| description | Patterns for using Helios with Vue. Use when building compositions in a Vue environment. |
Integrate Helios into Vue components using the Composition API, Refs, and Watchers.
useVideoFrame ComposableThis composable subscribes to Helios and provides a reactive frame reference.
// composables/useVideoFrame.js
import { ref, onUnmounted } from 'vue';
export function useVideoFrame(helios) {
const frame = ref(helios.currentFrame.peek());
const unsubscribe = helios.subscribe((state) => {
frame.value = state.currentFrame;
});
onUnmounted(() => {
unsubscribe();
});
return frame;
}
<script setup>
import { ref, watch, onMounted } from 'vue';
import { Helios } from '@helios-project/core';
import { useVideoFrame } from './composables/useVideoFrame';
// Initialize Singleton
const helios = new Helios({ duration: 10, fps: 30 });
helios.bindToDocumentTimeline();
if (typeof window !== 'undefined') window.helios = helios;
const canvasRef = ref(null);
const frame = useVideoFrame(helios);
// Draw Function
const draw = () => {
const canvas = canvasRef.value;
if (!canvas) return;
const ctx = canvas.getContext('2d');
// Draw logic
const progress = frame.value / (helios.duration * helios.fps);
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillRect(progress * canvas.width, 100, 50, 50);
};
// React to frame updates
watch(frame, draw);
// Initial Draw
onMounted(() => {
draw();
});
</script>
<template>
<canvas ref="canvasRef" width="1920" height="1080"></canvas>
</template>
For audio visualization, use a computed property to analyze audio data based on the reactive frame or currentTime.
// composables/useAudioData.js
import { computed, unref } from 'vue';
export function useAudioData(buffer, currentTime) {
return computed(() => {
const b = unref(buffer);
const t = unref(currentTime);
if (!b) return { rms: 0, waveform: [] };
const data = b.getChannelData(0);
const sampleRate = b.sampleRate;
const center = Math.floor(t * sampleRate);
// Analysis logic...
return { rms: 0.5, waveform: [] };
});
}
<script setup>
import { computed, watch } from 'vue';
import { useVideoFrame } from './composables/useVideoFrame';
import { useAudioData } from './composables/useAudioData';
const frame = useVideoFrame(helios);
const currentTime = computed(() => frame.value / helios.fps);
const audioData = useAudioData(buffer, currentTime);
watch(audioData, ({ rms, waveform }) => {
// Draw logic
});
</script>
examples/vue-canvas-animation/examples/vue-audio-visualization/