# Can't clone AbstractMesh?

**URL:** <https://forum.babylonjs.com/t/cant-clone-abstractmesh/30213>\
**Category:** Questions\
**Created:** [May 9, 2022, 11:03pm UTC](https://forum.babylonjs.com/t/cant-clone-abstractmesh/30213 "2022-05-09T23:03:30Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![afarchy](https://avatars.discourse-cdn.com/v4/letter/a/f4b2a3/32.png) [@afarchy](https://forum.babylonjs.com/u/afarchy)\
**Post date:** [May 9, 2022, 11:03pm UTC](https://forum.babylonjs.com/t/cant-clone-abstractmesh/30213/1 "2022-05-09T23:03:30Z")

</div>

Hello, I’m trying to clone a hierarchy in which the root is an abstract mesh. But it seems the clone() method of AbstractMesh is not implemented. I’m using an AbstractMesh instead of a TransformNode as the root because I want to add a physics imposter to the root. Is there another way?

---

<div class="post-metadata">

**Author:** ![carolhmj](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/carolhmj/32/25918_2.png) [@carolhmj](https://forum.babylonjs.com/u/carolhmj)\
**Post date:** [May 10, 2022, 1:31pm UTC](https://forum.babylonjs.com/t/cant-clone-abstractmesh/30213/3 "2022-05-10T13:31:50Z")

</div>

I would use a TransformNode and just cast it to AbstractMesh at the time of adding the impostor

---

<div class="post-metadata">

**Author:** ![afarchy](https://avatars.discourse-cdn.com/v4/letter/a/f4b2a3/32.png) [@afarchy](https://forum.babylonjs.com/u/afarchy)\
**Post date:** [May 11, 2022, 12:40am UTC](https://forum.babylonjs.com/t/cant-clone-abstractmesh/30213/4 "2022-05-11T00:40:17Z")

</div>

I’m confused by this answer – TransformNode won’t have relevant methods like physicsImposter and getBoundingInfo, and doesn’t implement IPhysicsEnabledObject. I don’t think a cast will make it work.

---

<div class="post-metadata">

**Author:** ![Blake](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/blake/32/21509_2.png) [@Blake](https://forum.babylonjs.com/u/Blake)\
**Post date:** [May 11, 2022, 1:02am UTC](https://forum.babylonjs.com/t/cant-clone-abstractmesh/30213/5 "2022-05-11T01:02:13Z")

</div>

Try using a Mesh for the root node instead, then you should be able to clone the whole hierarchy and the physics impostor all at once I think.

```auto
let rootNode = new BABYLON.Mesh("rootNode");

```

---

<div class="post-metadata">

**Author:** ![RaananW](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/raananw/32/28955_2.png) [@RaananW](https://forum.babylonjs.com/u/RaananW)\
**Post date:** [May 11, 2022, 10:49am UTC](https://forum.babylonjs.com/t/cant-clone-abstractmesh/30213/6 "2022-05-11T10:49:58Z")

</div>

Just wanted to add on top of that, an AbstractMesh cannot be cloned:

> <https://github.com/BabylonJS/Babylon.js/blob/master/packages/dev/core/src/Meshes/abstractMesh.ts#L1964>

---

<div class="post-metadata">

**Author:** ![carolhmj](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/carolhmj/32/25918_2.png) [@carolhmj](https://forum.babylonjs.com/u/carolhmj)\
**Post date:** [June 9, 2022, 4:36pm UTC](https://forum.babylonjs.com/t/cant-clone-abstractmesh/30213/7 "2022-06-09T16:36:43Z")

</div>

Hello just checking in, was your question answered? @afarchy

---

<div class="post-metadata">

**Author:** ![afarchy](https://avatars.discourse-cdn.com/v4/letter/a/f4b2a3/32.png) [@afarchy](https://forum.babylonjs.com/u/afarchy)\
**Post date:** [June 9, 2022, 7:30pm UTC](https://forum.babylonjs.com/t/cant-clone-abstractmesh/30213/8 "2022-06-09T19:30:35Z")

</div>

Thanks, using a Mesh works. Are there any negative performance implications to using Mesh over AbstractMesh?

---

<div class="post-metadata">

**Author:** ![carolhmj](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/carolhmj/32/25918_2.png) [@carolhmj](https://forum.babylonjs.com/u/carolhmj)\
**Post date:** [June 10, 2022, 5:33pm UTC](https://forum.babylonjs.com/t/cant-clone-abstractmesh/30213/9 "2022-06-10T17:33:36Z")

</div>

Not at all, the Mesh is intended to be the main construct to be used at all times 😃
