Hero Templates

Shard Orbit

A giant crystal monolith turning on its axis in a glitter field, or a halo or helix of instanced shards lit by the pulsing core, drag-orbited beside left-aligned copy, fully GPU-driven.

Install

bun add ogl

Then copy 2 files into your project:

  • components/registry/shard-orbit/shard-orbit.tsx
  • hooks/use-animation-loop.ts

Props

PropTypeDefaultDescription
count"16" | "32" | "48" | "96" | "192""48"Shard count, as discrete steps — each value rebuilds the instance buffer.
formation"monolith" | "halo" | "helix""monolith"How the shards are arranged: one giant stone on its axis, a rigid halo around it, or a rising double helix.
shardColorstring (hex)"#e9d5ff"Lit face color of a shard.
coreColorstring (hex)"#a855f7"Core glow at the centre — and the light every shard catches.
backgroundColorstring (hex)"#04040a"Scene backdrop.
orbitRadiusnumber1.15Orbit radius, and the monolith's size.
spreadnumber0.35Halo only: height of the ripple running through the ring.
beltSpeednumber0.18Base angular speed of the orbiting shards.
ringSpeednumber1Halo only: how fast the ring orbits, as a multiple of the base speed.
tumbleSpeednumber1Per-shard tumbling rate.
corePulsenumber1Core pulse intensity.
glownumber1Core glow brightness — the bloom around the core and its light on the backdrop.
zoomnumber1Camera distance multiplier.
autoSpinbooleantrueIdle camera drift while nothing is held.

What It Demonstrates

Orbit
An element circling around another in a continuous path.
Stagger
Animate several items one after another with a small delay between each, creating a cascade.
Float
A gentle, continuous up-and-down drift that makes a static element feel alive and weightless.
Loop
An animation that repeats, a set number of times or infinitely.
Hardware acceleration
Animating transform and opacity lets the GPU keep motion smooth.

Related Components

Appears In