# SkinnedMesh memory leak

**URL:** <https://discourse.threejs.org/t/skinnedmesh-memory-leak/84971>\
**Category:** Questions\
**Tags:** geometry\
**Created:** [July 9, 2025, 3:23am UTC](https://discourse.threejs.org/t/skinnedmesh-memory-leak/84971 "2025-07-09T03:23:26Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![She-yh](https://avatars.discourse-cdn.com/v4/letter/s/cdc98d/32.png) [@She-yh](https://discourse.threejs.org/u/She-yh)\
**Post date:** [July 9, 2025, 3:23am UTC](https://discourse.threejs.org/t/skinnedmesh-memory-leak/84971/1 "2025-07-09T03:23:26Z")

</div>

Hi!  
Lately I found my program memory keep increasing. I use chrome devtools to check the memory, I found that skinnedMeshes objects are keep increasing during code running, but in my r3f code I only created 4 skinnedMeshes

 ![image](https://canada1.discourse-cdn.com/flex035/uploads/threejs/original/3X/d/a/da184032f3a32d05e3df242211b9fcb3bc2fc8bd.jpeg)  
However, as I traverse all objects, the skinnedMesh Objects number is always 4.

```javascript
const geometries = []; 
    scene.traverse(function (object) {
      if (object.type === 'SkinnedMesh') {
        geometries.push(object); 
      }
    });
    console.log('scene', geometries, scene.children);

```

Do you have any tools or methods to help me to locate this problem?

---

<div class="post-metadata">

**Author:** ![manthrax](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/manthrax/32/2596_2.png) [@manthrax](https://discourse.threejs.org/u/manthrax)\
**Post date:** [July 9, 2025, 5:35am UTC](https://discourse.threejs.org/t/skinnedmesh-memory-leak/84971/2 "2025-07-09T05:35:18Z")

</div>

Not enough info to diagnose. Reproduce in codepen or fiddle?

---

<div class="post-metadata">

**Author:** ![She-yh](https://avatars.discourse-cdn.com/v4/letter/s/cdc98d/32.png) [@She-yh](https://discourse.threejs.org/u/She-yh)\
**Post date:** [July 9, 2025, 6:48am UTC](https://discourse.threejs.org/t/skinnedmesh-memory-leak/84971/3 "2025-07-09T06:48:51Z")

</div>

I find that useMemo can solve this problem.

```javascript
const manualSkinnedMesh = useMemo(()=>{
    ......
    const mesh = new SkinnedMesh(pageGeometry, materials);
    return mesh;
},[])
<primitive
        object={manualSkinnedMesh}
        ref={skinnedMeshRef}
/>

```

---

<div class="post-metadata">

**Author:** ![manthrax](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.threejs.org/manthrax/32/2596_2.png) [@manthrax](https://discourse.threejs.org/u/manthrax)\
**Post date:** [July 9, 2025, 3:11pm UTC](https://discourse.threejs.org/t/skinnedmesh-memory-leak/84971/4 "2025-07-09T15:11:04Z")

</div>

mark your answer as solution! 😃
