CrazyGLCrazyGLHomeExploreGitHubBrowse heroesLoading hero…← Back to gallery@crazygl/neon-fluid

Neon Fluid

GPU Eulerian fluid simulation (Stam 1999). Advected dye + velocity ping-pong textures with a Jacobi pressure solve give true divergence-free flow. Drag to inject momentum and colour; additive bloom on the dye field paints glowing smoke through the void.

ReactWebGLInteractiveFont#fluid#smoke#stable-fluids#stam-1999#neon#bloom#interactive#premium

Usage

import NeonFluid from '@crazygl/hero-neon-fluid';

export default function Page() {
  return (
    <NeonFluid
      colorA="#ff2d8a"
      colorB="#5cf2ff"
      colorC="#a26cff"
      glow={1.2}
    />
  );
}

Customise

  • StylebackgroundColor, the three-stop ink palette colorA/colorB/colorC, glow (bloom), and exposure (tonemap).
  • SimulationflowSpeed, dyeDissipation (how long colour lingers), velocityDissipation (how long momentum lingers), and ambientStir (idle background currents).
  • PointersplatForce (momentum a drag injects) and splatRadius (stroke size).

Best for

  • AI and creative-tool launch pages that want a living, generative feel
  • Premium, dark, cinematic product and brand sites
  • Music, nightlife, and event landing pages
  • Interactive portfolio and agency hero sections
01 · Install the package

One command, zero config.

npm install @crazygl/hero-neon-fluid
02 · Render the component

Import once, drop it in.

The component takes the same props you see in the live customizer on the right — every default ships poster-quality.

hero.tsx
import NeonFluid from '@crazygl/hero-neon-fluid';

export default function Landing() {
  return (
    <NeonFluid />
  );
}
03 · Use it in a page

SSR-safe by default.

The wrapper renders static HTML on the server and only initialises the canvas after hydration, so search engines see your copy.

page.tsx
// app/page.tsx — works in SSR-first frameworks (Next, Remix, Astro, etc.)
'use client';

import NeonFluid from '@crazygl/hero-neon-fluid';

export default function Page() {
  return (
    <section>
      <NeonFluid
        heading="Say hi."
        subheading="Your new hero."
      />
      <article>
        <h2>Welcome</h2>
        <p>Your content keeps its own voice below the hero.</p>
      </article>
    </section>
  );
}
You might also like

Similar heroes

Neon Tubes

Flexible neon tubes float and bend through space, forming abstract loops. Each tube glows with its own colour and bloom.

Floating Ink

Ink clouds drifting through water — domain-warped FBM noise, layered with transparency, slowly evolving so the silhouettes never repeat.

Typographic Fluid Simulation

A bold headline acts as a mask for a real-time colorful fluid. Domain-warped FBM noise advected over time + a pointer-driven velocity grid swirl two color fields inside the type while the background stays minimal. Move the cursor to inject velocity and color into the letters.

Neon Tube Typography

A glowing neon-tube headline that flickers on, settles into a slow plasma breath, sparks on hover, and bends its glow toward the cursor. Rendered to a HiDPI canvas with rounded tube strokes plus stacked blurred copies for true additive bloom.

Floating Neon Logo Sign

The logo becomes a 3D neon tube sign floating in a dark cinematic scene. Segments flicker on during boot, then settle into a gentle pulse. Smoke drifts behind; hovering brightens the tubes.

Neon CTA Dock

A cyberpunk control-dock hero: 1-3 CTA buttons rendered as thick glowing physical panels on a floating console, with periodic light pulses, hover halos, and click bursts. Real, clickable DOM buttons with a custom-painted WebGL glow under each one.
Live customizer

Neon Fluid

BackgroundColour AFirst palette stop — used on slow drags / low-hue splats.Colour BSecond palette stop — mid-hue.Colour CThird palette stop — used on fast strokes / high-hue splats.Glow1Bloom strength on the dye field.Exposure1.6Tonemap exposure. Below 1 reads moody; above 2 looks blown-out.Flow speed1Time-scale on the advection step.Dye persistence0.985Per-frame dye retention. 0.999 ≈ trails forever; 0.95 ≈ quick dissipation.Velocity persistence0.992Per-frame velocity retention. Higher = momentum hangs around.Ambient stir1Strength of the background wanderers that keep the flow alive when nobody is dragging.Drag force1How much momentum a pointer drag injects.Splat radius0.12Radius of each splat in sim-uv. Smaller = sharper strokes.Heading FontInteractivityWhich input drives the hero — try Scroll if you want the page to drive motion.
CrazyGL · crazygl.comProgrammable hero sections for real websites.