example-p5-animation

Learn how to use P5.js with Helios. Use when creating creative coding sketches or generative art.

45 stars

Best use case

example-p5-animation is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Learn how to use P5.js with Helios. Use when creating creative coding sketches or generative art.

Teams using example-p5-animation should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/p5/SKILL.md --create-dirs "https://raw.githubusercontent.com/BintzGavin/helios/main/.agents/skills/helios-skills/skills/examples/p5/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/p5/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How example-p5-animation Compares

Feature / Agentexample-p5-animationStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Learn how to use P5.js with Helios. Use when creating creative coding sketches or generative art.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# P5.js Animation

Integrate P5.js with Helios by using P5's **Instance Mode** and driving the `draw()` loop via Helios's state.

## Quick Start

```typescript
import { Helios } from '@helios-project/core';
import p5 from 'p5';

const helios = new Helios({ duration: 10, fps: 60 });

const sketch = (p: p5) => {
  p.setup = () => {
    p.createCanvas(1920, 1080);
    p.noLoop(); // Disable P5's internal loop
  };

  p.draw = () => {
    // Get time from Helios
    const { currentFrame, fps } = helios.getState();
    const time = currentFrame / fps;

    p.background(200);
    p.fill(255, 0, 0);

    // Animate based on time
    const x = time * 100;
    p.circle(x, 540, 50);
  };
};

new p5(sketch, document.getElementById('canvas-container'));

// Drive P5 from Helios
helios.subscribe(() => {
  // Manually trigger P5 redraw
  // Note: If you have a reference to the p5 instance, call instance.redraw()
  // Or simply put drawing logic here directly.
});
```

## Key Patterns

### Instance Mode
Always use Instance Mode (`new p5(sketch)`) instead of Global Mode. This prevents global variable pollution and ensures compatibility with module bundlers.

### Disable Internal Loop
Call `p.noLoop()` in `setup()`. P5's internal loop uses `requestAnimationFrame` which runs independently of Helios. By disabling it, you ensure P5 only draws when Helios updates.

### Reactive Drawing
Instead of relying on P5's `frameCount`, calculate positions based on `helios.getState().currentFrame`.

```typescript
helios.subscribe(() => {
   // Assuming 'myp5' is your instance
   myp5.redraw();
});
```

## Source
- Example: `examples/p5-canvas-animation/`

Related Skills

example-vue

45
from BintzGavin/helios

Patterns for using Helios with Vue. Use when building compositions in a Vue environment.

example-vanilla

45
from BintzGavin/helios

Patterns for using Helios with Vanilla JavaScript/TypeScript. Use when building compositions without a framework, or for simple DOM/Canvas manipulations.

example-threejs

45
from BintzGavin/helios

Patterns for using Helios with Three.js and React Three Fiber. Use when creating 3D animations or integrating WebGL scenes.

example-tailwind-animation

45
from BintzGavin/helios

Learn how to use Tailwind CSS with Helios. Use for styling compositions and animating with utility classes.

example-svelte

45
from BintzGavin/helios

Patterns for using Helios with Svelte. Use when building compositions in a Svelte environment, utilizing Svelte stores for reactive frame updates.

example-solid

45
from BintzGavin/helios

Patterns for using Helios with SolidJS. Use when building compositions in a SolidJS environment, utilizing signals for fine-grained reactivity.

example-signals-animation

45
from BintzGavin/helios

Learn how to use Helios Signals for high-performance, fine-grained reactivity. Use for complex dependency graphs or when optimizing performance.

example-react

45
from BintzGavin/helios

Patterns for using Helios with React. Use when building compositions in a React environment.

example-podcast-visualizer

45
from BintzGavin/helios

Workflow for creating a podcast visualizer with multi-track audio mixing and DOM-based synchronization. Use when building audio-reactive compositions.

example-pixi

45
from BintzGavin/helios

PixiJS integration patterns for Helios. Use when creating high-performance WebGL 2D animations with PixiJS.

example-lottie

45
from BintzGavin/helios

Lottie integration patterns for Helios. Use when rendering Lottie (Bodymovin) JSON animations synchronously with Helios.

example-gsap

45
from BintzGavin/helios

Patterns for using Helios with GSAP (GreenSock). Use when integrating GSAP timelines with the Helios timeline for precise scrubbing and rendering.