# \#optimization

**URL:** https://discourse.threejs.org/tag/optimization/658.md

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

---

## [\[For Hire\] 3D Web & Three.js Developer — CGI, Asset Optimization & Interactive WebGL](https://discourse.threejs.org/t/for-hire-3d-web-three-js-developer-cgi-asset-optimization-interactive-webgl/95112)

<div class="topic-metadata">

**Author:** [@Dominique\_Hopman](https://discourse.threejs.org/u/Dominique_Hopman)\
**Replies:** 3\
**Last updated:** [October 19, 2026, 4:56am UTC](https://discourse.threejs.org/t/for-hire-3d-web-three-js-developer-cgi-asset-optimization-interactive-webgl/95112 "2026-10-19T04:56:55Z")

</div>

Hey all, I am currently open for freelance projects and collaboration. Instead of listing all my technical skills upfront, I’d love to let my work speak for itself! I have a background in game design and AR, and …

---

## [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…

---

## [Ancient Egypt in 3D](https://discourse.threejs.org/t/ancient-egypt-in-3d/93504)

<div class="topic-metadata">

**Author:** [@Aureon\_de\_Veyra](https://discourse.threejs.org/u/Aureon_de_Veyra)\
**Replies:** 8\
**Last updated:** [September 1, 2026, 8:19am UTC](https://discourse.threejs.org/t/ancient-egypt-in-3d/93504 "2026-09-01T08:19:37Z")

</div>

Greetings everyone, I’m Aureon, a solo creator, and I recently finished Ancient Egypt, an interactive 3D expedition. I spent 1,000+ hours researching, reconstructing, modelling, animating, writing, and building the exp…

---

## [ValiCred — Kinetic 3D Particle Morphing & WebGL Lore Scroller](https://discourse.threejs.org/t/valicred-kinetic-3d-particle-morphing-webgl-lore-scroller/93787)

<div class="topic-metadata">

**Author:** [@ValiCred](https://discourse.threejs.org/u/ValiCred)\
**Replies:** 3\
**Last updated:** [August 26, 2026, 3:02pm UTC](https://discourse.threejs.org/t/valicred-kinetic-3d-particle-morphing-webgl-lore-scroller/93787 "2026-08-26T15:02:14Z")

</div>

Hi everyone, I’d love to share a recent interactive 3D project built with Three.js: ValiCred. :glowing\_star: Live Demo: Link: https://www.valicred.com.au/lore (Also integrated across the Homepage and Core Services) …

---

## [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…

---

## [High-Performance Instanced Windmills](https://discourse.threejs.org/t/high-performance-instanced-windmills/89933)

<div class="topic-metadata">

**Author:** [@red-reddington](https://discourse.threejs.org/u/red-reddington)\
**Replies:** 3\
**Last updated:** [February 20, 2026, 2:31am UTC](https://discourse.threejs.org/t/high-performance-instanced-windmills/89933 "2026-02-20T02:31:33Z")

</div>

Inspired by a classic CodePen from @prisoner849, this demo renders 1000 windmills in a single scene using instanced meshes for minimal draw calls. Each blade features twist along its length and dynamic wobble per instanc…

---

## [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…

---

## [Weird Dotted / Pixel Grid Issue on iPhone 17 Pro Max (Safari) – R3F / Three.js](https://discourse.threejs.org/t/weird-dotted-pixel-grid-issue-on-iphone-17-pro-max-safari-r3f-three-js/89164)

<div class="topic-metadata">

**Author:** [@beanladder](https://discourse.threejs.org/u/beanladder)\
**Replies:** 0\
**Last updated:** [January 16, 2026, 6:45am UTC](https://discourse.threejs.org/t/weird-dotted-pixel-grid-issue-on-iphone-17-pro-max-safari-r3f-three-js/89164 "2026-01-16T06:45:03Z")

</div>

We’re building a story-driven 3D experience with React Three Fiber (Three.js underneath), made up of multiple cinematic shots. To keep things smooth and consistent, especially on mobile, we lock our visuals once a scene…

---

## [Three.js Interplanetary Virtual Experience Worlds?](https://discourse.threejs.org/t/three-js-interplanetary-virtual-experience-worlds/89128)

<div class="topic-metadata">

**Author:** [@Umbawa\_Sarosong](https://discourse.threejs.org/u/Umbawa_Sarosong)\
**Replies:** 1\
**Last updated:** [January 14, 2026, 7:56pm UTC](https://discourse.threejs.org/t/three-js-interplanetary-virtual-experience-worlds/89128 "2026-01-14T19:56:14Z")

</div>

Can we create a interplanetary worlds like SimonDev’s? This video fascinated me for a very long time, imagining what it would be like to traverse from land to space then warp speed to another planet then land on that pla…

---

## [R3F + three-pathfinding CPU bottleneck: how to truly optimize navmesh/pathfinding for many enemies](https://discourse.threejs.org/t/r3f-three-pathfinding-cpu-bottleneck-how-to-truly-optimize-navmesh-pathfinding-for-many-enemies/87162)

<div class="topic-metadata">

**Author:** [@OM\_Abhiwan](https://discourse.threejs.org/u/OM_Abhiwan)\
**Replies:** 4\
**Last updated:** [October 31, 2025, 4:41am UTC](https://discourse.threejs.org/t/r3f-three-pathfinding-cpu-bottleneck-how-to-truly-optimize-navmesh-pathfinding-for-many-enemies/87162 "2025-10-31T04:41:49Z")

</div>

I’m building a 3D Pac‑Man style game in React Three Fiber with @react-three/rapier physics and three-pathfinding navmesh. Visual performance is fine (draw calls under control, sprites batched), but CPU is the bottleneck …

---

## [Generate a mesh from 2d array with heights](https://discourse.threejs.org/t/generate-a-mesh-from-2d-array-with-heights/86558)

<div class="topic-metadata">

**Author:** [@Askkattor](https://discourse.threejs.org/u/Askkattor)\
**Replies:** 1\
**Last updated:** [August 27, 2025, 8:01am UTC](https://discourse.threejs.org/t/generate-a-mesh-from-2d-array-with-heights/86558 "2025-08-27T08:01:05Z")

</div>

We are currently hitting performance issues, when generating this grid map overlay for very big maps where rows are 100 000 \<= rows \<= 1 000 000 and cols as well. We generate one big bufferGeometry with edges to get this…

---

## [Best rendering optimization strategy for 25.000 hexagons?](https://discourse.threejs.org/t/best-rendering-optimization-strategy-for-25-000-hexagons/83602)

<div class="topic-metadata">

**Author:** [@Molleby](https://discourse.threejs.org/u/Molleby)\
**Replies:** 58\
**Last updated:** [June 24, 2025, 3:38pm UTC](https://discourse.threejs.org/t/best-rendering-optimization-strategy-for-25-000-hexagons/83602 "2025-06-24T15:38:14Z")

</div>

I have created a planet made of 25.000 hexagons using hexasphere.js. It works great on my gaming computer, but not so much on my basic laptop. I think there is a lot of room for optimization. I have been looking at the f…

---

## [In three js have Occlusion Culling?](https://discourse.threejs.org/t/in-three-js-have-occlusion-culling/15076)

<div class="topic-metadata">

**Author:** [@pagongamedev](https://discourse.threejs.org/u/pagongamedev)\
**Replies:** 8\
**Last updated:** [March 25, 2025, 8:56am UTC](https://discourse.threejs.org/t/in-three-js-have-occlusion-culling/15076 "2025-03-25T08:56:09Z")

</div>

in three js have Occlusion Culling ?! look like this.

---

## [Another Tree Shaking THREE.JS Thread](https://discourse.threejs.org/t/another-tree-shaking-three-js-thread/79954)

<div class="topic-metadata">

**Author:** [@ser1ze](https://discourse.threejs.org/u/ser1ze)\
**Replies:** 2\
**Last updated:** [March 23, 2025, 7:45am UTC](https://discourse.threejs.org/t/another-tree-shaking-three-js-thread/79954 "2025-03-23T07:45:59Z")

</div>

I’ve been trying to Tree Shake my vite project. Currently using this for my configuration file rollupOptions: { treeshake: { preset: "smallest", moduleSideEffects: false, …

---

## [PageSpeed Insights Optimization](https://discourse.threejs.org/t/pagespeed-insights-optimization/78616)

<div class="topic-metadata">

**Author:** [@whisp0092](https://discourse.threejs.org/u/whisp0092)\
**Replies:** 1\
**Last updated:** [February 25, 2025, 1:04pm UTC](https://discourse.threejs.org/t/pagespeed-insights-optimization/78616 "2025-02-25T13:04:31Z")

</div>

Im using vite project and rollup to bundle my project, it contains only 1 glb model and some basic camera, lightning setup. Even after the build process, there is pretty decent amount of unused js code. // vite.config.…

---

## [Some of my 3d Objects are displayed and some display white image  in my page](https://discourse.threejs.org/t/some-of-my-3d-objects-are-displayed-and-some-display-white-image-in-my-page/68837)

<div class="topic-metadata">

**Author:** [@Moemen12](https://discourse.threejs.org/u/Moemen12)\
**Replies:** 14\
**Last updated:** [February 7, 2025, 8:48am UTC](https://discourse.threejs.org/t/some-of-my-3d-objects-are-displayed-and-some-display-white-image-in-my-page/68837 "2025-02-07T08:48:39Z")

</div>

Hello guys, I’m using @react-three/drei and @react-three/fiber packages in my react app, now in my index page there are many rendered 3 objects , they’re displayed in laptop devices but my problem is with mobile , some o…

---

## [Optimizing hundreds of textures](https://discourse.threejs.org/t/optimizing-hundreds-of-textures/77125)

<div class="topic-metadata">

**Author:** [@dkv](https://discourse.threejs.org/u/dkv)\
**Replies:** 5\
**Last updated:** [January 28, 2025, 9:33pm UTC](https://discourse.threejs.org/t/optimizing-hundreds-of-textures/77125 "2025-01-28T21:33:21Z")

</div>

Hello guys, I need to use hundreds of textures for my project and apply each one to its corresponding plane geometry. What is the best way to optimize them, or is it possible in any way?

---

## [Three js tree shaking](https://discourse.threejs.org/t/three-js-tree-shaking/76728)

<div class="topic-metadata">

**Author:** [@ser1ze](https://discourse.threejs.org/u/ser1ze)\
**Replies:** 6\
**Last updated:** [January 21, 2025, 5:45pm UTC](https://discourse.threejs.org/t/three-js-tree-shaking/76728 "2025-01-21T17:45:53Z")

</div>

I wonder if its possible to use only classes i need, im now having issue with total blocking time on pagespeed insights its almost 32.000 ms, so that overall perfomance score is under 70 on desktops and under 45 on mobil…

---

## [Rotate every object different directions and speed](https://discourse.threejs.org/t/rotate-every-object-different-directions-and-speed/75067)

<div class="topic-metadata">

**Author:** [@volkan](https://discourse.threejs.org/u/volkan)\
**Replies:** 2\
**Last updated:** [December 11, 2024, 4:52pm UTC](https://discourse.threejs.org/t/rotate-every-object-different-directions-and-speed/75067 "2024-12-11T16:52:06Z")

</div>

Hi everyone, website I have this website developed. I want to rotate every chocolate to different rotations with different speeds with optimiziation. Can anyone help? function animate() { renderer.render( scene, camer…

---

## [Performance Optimization for Dynamic Lights in a Car Simulator Using Three.js](https://discourse.threejs.org/t/performance-optimization-for-dynamic-lights-in-a-car-simulator-using-three-js/71343)

<div class="topic-metadata">

**Author:** [@ovid.com.tr](https://discourse.threejs.org/u/ovid.com.tr)\
**Replies:** 7\
**Last updated:** [September 28, 2024, 6:52am UTC](https://discourse.threejs.org/t/performance-optimization-for-dynamic-lights-in-a-car-simulator-using-three-js/71343 "2024-09-28T06:52:30Z")

</div>

Hello everyone, I am currently working on a car simulator that utilizes dynamic lights, as demonstrated in this video: Dynamic Lights Car Simulator. However, I also have a version without dynamic lights, where all the l…

---

## [Large Ocean Plane Optimizations and Stylizations](https://discourse.threejs.org/t/large-ocean-plane-optimizations-and-stylizations/68987)

<div class="topic-metadata">

**Author:** [@Gezell](https://discourse.threejs.org/u/Gezell)\
**Replies:** 1\
**Last updated:** [August 6, 2024, 6:01am UTC](https://discourse.threejs.org/t/large-ocean-plane-optimizations-and-stylizations/68987 "2024-08-06T06:01:44Z")

</div>

I have a scene that uses a large plane to simulate an ocean (wind waker esque). Are there ways to optimize how this plane is rendered when far away from the camera? In the picture I have, the texture can clearly be seen …

---

## [Seeking optimization tips: big map with trees and rocks](https://discourse.threejs.org/t/seeking-optimization-tips-big-map-with-trees-and-rocks/68251)

<div class="topic-metadata">

**Author:** [@raptyk](https://discourse.threejs.org/u/raptyk)\
**Replies:** 6\
**Last updated:** [July 17, 2024, 12:38pm UTC](https://discourse.threejs.org/t/seeking-optimization-tips-big-map-with-trees-and-rocks/68251 "2024-07-17T12:38:24Z")

</div>

Hello! I’m just starting my journey with three.js (actually react fiber). I’m creating a test board that will be the basis of a map. I want to divide the board into individual fields. At the moment, a green box is displ…

---

## [About dynamic imposters](https://discourse.threejs.org/t/about-dynamic-imposters/27330)

<div class="topic-metadata">

**Author:** [@felixmariotto](https://discourse.threejs.org/u/felixmariotto)\
**Replies:** 9\
**Last updated:** [July 7, 2024, 11:42am UTC](https://discourse.threejs.org/t/about-dynamic-imposters/27330 "2024-07-07T11:42:44Z")

</div>

Hi all, I came across this very interesting article on dynamic imposters and decided that it was worth giving this technic a shot. Article TLDR : Dynamic imposters are 2D sprites generated at render time to impersona…

---

## [Optimization of large amounts (100-1000) of Skinned Meshes (CPU bottlenecks)](https://discourse.threejs.org/t/optimization-of-large-amounts-100-1000-of-skinned-meshes-cpu-bottlenecks/58196)

<div class="topic-metadata">

**Author:** [@DolphinIQ](https://discourse.threejs.org/u/DolphinIQ)\
**Replies:** 33\
**Last updated:** [June 29, 2024, 11:07pm UTC](https://discourse.threejs.org/t/optimization-of-large-amounts-100-1000-of-skinned-meshes-cpu-bottlenecks/58196 "2024-06-29T23:07:33Z")

</div>

Greetings everyone! :wave: :smiley: First off, this is going to be a bit of a long post, not about any specific error, but rather about optimization strategies for applications with a lot of animated characters. I’ll pr…

---

## [BufferGeometry mesh simplification in Three.js](https://discourse.threejs.org/t/buffergeometry-mesh-simplification-in-three-js/65919)

<div class="topic-metadata">

**Author:** [@JKLEE](https://discourse.threejs.org/u/JKLEE)\
**Replies:** 1\
**Last updated:** [May 25, 2024, 2:13am UTC](https://discourse.threejs.org/t/buffergeometry-mesh-simplification-in-three-js/65919 "2024-05-25T02:13:07Z")

</div>

Hi I am trying to simplify the geometry of child objects when loading a .glb file using the reference link below. The example using TorusKnotGeometry from the link works fine. However, it doesn’t work with the .glb fil…

---

## [Issue with optimizing my GLTF file FPS low](https://discourse.threejs.org/t/issue-with-optimizing-my-gltf-file-fps-low/65775)

<div class="topic-metadata">

**Author:** [@Jeroen](https://discourse.threejs.org/u/Jeroen)\
**Replies:** 6\
**Last updated:** [May 21, 2024, 5:03am UTC](https://discourse.threejs.org/t/issue-with-optimizing-my-gltf-file-fps-low/65775 "2024-05-21T05:03:07Z")

</div>

Hello all, I’m having issues with a GLTF model. I have been optimizing the model as I normally would, but for some reason the FPS of this model is really bad. I have a different model that I optimized which is a bigger…

---

## [Hiring for Web GL Engineer Expert!](https://discourse.threejs.org/t/hiring-for-web-gl-engineer-expert/63701)

<div class="topic-metadata">

**Author:** [@wsader](https://discourse.threejs.org/u/wsader)\
**Replies:** 1\
**Last updated:** [April 12, 2024, 1:03pm UTC](https://discourse.threejs.org/t/hiring-for-web-gl-engineer-expert/63701 "2024-04-12T13:03:57Z")

</div>

This position reports directly to the VP of Technology and the CTO of a large global company.strong text Contract to Hire position - Must be authorized to work in the U.S. If you apply, candidates WILLING TO RELOCATE t…

---

## [🔥 Only 4.1MB!  - Small, Lightweight, Highly Performant three.js/R3F/Drei Portfolio Website ](https://discourse.threejs.org/t/only-4-1mb-small-lightweight-highly-performant-three-js-r3f-drei-portfolio-website/56747)

<div class="topic-metadata">

**Author:** [@jdalangin](https://discourse.threejs.org/u/jdalangin)\
**Replies:** 4\
**Last updated:** [November 18, 2023, 1:32pm UTC](https://discourse.threejs.org/t/only-4-1mb-small-lightweight-highly-performant-three-js-r3f-drei-portfolio-website/56747 "2023-11-18T13:32:17Z")

</div>

URL: https://apps.praxxys.global/ Video URL Rationale We are a digital agency based in the Philippines :philippines:. One of the main challenges in South East Asia and other developing countries is that mobile intern…

---

## [Is Partial Texture Rendering Efficient for Memory Management?](https://discourse.threejs.org/t/is-partial-texture-rendering-efficient-for-memory-management/57826)

<div class="topic-metadata">

**Author:** [@michealmyers81](https://discourse.threejs.org/u/michealmyers81)\
**Replies:** 2\
**Last updated:** [November 6, 2023, 10:01pm UTC](https://discourse.threejs.org/t/is-partial-texture-rendering-efficient-for-memory-management/57826 "2023-11-06T22:01:06Z")

</div>

Can you achieve any performance boost if a portion of the texture is drawn onto the mesh? For example, passing a 50MB texture to a shader and then scaling it up so that only a part of it is drawn texture2D(sameImage,uv\*5…

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