Loading
Loading
Loading
mobile footer

Build the Interaction Layer Your Website is Missing.

Browse All EffectsBrowse All EffectsBrowse All EffectsUpgrade to ProUpgrade to ProUpgrade to Pro

70+ effects free, forever. No credit card.

© 2026 Hyperiux. All Rights Reserved.

AI Component CatalogueHey AI, Learn About Us
Platform

Vault

  • Documentation
  • Pricing
  • Blog
  • Community
  • NPM
  • MCP

Categories

  • All Effects
  • WebGL
  • Text
  • Backgrounds
  • Buttons
  • Carousels
  • Scroll
  • Components
  • Navigation
  • Cursor
  • Transitions
  • Loaders

Documents

  • Introduction
  • Installation
  • CLI
  • Dependencies
  • License

Legal

  • License Agreement
  • Terms of Service
  • Privacy Policy
  • Refund Policy
Socials
  • Twitter / X
  • LinkedIn
  • GitHub
  • Instagram
Contact Us
  • hello@hyperiux.com
New effects, in your inbox

Every new drop, plus the occasional behind-the-scenes build. No spam. Unsubscribe anytime.

All Effects
Featured ComponentsText AnimationsAnimated BackgroundsAnimated ButtonsCarousel EffectsScroll EffectsCreative ComponentsNavigationsCursor EffectsTransitionsLoadersWebGL & 3D Effects
Templates
IntroductionInstallationCLIDependenciesLicense
PricingBlogGithubNPMMCP Doc
Loading
Home/effects/Grassy Background

Grassy Background

A flowing 3D grass landscape where thousands of fine green blades sway in wind-like waves, creating a natural sense of depth and movement.

Three.js
DemoDemoDemo

Tune the Real Props

Background

Colour of the sky and the gaps between blades.

Shadow

Colour of the grass on slopes facing away from the light.

Grass

Main colour of the grass.

Highlight

Colour of the brightest grass on slopes facing the light.

Overview

Grassy Background transforms the screen into a rolling landscape of dense, animated grass. Fine green blades move in flowing waves, creating the appearance of wind travelling across an open field. Subtle changes in height and direction give the landscape a natural, continuously shifting texture.

The effect combines detailed vegetation with smooth, coordinated movement. Grass-covered hills extend towards a dark horizon, while variations in lighting and density reveal the contours of the terrain. The contrast creates an atmospheric environment that feels both minimal and immersive.

Built with Three.js WebGPU and TSL, Grassy Background brings nature-inspired motion into modern web interfaces. It works particularly well for creative portfolios, environmental brands, experimental websites, and visual experiences where organic movement plays a central role.


Usage Code

page
1import GrassyBackground from '@/components/effects/grassy-background'2 3const page = () => {4  return (5    <div className="h-screen w-full">6      <GrassyBackground />7    </div>8  )9}10 11export default page

Example Production Use Case

Consider a sustainability-focused technology company introducing its vision through a nature-inspired website. The homepage opens with a bold headline against a dark sky, while a field of animated grass moves gently beneath it.

The rolling landscape creates a visual connection to natural systems without relying on static photographs or conventional illustrations. Its restrained movement adds atmosphere while leaving the headline and primary call to action clearly visible.

The result is an immersive landing page that communicates the brand's relationship with nature through motion and texture.


Best Used For

  • Nature-inspired websites and environmental brands.
  • Creative agency portfolios and immersive landing pages.
  • Sustainability and green technology campaigns.
  • Digital art installations and experimental experiences.
  • Wellness and lifestyle websites with organic visual themes.
  • Cinematic hero sections with atmospheric landscapes.
  • Interactive storytelling and virtual environments.

Not For

Grassy Background is less suitable for dense dashboards, financial applications, checkout flows, and content-heavy interfaces where a detailed 3D landscape adds little functional value. Continuous animation can also compete with foreground information if the scene occupies too much visual attention.

Avoid combining it with several demanding WebGL effects on the same page. The landscape works best as a primary atmospheric element, supported by restrained typography and minimal competing movement.


Performance Budget

Detailed grass rendering can place significant demands on the GPU, particularly when many blades are visible simultaneously. Keep geometry and shader calculations efficient, control rendering resolution, and avoid unnecessary per-frame CPU work. Instancing is worth considering for repeated vegetation geometry where supported by the implementation.

On mobile and lower-powered devices, reduce grass density, simplify shading, or lower the rendering resolution when necessary. Pause offscreen animation and provide a static fallback when continuous rendering is unsupported or unnecessary.


Accessibility and Mobile

Keep headings, navigation, and interactive controls in accessible HTML above the 3D scene. Maintain sufficient contrast between foreground content and the changing green landscape, and ensure the decorative canvas does not interfere with keyboard navigation.

On mobile, adjust camera framing to preserve the rolling terrain without obscuring important content. Respect prefers-reduced-motion by pausing the wind animation or displaying a static landscape.


Common Mistakes

  • Excessive grass density that overloads the GPU.
  • Uniform blade movement that makes the landscape look artificial.
  • Repetitive wave patterns that weaken the natural appearance.
  • Poor camera positioning that removes depth from the terrain.
  • Heavy per-frame calculations that reduce animation smoothness.
  • Insufficient contrast between foreground content and grass.
  • Using desktop rendering settings on low-powered mobile devices.
  • Missing renderer fallback or reduced-motion support.

Changelog

Initial release

API Reference

PropTypeDefaultDescription
speednumber1How fast the wind moves through the grass and the hills slowly shift.
windnumber0.6How far the blades lean when gusts roll across the field.
hillsnumber1Height of the rolling hills. 0 gives a flat field.
terrainScalenumber1How many hills fit on screen. Lower values give wider, softer hills.
horizonnumber0.5Where the field sits on screen. Higher values tilt the view down so the grass fills more of it.
densitynumber1How many grass blades are drawn. Lower it for slower devices.
bladeHeightnumber1How tall each grass blade stands above the ground.
bladeWidthnumber1How thick each grass blade is at the root.
mouseInteractivebooleantrueGrass parts around the cursor and gets swept along as it moves.
mouseStrengthnumber1How far the grass bends away from the cursor. Needs Mouse on.
mouseSizenumber1Size of the patch of grass around the cursor that bends away. Needs Mouse on.
backgroundColorcolor#000000Colour of the sky and the gaps between blades.
shadowColorcolor#16260fColour of the grass on slopes facing away from the light.
grassColorcolor#446f22Main colour of the grass.
highlightColorcolor#b4ec5aColour of the brightest grass on slopes facing the light.

Questions, Answered.

What is Grassy Background?

Grassy Background is a Three.js animated background featuring a dense field of green grass moving in wind-like waves across a rolling landscape.

How does Grassy Background create realistic movement?

The visual effect combines detailed grass geometry with coordinated wave-like motion. The supplied TSL imports include noise, trigonometric functions, geometry-position access, and instance indexing, which can support procedural vegetation animation.

What technologies does Grassy Background use?

The supplied implementation uses React, Three.js through three/webgpu, and Three.js Shading Language through three/tsl. Its imports include Fn, instanceIndex, positionGeometry, varying, uniform, and noise functions.

Does Grassy Background require WebGPU?

No. It is written with Three.js's WebGPU build and TSL, but the renderer is created with forceWebGL, so it always renders through WebGL2 and runs in any browser that supports WebGL2.

Can I customise the grass colour, density, and wind movement?

Yes. Props cover the colours (backgroundColor, shadowColor, grassColor, highlightColor), the blades (density, bladeHeight, bladeWidth), the wind and speed, the landscape (hills, terrainScale, horizon), and how the pointer parts the grass (mouseInteractive, mouseStrength, mouseSize).

Can Grassy Background work with Next.js and mobile devices?

Yes. It is a client component, so it works in the Next.js App Router. It pauses while offscreen or in a hidden tab, renders at a lower pixel ratio on touch devices, and stills the wind when reduced motion is preferred. Lower density on smaller devices if needed.

Request a Custom Animation

Need a custom effect? Tell us what to create.

Related Effects

Explore All EffectsExplore All EffectsExplore All Effects
Moss Grid
Three.js@react-three/fiber@react-three/postprocessing

Moss Grid

Backgrounds

Creepy Background
Pro
Three.js

Creepy Background

Backgrounds

Neon Streak
Pro
WebGL Shader

Neon Streak

Backgrounds

Spider Particles Background
Three.js

Spider Particles Background

Backgrounds