docs / atmospheres / hehku
Hehku
one continuous ribbon of light heated like a filament, coiling slowly through the void with no ends and no seam. thin runs are cold violet; where the coil bunches and looks through itself the light gathers and blooms toward white.
intensity · roomrsc · client
provenance
authored in usvalayer
atmospheresintensity
room · the whole environment. nothing competes with itcomposition
behind a hero or a full section, children in normal flow above itone figure per view. it is the environment, not a decorationnever on a ground it cannot outshine. on savi it renders nothingnot a card or panel background. it needs a void to coil througha11y
the canvas isaria-hidden and pointer-transparent · reduced motion paints one still frame · with no WebGL2 the canvas never mountsjest-axedependencies
ogl · atmospheres-core from the same packagelive demo · try it out
one long coil
a single closed curve, cold where it runs thin and bright where it bunches
customize
speedwander and spin rate, keep it slow
opacityoverall strength, 0 to 1
modeauto reads the ground, or force emit / stain
coolthe thin cold runs
hotwhere the coil bunches and blooms
thicknessradius of the emitting core
glowfalloff, larger is thinner and colder
bloomhalo level counted as looking through coil
exposurebrightness of the ramp
advanced16
segmentscapsules in the chain, more is smoother
radius · majorsize of the torus the knot winds around
radius · minorthickness of that torus
winding · pturns about the axis, coprime with q
winding · qturns through the hole, coprime with p
scale · xwidth of the finished figure
scale · yheight of the finished figure
scale · zdepth of the finished figure
driftwander of the curve away from the pure knot
driftRatehow fast that wander and roll move
spinrevolutions per second about the vertical
tiltfixed lean of the whole figure, radians
disteye distance from the coil
focallens length, higher is flatter
offset · xlateral eye position, crops the coil
offset · yvertical eye position
usage
import { Hehku } from "@usva-ui/react/atmospheres/hehku";
<Hehku
speed={1}
>
<Hero />
</Hehku>props
| prop | type | default | notes |
|---|---|---|---|
| children | ReactNode | — | rendered above the coil, in normal flow. |
| speed | number | 1 | rate of the coil's wander and spin. it is meant to stay slow. |
| opacity | number | 1 | overall strength, 0 to 1. |
| mode | "emissive" | "absorptive" | resolved bg | forces the blend. by default a dark ground emits and a light ground stains. |
| colors | { cool?; hot? } | accent · accent-alt | the two ends of the heat ramp. cool sinks under accent, hot lifts accent-alt toward white. |
| params | Partial<FilamentParams> | FILAMENT_DEFAULTS | the curve: segments, radius, winding, scale, drift, driftRate, spin, tilt, thickness, glow. the windings must stay coprime integers or the knot degenerates into one circle traced several times. |
| view | Partial<FilamentView> | FILAMENT_VIEW | the camera and the ramp: dist, focal, offset, bloom, exposure. the offset holds the eye off-axis so the coil crops at the frame. |
get it
bun add @usva-ui/reactusage
import { Hehku } from "@usva-ui/react/atmospheres/hehku";
<Hehku className="min-h-svh">
<Hero />
</Hehku>