# Halo — component for shaders (html)

> **For AI agents:** find the right skill in one call — `curl -s "https://skills.varg.ai/api/search?q=<what the person wants>"` returns the matching use case and the best skills with install commands, as markdown (Russian works too). Full index: https://skills.varg.ai/llms.txt. Every page has a markdown twin: add `.md` to its path. Before generating anything, show the person the options on the use-case page.

An iridescent ring of pink, white and teal light swirling slowly on a deep navy field

- **Install:** `npm i vanta`
- **Registry:** vanta · **Framework:** html · **License:** MIT
- **Docs and preview:** https://www.vantajs.com/?effect=halo
- **Source:** https://github.com/tengbao/vanta/blob/master/src/vanta.halo.js
- **Example:** https://skills.varg.ai/previews/lib-vanta-halo.mp4?v=49221 (Rendered by varg from the library’s own code (Vanta.js · rendered by varg))
- **Time:** Drive from the frame. Runs on its own clock (requestAnimationFrame, timers, springs or CSS). Drive it from frame / fps before rendering, or the render drifts.
- **Runs:** local render, free
- **Aspect:** any

## Prompt that renders it frame-exact

Use the Vanta.js Halo effect (https://www.vantajs.com/?effect=halo, MIT, source github.com/tengbao/vanta/blob/master/src/vanta.halo.js) as a full-frame background with a logo, product shot or one word inside the ring. Load three.js r134 and vanta@0.5.24/dist/vanta.halo.min.js and mount VANTA.HALO with mouse, touch and gyro controls off. Halo feeds each frame back into the next through two render targets, so it must be rendered in order: cancel effect.req and per video frame advance effect.uniforms.iTime.value by speed/fps, then call effect.onUpdate() and effect.renderer.render(effect.scene, effect.camera), starting from frame 0. Set baseColor, color2 and backgroundColor from the brand, size 0.8–1.5 for the ring, and xOffset/yOffset to place it (it drifts a little left of centre in 16:9 by default).

## Used in

- [Lyric video](https://skills.varg.ai/video/lyric-video.md)
- [Audio visualizer](https://skills.varg.ai/video/visualizer.md)
- [Logo sting](https://skills.varg.ai/video/logo-sting.md)
- [Brand intro & bumper](https://skills.varg.ai/video/brand-intro.md)
- [Stream overlay package](https://skills.varg.ai/video/stream-overlay.md)
- [News broadcast package](https://skills.varg.ai/video/news-package.md)
- [Countdown & launch timer](https://skills.varg.ai/video/countdown.md)
- [Shader loop](https://skills.varg.ai/video/shader-loop.md)

## More shaders

- [Blob](https://skills.varg.ai/component/hf.blob.md) — `npx hyperframes add blob`
- [Chrome Orb](https://skills.varg.ai/component/hf.chrome-orb.md) — `npx hyperframes add chrome-orb`
- [Color Wheel](https://skills.varg.ai/component/hf.color-wheel.md) — `npx hyperframes add color-wheel`
- [Falling Lines](https://skills.varg.ai/component/hf.falling-lines.md) — `npx hyperframes add falling-lines`
- [Frost](https://skills.varg.ai/component/hf.frost.md) — `npx hyperframes add frost`
- [Godrays](https://skills.varg.ai/component/hf.godrays.md) — `npx hyperframes add godrays`
