# Forest Environment Built with Three.js and WebGPU

**URL:** <https://discourse.threejs.org/t/forest-environment-built-with-three-js-and-webgpu/96126>\
**Category:** Showcase\
**Tags:** grass, environment-design, materials, shaders, geometry\
**Created:** [October 30, 2026, 7:27am UTC](https://discourse.threejs.org/t/forest-environment-built-with-three-js-and-webgpu/96126 "2026-10-30T07:27:05Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Muhammad\_Bilal](https://avatars.discourse-cdn.com/v4/letter/m/df705f/32.png) [@Muhammad\_Bilal](https://discourse.threejs.org/u/Muhammad_Bilal)\
**Post date:** [October 30, 2026, 7:27am UTC](https://discourse.threejs.org/t/forest-environment-built-with-three-js-and-webgpu/96126/1 "2026-10-30T07:27:05Z")

</div>

Hey everyone!

I’ve been building a forest environment in Three.js, focusing on terrain, vegetation, lighting, and performance.

The forest uses six different tree models generated with EZTree, repeated throughout the environment to create around 500 tree instances. The cabin, stones, broken logs, and small plants are 3D models sourced from Sketchfab. The grass is rendered using my own grass system, built for Three.js.

I’ve added quite a few details to the environment, including subtle movement in the tree leaves, falling leaves, spores floating in the air, broken logs, stones, and small plants.

The scene uses a post-processing pass with color grading, bloom, film grain, a vignette, and a subtle fisheye effect.

For the god rays, I’m using fake light shafts rather than a physically accurate volumetric effect. I used Claude to analyze top-down images of the map and identify gaps between trees, then placed the shafts around those openings. They fade away as you approach, and all the shafts are rendered using a single instanced mesh.

There’s also an ambient audio system with environmental sounds and separate footsteps for grass and mud. Each surface has five sound variations selected randomly to avoid repeating the same sound.

On a M1 Mac at maximum settings, it runs at around 27-35 FPS, depending on the area.

This specific video was recorded on an RTX 4080 at 4K resolution with 2x pixel density, effectively rendering at 8K. It runs at a locked 60 FPS due to my display.

I will post the link to try it very soon.

[![](https://img.youtube.com/vi/Lc6xMT4HEG0/maxresdefault.jpg "An Update on the forest scene I built with Three.js Grassworks") ](https://www.youtube.com/watch?v=Lc6xMT4HEG0)
