원클릭으로
example-d3-animation
Learn how to use D3.js with Helios for data visualization. Use when creating charts, graphs, or data-driven animations.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Learn how to use D3.js with Helios for data visualization. Use when creating charts, graphs, or data-driven animations.
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.
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.
Patterns for using Helios with GSAP (GreenSock). Use when integrating GSAP timelines with the Helios timeline for precise scrubbing and rendering.
| name | example-d3-animation |
| description | Learn how to use D3.js with Helios for data visualization. Use when creating charts, graphs, or data-driven animations. |
Integrate D3.js with Helios by driving D3 scales and attributes using the Helios frame/time state.
import { Helios } from '@helios-project/core';
import * as d3 from 'd3';
const helios = new Helios({ duration: 5, fps: 60 });
const svg = d3.select('#chart');
// Data
const data = [10, 20, 30, 40, 50];
// Setup D3
const x = d3.scaleLinear().domain([0, 50]).range([0, 500]);
const bars = svg.selectAll('rect').data(data).enter().append('rect')
.attr('height', 20)
.attr('y', (d, i) => i * 25);
// Animate
helios.subscribe(({ currentFrame, fps }) => {
const time = currentFrame / fps;
// Update D3 attributes based on time
bars.attr('width', d => x(d) * Math.min(1, time));
});
Instead of using d3.transition(), use helios.subscribe() to update attributes on every frame. This ensures frame-perfect rendering and seeking.
helios.subscribe((state) => {
const t = state.currentFrame / (state.duration * state.fps); // 0 to 1
// Interpolate data
const interpolatedData = data.map(d => d * t);
// Re-bind and render
path.datum(interpolatedData).attr('d', lineGenerator);
});
d3.transition(). It relies on internal timers that won't sync with Helios's seek/render cycle. Always set attributes directly in the subscription callback.d3-force + Canvas API) instead of SVG for better performance.examples/d3-animation/