# \#performance

**URL:** https://discourse.threejs.org/tag/performance/71.md

[Latest](https://discourse.threejs.org/latest.md) · [Categories](https://discourse.threejs.org/categories.md) · [Tags](https://discourse.threejs.org/tags.md)

---

## [Abalone - A 3D Implementation of the Strategy Board Game Classic](https://discourse.threejs.org/t/abalone-a-3d-implementation-of-the-strategy-board-game-classic/91958)

<div class="topic-metadata">

**Author:** [@red-reddington](https://discourse.threejs.org/u/red-reddington)\
**Replies:** 1\
**Last updated:** [October 7, 2026, 7:44am UTC](https://discourse.threejs.org/t/abalone-a-3d-implementation-of-the-strategy-board-game-classic/91958 "2026-10-07T07:44:28Z")

</div>

Here’s my 3D implementation of a classic boardgame favorite Abalone in Three.js. I couldn’t find a version that focused heavily on visual presentation, so I took a crack at building my own. My goals were: A tactile, p…

---

## [ALIVE: a night farm, fully procedural, no assets](https://discourse.threejs.org/t/alive-a-night-farm-fully-procedural-no-assets/94679)

<div class="topic-metadata">

**Author:** [@red-reddington](https://discourse.threejs.org/u/red-reddington)\
**Replies:** 3\
**Last updated:** [October 2, 2026, 2:16pm UTC](https://discourse.threejs.org/t/alive-a-night-farm-fully-procedural-no-assets/94679 "2026-10-02T14:16:21Z")

</div>

CodePen | GitHub Pages | Source This started months ago. I needed something to get my head out of work, and instead of fidgeting aimlessly I decided to code, with zero plan and no aim whatsoever. I built a pig just for …

---

## [MeshCrunch : inspect, simplify and optimize large 3D assets for Three.js](https://discourse.threejs.org/t/meshcrunch-inspect-simplify-and-optimize-large-3d-assets-for-three-js/94165)

<div class="topic-metadata">

**Author:** [@Puneet\_Mishra](https://discourse.threejs.org/u/Puneet_Mishra)\
**Replies:** 4\
**Last updated:** [October 1, 2026, 2:15pm UTC](https://discourse.threejs.org/t/meshcrunch-inspect-simplify-and-optimize-large-3d-assets-for-three-js/94165 "2026-10-01T14:15:00Z")

</div>

I built MeshCrunch after repeatedly dealing with large 3D assets that were too heavy to ship efficiently in web viewers. It can simplify meshes, generate LODs, convert formats, and process 3D assets before they reach th…

---

## [Why a heavy three.js scene tanks PageSpeed, and it is not your JavaScript](https://discourse.threejs.org/t/why-a-heavy-three-js-scene-tanks-pagespeed-and-it-is-not-your-javascript/94734)

<div class="topic-metadata">

**Author:** [@GroDev](https://discourse.threejs.org/u/GroDev)\
**Replies:** 0\
**Last updated:** [September 28, 2026, 8:04am UTC](https://discourse.threejs.org/t/why-a-heavy-three-js-scene-tanks-pagespeed-and-it-is-not-your-javascript/94734 "2026-09-28T08:04:28Z")

</div>

Your scene runs at 60fps on your machine, but PageSpeed gives it a 48 and blames Total Blocking Time, usually pointing at gsap.min.js. I burned a full day on this once chasing the wrong thing, so here is the diagnosis, w…

---

## [TIKI DASH — Tropical Endless Runner](https://discourse.threejs.org/t/tiki-dash-tropical-endless-runner/94620)

<div class="topic-metadata">

**Author:** [@zeelib1](https://discourse.threejs.org/u/zeelib1)\
**Replies:** 0\
**Last updated:** [September 23, 2026, 10:19pm UTC](https://discourse.threejs.org/t/tiki-dash-tropical-endless-runner/94620 "2026-09-23T22:19:21Z")

</div>

Tiki Dash is a free browser endless runner (lanes, jump, slide, coconuts, launchers, caves, rivers), built with three.js r184, Vite and TypeScript. No install, no ads, works offline as a PWA. I built it solo; the target …

---

## [Versant: Skiing in the Alpine. (Procedural Terrain, Hand-Solved Kinematics, No Authored Animations)](https://discourse.threejs.org/t/versant-skiing-in-the-alpine-procedural-terrain-hand-solved-kinematics-no-authored-animations/93995)

<div class="topic-metadata">

**Author:** [@red-reddington](https://discourse.threejs.org/u/red-reddington)\
**Replies:** 3\
**Last updated:** [September 7, 2026, 2:19pm UTC](https://discourse.threejs.org/t/versant-skiing-in-the-alpine-procedural-terrain-hand-solved-kinematics-no-authored-animations/93995 "2026-09-07T14:19:18Z")

</div>

I wanted to build the feeling of skiing in the alpine. Going fast downhill with the mountains unfolding in front of you. I thought this would be quick, because I already had some of the core pieces: infinite terrain w…

---

## [How Can I Optimize Large 3D Gaussian Splat (.PLY) Scenes for Better Web Performance?](https://discourse.threejs.org/t/how-can-i-optimize-large-3d-gaussian-splat-ply-scenes-for-better-web-performance/93758)

<div class="topic-metadata">

**Author:** [@Esmael\_Hooseiny1](https://discourse.threejs.org/u/Esmael_Hooseiny1)\
**Replies:** 2\
**Last updated:** [August 26, 2026, 2:05am UTC](https://discourse.threejs.org/t/how-can-i-optimize-large-3d-gaussian-splat-ply-scenes-for-better-web-performance/93758 "2026-08-26T02:05:20Z")

</div>

Hi everyone, I’m working with large 3D Gaussian Splatting (3DGS) files, and I’m trying to figure out the best way to use them efficiently on the web, especially with Three.js. What are the best techniques for handling …

---

## [Lúmina: a personal memory archive where your memories orbit as a galaxy (three.js + Angular)](https://discourse.threejs.org/t/lumina-a-personal-memory-archive-where-your-memories-orbit-as-a-galaxy-three-js-angular/93436)

<div class="topic-metadata">

**Author:** [@valcar95](https://discourse.threejs.org/u/valcar95)\
**Replies:** 2\
**Last updated:** [August 13, 2026, 12:38am UTC](https://discourse.threejs.org/t/lumina-a-personal-memory-archive-where-your-memories-orbit-as-a-galaxy-three-js-angular/93436 "2026-08-13T00:38:25Z")

</div>

Lúmina — memory as a place you navigate: orbits, a gravitational lens, and a space for what you want to remember. Live: https://growingdesert.com Everything drifts toward disorder. What we call a person is, mostly, wha…

---

## [Three-mesh-bvh: A plugin for fast geometry raycasting and spatial queries!](https://discourse.threejs.org/t/three-mesh-bvh-a-plugin-for-fast-geometry-raycasting-and-spatial-queries/26394)

<div class="topic-metadata">

**Author:** [@gkjohnson](https://discourse.threejs.org/u/gkjohnson)\
**Replies:** 78\
**Last updated:** [July 12, 2026, 11:49pm UTC](https://discourse.threejs.org/t/three-mesh-bvh-a-plugin-for-fast-geometry-raycasting-and-spatial-queries/26394 "2026-07-12T23:49:47Z")

</div>

Hello! I wanted to share the three-mesh-bvh package I maintain which, among other things, can be used to greatly improve raycasting performance by multiple orders of magnitude against highly complex geometry as well as e…

---

## [Viewer3D — real-time 3D warehouse SCADA, ~30k pallets in vanilla three.js (no framework)](https://discourse.threejs.org/t/viewer3d-real-time-3d-warehouse-scada-30k-pallets-in-vanilla-three-js-no-framework/92418)

<div class="topic-metadata">

**Author:** [@Marcomon](https://discourse.threejs.org/u/Marcomon)\
**Replies:** 3\
**Last updated:** [June 29, 2026, 5:23pm UTC](https://discourse.threejs.org/t/viewer3d-real-time-3d-warehouse-scada-30k-pallets-in-vanilla-three-js-no-framework/92418 "2026-06-29T17:23:12Z")

</div>

Hi everyone! :waving\_hand: I’d like to share Viewer3D, a real-time 3D SCADA visualization for warehouse / factory automation layouts — roller & chain conveyors, racking, twin-column stacker cranes, ring-shuttles, AGVs a…

---

## [Eternal Ride: Infinite Terrain in Three.js with No LOD, No Seams](https://discourse.threejs.org/t/eternal-ride-infinite-terrain-in-three-js-with-no-lod-no-seams/91868)

<div class="topic-metadata">

**Author:** [@red-reddington](https://discourse.threejs.org/u/red-reddington)\
**Replies:** 3\
**Last updated:** [May 29, 2026, 5:04am UTC](https://discourse.threejs.org/t/eternal-ride-infinite-terrain-in-three-js-with-no-lod-no-seams/91868 "2026-05-29T05:04:39Z")

</div>

TL;DR - This post and demo show how to do truly massive infinite terrain in Three.js without the usual LOD stitching nightmare. The terrain is a pure math function evaluated per-vertex on the GPU and per-sample on the C…

---

## [Deathchase 3D: Three.js homage to the 1983 ZX Spectrum game classic](https://discourse.threejs.org/t/deathchase-3d-three-js-homage-to-the-1983-zx-spectrum-game-classic/91664)

<div class="topic-metadata">

**Author:** [@red-reddington](https://discourse.threejs.org/u/red-reddington)\
**Replies:** 5\
**Last updated:** [May 29, 2026, 5:03am UTC](https://discourse.threejs.org/t/deathchase-3d-three-js-homage-to-the-1983-zx-spectrum-game-classic/91664 "2026-05-29T05:03:40Z")

</div>

My Three.js homage to Deathchase by Mervyn Estcourt (Micromega, 1983), the pseudo-3D motorcycle chase that was a Spectrum smash hit and one of my earliest games. First-person cockpit view, you and two AI bikes weaving t…

---

## [ashMeteo: Simply 3D Meteo History](https://discourse.threejs.org/t/ashmeteo-simply-3d-meteo-history/91650)

<div class="topic-metadata">

**Author:** [@RaymondWee](https://discourse.threejs.org/u/RaymondWee)\
**Replies:** 5\
**Last updated:** [May 23, 2026, 2:56pm UTC](https://discourse.threejs.org/t/ashmeteo-simply-3d-meteo-history/91650 "2026-05-23T14:56:27Z")

</div>

ashMeteo is a weather data visualisation that turns 30 years of climate history into an interactive 3D landscape. Search any location on Earth and explore monthly temperature ranges and precipitation as a grid of gradien…

---

## [3d-Tiles-Renderer: A 3D Tiles implementation for three.js from NASA JPL](https://discourse.threejs.org/t/3d-tiles-renderer-a-3d-tiles-implementation-for-three-js-from-nasa-jpl/44136)

<div class="topic-metadata">

**Author:** [@gkjohnson](https://discourse.threejs.org/u/gkjohnson)\
**Replies:** 31\
**Last updated:** [May 22, 2026, 12:40am UTC](https://discourse.threejs.org/t/3d-tiles-renderer-a-3d-tiles-implementation-for-three-js-from-nasa-jpl/44136 "2026-05-22T00:40:31Z")

</div>

Hey guys! It’s been around for a while now but I wanted to share the 3d-tiles-renderer project I worked on and open sourced years ago from NASA JPL! For a couple of our Mars missions now we’ve been producing 3d tiles dat…

---

## [A central library of my Three.js demos (and two bonus games)](https://discourse.threejs.org/t/a-central-library-of-my-three-js-demos-and-two-bonus-games/91431)

<div class="topic-metadata">

**Author:** [@red-reddington](https://discourse.threejs.org/u/red-reddington)\
**Replies:** 0\
**Last updated:** [May 7, 2026, 4:19pm UTC](https://discourse.threejs.org/t/a-central-library-of-my-three-js-demos-and-two-bonus-games/91431 "2026-05-07T16:19:16Z")

</div>

Hey everyone, I’ve shared a number of Three.js demos here on the forum, usually one at a time as I finished them. I’ve been meaning to organize everything properly, so I finally put together a clean, browsable library o…

---

## [Procedural Instanced Forest - High Performance "Real" Trees](https://discourse.threejs.org/t/procedural-instanced-forest-high-performance-real-trees/88610)

<div class="topic-metadata">

**Author:** [@red-reddington](https://discourse.threejs.org/u/red-reddington)\
**Replies:** 7\
**Last updated:** [April 22, 2026, 12:00pm UTC](https://discourse.threejs.org/t/procedural-instanced-forest-high-performance-real-trees/88610 "2026-04-22T12:00:43Z")

</div>

Hey everyone! I built a GPU-friendly procedural forest system for Three.js that renders hundreds of fully 3D trees at real-time framerates. This fills a gap I noticed: there are plenty of examples showing either one bea…

---

## [MiniGame.com - High-Performance WebGL & Three.js Game Collection](https://discourse.threejs.org/t/minigame-com-high-performance-webgl-three-js-game-collection/90785)

<div class="topic-metadata">

**Author:** [@minigame](https://discourse.threejs.org/u/minigame)\
**Replies:** 4\
**Last updated:** [April 19, 2026, 5:25am UTC](https://discourse.threejs.org/t/minigame-com-high-performance-webgl-three-js-game-collection/90785 "2026-04-19T05:25:28Z")

</div>

Hi Three.js community! I’d like to share a project I’ve been working on: MiniGame.com. Our platform is a curated collection of instant-play games built with Three.js and WebGL. We’ve been focusing on several technical …

---

## [Problems with Performance on Mobile Devices](https://discourse.threejs.org/t/problems-with-performance-on-mobile-devices/23734)

<div class="topic-metadata">

**Author:** [@Polyhedron-Universe](https://discourse.threejs.org/u/Polyhedron-Universe)\
**Replies:** 3\
**Last updated:** [April 17, 2026, 2:50am UTC](https://discourse.threejs.org/t/problems-with-performance-on-mobile-devices/23734 "2026-04-17T02:50:29Z")

</div>

Hey! I’m Mau, and I’m developing a webpage for a client. The goal is to make the webpage multiplatform (Desktop and mobile, (IOS, Android, Windows) etc. We’re using Three.js and REACT. Right now, the webpage crashes w…

---

## [Expeditione: How I packed an Interactive 3D Encyclopedia into 1MB and 9 Draw Calls](https://discourse.threejs.org/t/expeditione-how-i-packed-an-interactive-3d-encyclopedia-into-1mb-and-9-draw-calls/90075)

<div class="topic-metadata">

**Author:** [@Aureon\_de\_Veyra](https://discourse.threejs.org/u/Aureon_de_Veyra)\
**Replies:** 6\
**Last updated:** [April 11, 2026, 7:06am UTC](https://discourse.threejs.org/t/expeditione-how-i-packed-an-interactive-3d-encyclopedia-into-1mb-and-9-draw-calls/90075 "2026-04-11T07:06:39Z")

</div>

Greetings everyone, I’m currently solo-building Expeditione ( https://expeditione.fun ), an Interactive 3D Encyclopedia on the web. The mission is simple : I want to make learning and the web entirely immersive and memo…

---

## [How to optimize compute shaders in webgpu for speed](https://discourse.threejs.org/t/how-to-optimize-compute-shaders-in-webgpu-for-speed/90109)

<div class="topic-metadata">

**Author:** [@Oserebameh](https://discourse.threejs.org/u/Oserebameh)\
**Replies:** 2\
**Last updated:** [March 3, 2026, 6:14am UTC](https://discourse.threejs.org/t/how-to-optimize-compute-shaders-in-webgpu-for-speed/90109 "2026-03-03T06:14:48Z")

</div>

Hey everyone! I just dropped a deep dive on a common bottleneck in WebGPU compute pipelines: Atomic Contention. While atomicMax is convenient for workgroup aggregations, it often serializes execution into a “single-file…

---

## [Changing pixelRatio based on fps , good or bad idea?](https://discourse.threejs.org/t/changing-pixelratio-based-on-fps-good-or-bad-idea/34563)

<div class="topic-metadata">

**Author:** [@orion\_prime](https://discourse.threejs.org/u/orion_prime)\
**Replies:** 21\
**Last updated:** [February 26, 2026, 6:18pm UTC](https://discourse.threejs.org/t/changing-pixelratio-based-on-fps-good-or-bad-idea/34563 "2026-02-26T18:18:36Z")

</div>

so using logic from “stats.js” i’ve managed to read fps value every second in the render loop and running the site on older/weaker phones, clearcoat material performance fps is around 27-30 fps with max pixelRatio but …

---

## [One Draw Call, Massive Crowd - Performance Engineering in Three.js](https://discourse.threejs.org/t/one-draw-call-massive-crowd-performance-engineering-in-three-js/89928)

<div class="topic-metadata">

**Author:** [@red-reddington](https://discourse.threejs.org/u/red-reddington)\
**Replies:** 0\
**Last updated:** [February 19, 2026, 5:33am UTC](https://discourse.threejs.org/t/one-draw-call-massive-crowd-performance-engineering-in-three-js/89928 "2026-02-19T05:33:26Z")

</div>

I’ve had this in the oven for quite a while. My goal was to build a clean, scalable high-count instanced crowd system in pure Three.js and vanilla JS. At its core, this was a performance engineering problem. Find Walter…

---

## [Best approach for magnetic snapping with hole validation using empty Object3D markers? Raycasting +Normals or](https://discourse.threejs.org/t/best-approach-for-magnetic-snapping-with-hole-validation-using-empty-object3d-markers-raycasting-normals-or/89792)

<div class="topic-metadata">

**Author:** [@Parisa\_Shahbazi](https://discourse.threejs.org/u/Parisa_Shahbazi)\
**Replies:** 4\
**Last updated:** [February 12, 2026, 12:43pm UTC](https://discourse.threejs.org/t/best-approach-for-magnetic-snapping-with-hole-validation-using-empty-object3d-markers-raycasting-normals-or/89792 "2026-02-12T12:43:47Z")

</div>

Project Summary I’m working on a 3D robotics construction (Robotic) platform for kids (ages 8-14) using Three.js. The project has been in development for a while, and I recently joined the team to implement new fea…

---

## [100K Procedural Rocks, Brutally Optimized](https://discourse.threejs.org/t/100k-procedural-rocks-brutally-optimized/89578)

<div class="topic-metadata">

**Author:** [@red-reddington](https://discourse.threejs.org/u/red-reddington)\
**Replies:** 1\
**Last updated:** [February 2, 2026, 8:58am UTC](https://discourse.threejs.org/t/100k-procedural-rocks-brutally-optimized/89578 "2026-02-02T08:58:57Z")

</div>

I searched online for procedural rocks and everything fell into two camps: low-poly stylized stuff, or gorgeous realistic shaders that would melt your GPU with a handful of instances. I needed something for a high-perfor…

---

## [\[WebGPU\] Significant performance drop and shadow quality regression in r182 vs WebGL r170](https://discourse.threejs.org/t/webgpu-significant-performance-drop-and-shadow-quality-regression-in-r182-vs-webgl-r170/89322)

<div class="topic-metadata">

**Author:** [@kang-Z-A](https://discourse.threejs.org/u/kang-Z-A)\
**Replies:** 3\
**Last updated:** [January 21, 2026, 4:44pm UTC](https://discourse.threejs.org/t/webgpu-significant-performance-drop-and-shadow-quality-regression-in-r182-vs-webgl-r170/89322 "2026-01-21T16:44:29Z")

</div>

I am exploring the migration of my project from WebGL (r170) to WebGPU (r182). I have observed unexpected performance degradation and rendering quality issues compared to the previous WebGL implementation. Specifically,…

---

## [Real model - Real Rendering in Threejs](https://discourse.threejs.org/t/real-model-real-rendering-in-threejs/69546)

<div class="topic-metadata">

**Author:** [@Parisa\_Shahbazi](https://discourse.threejs.org/u/Parisa_Shahbazi)\
**Replies:** 9\
**Last updated:** [January 8, 2026, 3:35am UTC](https://discourse.threejs.org/t/real-model-real-rendering-in-threejs/69546 "2026-01-08T03:35:40Z")

</div>

Hi. I hope you are well. I need a high-quality 3d model like this website. Do you have any models to share with me? In Sketchfab most of them are like cartoons. I want to know How we can have the best setting in thre…

---

## [High-Performance Ground Fog for Games (Three.js)](https://discourse.threejs.org/t/high-performance-ground-fog-for-games-three-js/88522)

<div class="topic-metadata">

**Author:** [@red-reddington](https://discourse.threejs.org/u/red-reddington)\
**Replies:** 5\
**Last updated:** [December 10, 2025, 3:53pm UTC](https://discourse.threejs.org/t/high-performance-ground-fog-for-games-three-js/88522 "2025-12-10T15:53:55Z")

</div>

Hey everyone! I built a GPU-friendly, height-based ground fog system for Three.js, designed for real-time games and FPS-style movement. It uses multi-octave FBM noise for subtle drifting effects, while staying extremely…

---

## [Renderer.isOccluded() returns null - is my setup correct?](https://discourse.threejs.org/t/renderer-isoccluded-returns-null-is-my-setup-correct/88356)

<div class="topic-metadata">

**Author:** [@jjmhalew](https://discourse.threejs.org/u/jjmhalew)\
**Replies:** 5\
**Last updated:** [December 3, 2025, 9:15pm UTC](https://discourse.threejs.org/t/renderer-isoccluded-returns-null-is-my-setup-correct/88356 "2025-12-03T21:15:56Z")

</div>

So currently I am trying to boost the performance of a scene with a building with hundreds of objects (I hope I will be able to showcase this soon). The geometry isn’t really detailed, and since buildings have tons of ob…

---

## [WebGL2RenderingContext.getProgramParameter freezes app](https://discourse.threejs.org/t/webgl2renderingcontext-getprogramparameter-freezes-app/88368)

<div class="topic-metadata">

**Author:** [@kalabedo](https://discourse.threejs.org/u/kalabedo)\
**Replies:** 7\
**Last updated:** [December 3, 2025, 6:48am UTC](https://discourse.threejs.org/t/webgl2renderingcontext-getprogramparameter-freezes-app/88368 "2025-12-03T06:48:35Z")

</div>

Hi there, last week i recognized that if i test my app on firefox there is a huge freeze in the start of the app. In chrome it is less noticeable but also there. I tested in both browsers and found the issue. The functi…

---

## [\[Showcase\] HekTek City v4: An Autonomous Cyberpunk Portfolio (R3F + AntD + Cloudflare R2)](https://discourse.threejs.org/t/showcase-hektek-city-v4-an-autonomous-cyberpunk-portfolio-r3f-antd-cloudflare-r2/88344)

<div class="topic-metadata">

**Author:** [@Hector\_Mosquera\_Turner](https://discourse.threejs.org/u/Hector_Mosquera_Turner)\
**Replies:** 0\
**Last updated:** [November 29, 2025, 8:15am UTC](https://discourse.threejs.org/t/showcase-hektek-city-v4-an-autonomous-cyberpunk-portfolio-r3f-antd-cloudflare-r2/88344 "2025-11-29T08:15:27Z")

</div>

Hi everyone! :waving\_hand: I wanted to share the latest release (v4.0 “Imoto”) of my interactive portfolio, HekTek City. As a Software Architect, I wanted to move away from the traditional static resume and build somet…

[Next page](https://discourse.threejs.org/tag/performance/71.md?match_all_tags=true&page=1&tags%5B%5D=performance)
