# How do I activate the webGPU in a complex scene?

**URL:** <https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910>\
**Category:** Questions\
**Tags:** webgpu\
**Created:** [June 25, 2023, 1:58pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910 "2023-06-25T13:58:03Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![Geoffrey](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/geoffrey/32/33054_2.png) [@Geoffrey](https://forum.babylonjs.com/u/Geoffrey)\
**Post date:** [June 25, 2023, 1:58pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/1 "2023-06-25T13:58:03Z")

</div>

Hello, after unsuccessful searches on the forum for a solution, I’m asking the Babylon community for help. I’m not used to asking for help, but I’m really stuck…

I want to enable WebGPU in my project. Here’s some background:

- All assets have been modeled by myself on Blender. They are optimized for lightness, going from a high-poly scene of over 500MB on Blender to less than 20MB (including all assets, including LODs) on BabylonJS. All assets exported as GLTF
- Assets display and load correctly in my scene.
- I can move around my scene using a first-person view.
- The scene lags enormously, probably because 20MB is still very heavy to manage in WebGL.
- I want to activate the WebGPU, I’m using Chrome 114 (official build), I’m also testing on Chrome Canary and Edge (my scene displays and behaves “normally” in WebGL, at 6 FPS). My PC is equipped with an Nvidia RTX 3060, drivers up to date.
- Here’s what I try to do to activate webGPU, but without success, the scene doesn’t load. The code is over 100 lines long, so I’ll remove anything that doesn’t concern the engine and get straight to the point:

```auto
import * as BABYLON from "babylonjs";
import "babylonjs-loaders";
import "babylonjs-serializers";
import * as Lighting from "./Lighting";
import Display from "./Display";
import CameraController from "./Controller";
import '@babylonjs/core/Engines/WebGPU/Extensions/'

let engine;
let scene;
let cameraController;

async function initScene(canvas) {
    if (navigator.gpu) {
        engine = new BABYLON.WebGPUEngine(canvas);
        await engine.initAsync();
    } else {
        let engineOptions = { useWebGL2: true };
        engine = new BABYLON.Engine(canvas, true, engineOptions);
    }

    scene = new BABYLON.Scene(engine);
    Lighting.applyLighting(scene, BABYLON.Tools.ToRadians(115));

    cameraController = new CameraController(scene, canvas);
    cameraController.createCamera();

// various settings for the rendering pipeline

    qualityParameters();

    new Display(scene); 

    engine.runRenderLoop(() => {
        scene.render();
    });

    window.addEventListener("resize", onWindowResize);
    window.addEventListener('resize', function () {
        canvas.width = window.innerWidth;
        canvas.height = window.innerHeight;
        if (engine) {
            engine.resize();
        }
    });
}

window.onload = async function () {
    const canvas = document.getElementById("renderCanvas");
    canvas.width = window.innerWidth;
    canvas.height = window.innerHeight;
    await initScene(canvas);
};

window.onbeforeunload = function () {
    if (cameraController) {
        cameraController.dispose();
    }

    engine.dispose();
    window.removeEventListener("resize", onWindowResize);
};

function onWindowResize() {
    if (engine) {
        engine.resize();
        const camera = scene.getCameraByName("Camera");
        if (camera) {
            camera.aspectRatio = engine.getAspectRatio(camera);
            camera.fov = Math.min(window.innerWidth / window.innerHeight, 1);
            camera.fovMode = BABYLON.Camera.FOVMODE_HORIZONTAL_FIXED;
        }
    }
}

export { initScene };

```

I had made a first attempt to install the webGPU, there again I had only WebGL but at least my scene was displayed and I could move inside, despite the significant lag due to the mediocre framerate :

```auto
import * as BABYLON from "babylonjs";
import "babylonjs-loaders";
import "babylonjs-serializers";
import * as Lighting from "./Lighting";
import Display from "./Display";
import CameraController from "./Controller";

let engine;
let scene;
let cameraController;

function initScene(canvas) {
    let engineOptions = { useWebGL2: true };

    if (navigator.gpu) {
        engineOptions = { useWebGPU: true };
    }

    engine = new BABYLON.Engine(canvas, true, engineOptions);
    scene = new BABYLON.Scene(engine);

    Lighting.applyLighting(scene, BABYLON.Tools.ToRadians(115));

    cameraController = new CameraController(scene, canvas);
    cameraController.createCamera();

// various settings for the rendering pipeline

  qualityParameters();

  new Display(scene); // Utilisez Display.js pour upload et afficher les assets

  engine.runRenderLoop(() => {
      scene.render();
  });

    window.addEventListener("resize", onWindowResize);
    window.addEventListener('resize', function () {
      canvas.width = window.innerWidth;
      canvas.height = window.innerHeight;
      if (engine) {
        engine.resize();
      }
    });
}

window.onload = function () {
    const canvas = document.getElementById("renderCanvas");
    canvas.width = window.innerWidth;
    canvas.height = window.innerHeight;
    initScene(canvas);
};

window.onbeforeunload = function () {
    if (cameraController) {
        cameraController.dispose();
    }

    engine.dispose();
    window.removeEventListener("resize", onWindowResize);
};

function onWindowResize() {
    if (engine) {
        engine.resize();
        const camera = scene.getCameraByName("Camera");
        if (camera) {
            camera.aspectRatio = engine.getAspectRatio(camera);
            camera.fov = Math.min(window.innerWidth / window.innerHeight, 1);
            camera.fovMode = BABYLON.Camera.FOVMODE_HORIZONTAL_FIXED;
        }
    }
}

export { initScene };

```

Here are 2 screenshots of my BabylonJS scene and a render preview I made on blender, this is the result I’d like to approach. I’m just a 3D artist, not a developer.

Can anyone help me? Thank you very much

 ![preview_Blender](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/3X/5/3/539f78f81eeed81d5be82245586f0fab7f83c0aa.jpeg)  
 ![fps](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/3X/f/6/f68ec93aac7af66a34fa68b196673c2459478de2.jpeg)  
 ![shadow_issue](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/3X/2/9/292cd5f1ca89e1fb1d9d44432fdb78b4172be383.jpeg)

---

<div class="post-metadata">

**Author:** ![Dad72](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/dad72/32/13_2.png) [@Dad72](https://forum.babylonjs.com/u/Dad72)\
**Post date:** [June 25, 2023, 2:22pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/2 "2023-06-25T14:22:58Z")

</div>

What happens if you try to use only the WebGPU engine:

```auto
engine = new BABYLON.WebGPUEngine(canvas);
await engine.initAsync();

```

Your code should use the WebGPU engine if navigator.gpu is true and Chrome is up to date. It’s strange.

On the other hand in your second block of code, you do not initialize the WebGPU engine but WebGL2

For WebGL `new BABYLON.Engine()`  
For WebGPU `new BABYLON.WebGPUEngine()`

This code will not initialize WebGPU but WebGL

```auto
if (navigator.gpu) {
    engineOptions = { useWebGPU: true };
}
new BABYLON.Engine(canvas, true, engineOptions);

```

---

<div class="post-metadata">

**Author:** ![Geoffrey](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/geoffrey/32/33054_2.png) [@Geoffrey](https://forum.babylonjs.com/u/Geoffrey)\
**Post date:** [June 25, 2023, 2:48pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/3 "2023-06-25T14:48:42Z")

</div>

Thanks for your answer. Indeed, when I go back to the 1st code, which should activate WebGPU, the scene starts loading, a few assets, then abruptly stops loading. When I wait a full minute, the scene loads almost completely but freezes and displays a blank screen when I want to move within the scene. I then go to the console to see what’s going on, and there I have dozens and dozens of errors of this type (I’m only copying a few):

logger.ts:103 BJS - [16:40:37]: WebGPU uncaptured error (1): [object GPUValidationError] - [Texture “Texture2D\_opaqueSceneTexture\_1024x1024x1\_wmips\_rgba16float\_samples1”] usage (TextureUsage::(TextureBinding|RenderAttachment)) includes writable usage and another usage in the same synchronization scope.

- While validating render pass usage.

[Invalid CommandBuffer] is invalid.  
at ValidateObject (…..\third\_party\dawn\src\dawn\native\Device.cpp:689)  
at ValidateSubmit (…..\third\_party\dawn\src\dawn\native\Queue.cpp:444)

logger.ts:103 BJS - [16:44:18]: WebGPU uncaptured error (2): [object GPUValidationError] - [Invalid CommandBuffer] is invalid.  
at ValidateObject (…..\third\_party\dawn\src\dawn\native\Device.cpp:689)  
at ValidateSubmit (…..\third\_party\dawn\src\dawn\native\Queue.cpp:444)

Do you know if there is a simple project in the Playground that shows how to import and use webGPU in a project? I’ve seen plenty of demos that use webGPU, but without explicitly finding code that imports webGPU and then uses it in the scene.

---

<div class="post-metadata">

**Author:** ![shaderbytes](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/shaderbytes/32/174_2.png) [@shaderbytes](https://forum.babylonjs.com/u/shaderbytes)\
**Post date:** [June 25, 2023, 6:40pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/4 "2023-06-25T18:40:47Z")

</div>

> [@Geoffrey](#):
>
> 500MB on Blender to less than 20MB

this is not a very good means to measure the performance of a 3D scene. It can probably give a general indication that the file is smaller/lighter in a few regards yes , but your 20mb measurement doesnt say what makes up the file really.

In your screenshot of the inspector i see all the info that matters. 347 objects, about 5 million polygons , 644 draw calls , 198 materials and 266 textures.

This is not going to run well ever. I doubt webGPU will help to the extent you think it will. Is this project meant to be public facing, consumed by the average user?

---

<div class="post-metadata">

**Author:** ![Geoffrey](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/geoffrey/32/33054_2.png) [@Geoffrey](https://forum.babylonjs.com/u/Geoffrey)\
**Post date:** [June 25, 2023, 7:27pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/5 "2023-06-25T19:27:07Z")

</div>

For the moment, it’s a prototype that I’m using myself locally on my PC. _I’d like to activate the webGPU to see if there’s any difference in performance on such a scene._

Indeed, it’s extremely heavy, because in reality the Blender scene is only supposed to have less than 30 materials, and I don’t need more in BabylonJS. 266 textures is also excessive, in fact I was counting on 40/50 (with NRM textures, diffuse, etc., all included), no more. I therefore included console logs in my code to find errors, especially when assigning materials:

```auto
if (!(mesh instanceof InstancedMesh && sourceMesh)) {
              console.log("Unaffected mesh material name:", mesh.material.name);
            }
          }
        });

```

And in total, I have more than 500 errors in the console for “Unaffected mesh material name:”, and for the following, although the scene is displayed normally. I also had an initial problem importing GLTFs, some of which weren’t displayed, so I had to use a try catch to find them, which worked fine

```auto
loadAssets(assetNames) {
    assetNames.forEach((assetName) => {
      SceneLoader.ImportMesh("", "./assets/", `${assetName}.glb`, this.scene, (meshes) => {
        let model = meshes[0];
        console.log(`${assetName} mesh loaded:`, model);
        let allMeshes = model.getChildren(); // Access child meshes
        allMeshes.forEach((m) => {
          try {
            m.receiveShadows = true;
          } catch (error) {
            console.warn("Error setting receiveShadows for object:", m, error);
          }
          m.checkCollisions = true;
        });

```

I just flipped normals on blender to see these assets.

In the end, I have the impression that the scene is much heavier than it should be.

---

<div class="post-metadata">

**Author:** ![Dad72](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/dad72/32/13_2.png) [@Dad72](https://forum.babylonjs.com/u/Dad72)\
**Post date:** [June 25, 2023, 7:30pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/6 "2023-06-25T19:30:20Z")

</div>

When using WebGPU, you must ensure that the scene is created after the engine is loaded.  
I have already had several errors because the motor was not yet charged.

for exemple :

```auto
await engine.initAsync().then(() => {

    scene = new BABYLON.Scene(engine);

    Lighting.applyLighting(scene, BABYLON.Tools.ToRadians(115));

    cameraController = new CameraController(scene, canvas);
    cameraController.createCamera();

    // various settings for the rendering pipeline

    qualityParameters();

    new Display(scene); 

    engine.runRenderLoop(() => {
        scene.render();
    });

});

```

---

<div class="post-metadata">

**Author:** ![Geoffrey](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/geoffrey/32/33054_2.png) [@Geoffrey](https://forum.babylonjs.com/u/Geoffrey)\
**Post date:** [June 25, 2023, 7:38pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/7 "2023-06-25T19:38:22Z")

</div>

Thanks, I also noted what you said about the weight of my scene. What I’m going to do tonight is re-export my scene, I’ll see if the Blender to Babylon export addon works with my version, as previously I exported everything asset by asset. Then I’ll do the test again once all the materials have been installed or replaced by PBRs created on BabylonJS, and finally I’ll compare the results with the debug layer. Then I could try your solution, which will be much more convincing on a more accurate scene.

---

<div class="post-metadata">

**Author:** ![TooCalm](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/toocalm/32/3301_2.png) [@TooCalm](https://forum.babylonjs.com/u/TooCalm)\
**Post date:** [June 25, 2023, 11:09pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/8 "2023-06-25T23:09:09Z")

</div>

Please check inside browser’s console “navigator.gpu”. Ensure that it returns object (not undefined) on your app page(!)  
I had the same problem that webGPU engine is not created by babylon. [Strange problem with webGPU is supported check - #18 by TooCalm](https://forum.babylonjs.com/t/strange-problem-with-webgpu-is-supported-check/41679/18)  
And if it returns undefined ensure that you use https protocol or localhost URL

FYI you can create engine with method BABYLON.EngineFactory.CreateAsync(canvas, {antialias : true});  
It will create webGPU if possible webGL otherwise

---

<div class="post-metadata">

**Author:** ![Evgeni\_Popov](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/evgeni_popov/32/4432_2.png) [@Evgeni\_Popov](https://forum.babylonjs.com/u/Evgeni_Popov)\
**Post date:** [June 26, 2023, 12:17pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/9 "2023-06-26T12:17:39Z")

</div>

This error:

```plaintext
logger.ts:103 BJS - [16:40:37]: WebGPU uncaptured error (1): [object GPUValidationError] - 
[Texture “Texture2D_opaqueSceneTexture_1024x1024x1_wmips_rgba16float_samples1”] 
usage (TextureUsage::(TextureBinding|RenderAttachment)) includes writable usage 
and another usage in the same synchronization scope.

```

means that you are indeed using WebGPU. However, this error should not occur: are you able to share a link to your project so that we can have a deeper look?

> [@Geoffrey](#):
>
> I’d like to activate the webGPU to see if there’s any difference in performance on such a scene.

Unfortunately, you won’t see any significant difference just by switching to WebGPU. What you could try is enabling the snapshot rendering mode:

> **[WebGPU Snapshot Rendering | Babylon.js Documentation](https://doc.babylonjs.com/setup/support/webGPU/webGPUOptimization/webGPUSnapshotRendering)**
>
> Learn how to use snapshot rendering for faster scene display

---

<div class="post-metadata">

**Author:** ![Geoffrey](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/geoffrey/32/33054_2.png) [@Geoffrey](https://forum.babylonjs.com/u/Geoffrey)\
**Post date:** [June 26, 2023, 9:13pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/10 "2023-06-26T21:13:59Z")

</div>

Thanks for your feedback, it’s helped me understand that in addition to my concern about activating the webGPU, I had a major problem with the weight of my scene, which I’ve started to work on. It’s taking a bit longer than expected to lighten it, so I’m going ahead with it (a matter of a few days) and I’ll be back to let you know as soon as I’ve managed to activate the webGPU in the end, taking your advice into account. To be continued

---

<div class="post-metadata">

**Author:** ![Geoffrey](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/geoffrey/32/33054_2.png) [@Geoffrey](https://forum.babylonjs.com/u/Geoffrey)\
**Post date:** [July 14, 2023, 9:47am UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/11 "2023-07-14T09:47:54Z")

</div>

News from the project. Hurrah! It works, I’ve simplified the code, taking the project point by point:

- In the scene, I’ve imported the assets asynchronously with

```auto
await SceneLoader.ImportMeshAsync("", "./assets/", `${asset}.glb`, scene);

```

- I then exported the scene to the index.js component

```auto
import { createScene } from './Scene.js';

window.onload = async function() {
    const canvas = document.getElementById('renderCanvas');
    const engine = new BABYLON.WebGPUEngine(canvas);
    
    await engine.initAsync();
    const scene = await createScene(canvas, engine);

```

And it works, the webGPU is activated. I took the opportunity to review my assets. For example, I didn’t know that joining all the meshes into one before exporting the asset would reduce the number of draw calls. Well, joining all the meshes removes the instances and therefore makes the model heavier, but at least it reduces draw calls. I’m continuing to optimize the scene and will keep you posted on performance!

 ![that_s_cool](https://us1.discourse-cdn.com/flex024/uploads/babylonjs/original/3X/6/7/67f60db4fa8f2ce2fa1b63ec54192121e98ee47f.jpeg)

---

<div class="post-metadata">

**Author:** ![Geoffrey](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/geoffrey/32/33054_2.png) [@Geoffrey](https://forum.babylonjs.com/u/Geoffrey)\
**Post date:** [August 5, 2023, 8:41am UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/12 "2023-08-05T08:41:20Z")

</div>

Hi everyone,

I’ve finally managed to get the BabylonJS project on Github to facilitate sharing and collaboration. You can find it here: [GitHub - Geoff4vrs/share-babylonjs-scene](https://github.com/Geoff4vrs/share-babylonjs-scene)

I’m very grateful for all the help you’ve provided, and I’m glad to share my work in this example scene! Now that everything is in place, I’m seeking your help to improve the lighting, shadows, and performance of the scene. All codes and assets are in the repository.

To test the project, once you’ve cloned the repository, use `npm install` to install the dependencies, then `npm start` to launch the development server. You can find the component files in the `src` directory. To navigate in the scene, use the arrow keys.

I’m looking forward to your advice and suggestions. How can I improve the visual aspect and performance of the scene?

Thanks a lot!

---

<div class="post-metadata">

**Author:** ![Evgeni\_Popov](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/evgeni_popov/32/4432_2.png) [@Evgeni\_Popov](https://forum.babylonjs.com/u/Evgeni_Popov)\
**Post date:** [August 5, 2023, 9:13am UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/13 "2023-08-05T09:13:59Z")

</div>

You should provide a live link so that anyone can look at your project and give feedback / advice.

You can use [github.io](http://github.io) for this. This is what I did for the [WebGPU Ocean demo](https://github.com/Popov72/OceanDemo), where the [live link](https://popov72.github.io/OceanDemo/dist/index.html) points directly to a dist package built in the repo.

Please also note that my schedule is quite busy and I can’t devote too much time to general code or project review. I’ll be happy to answer any questions you might have, though!

As for performance optimization, there’s a lot of discussion on the subject in this forum, and these dedicated documentation pages:

- General optimization: [Optimizing Your Scene | Babylon.js Documentation](https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene)
- WebGPU optimization: [WebGPU Optimizations | Babylon.js Documentation](https://doc.babylonjs.com/setup/support/webGPU/webGPUOptimization)

---

<div class="post-metadata">

**Author:** ![Geoffrey](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/geoffrey/32/33054_2.png) [@Geoffrey](https://forum.babylonjs.com/u/Geoffrey)\
**Post date:** [August 5, 2023, 9:44am UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/14 "2023-08-05T09:44:07Z")

</div>

Thanks for the links and the information for [Github.io](http://Github.io), I didn’t know, it is helpful. I think that all I need is already here in the forum. Have a nice day!

---

<div class="post-metadata">

**Author:** ![Geoffrey](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/geoffrey/32/33054_2.png) [@Geoffrey](https://forum.babylonjs.com/u/Geoffrey)\
**Post date:** [December 10, 2024, 10:33pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/15 "2024-12-10T22:33:32Z")

</div>

By the way, good news 🙂 the project is finished and live 🚀

[https://metaverse.vorscine.com/](https://metaverse.vorscine.com/)

Thanks to everyone for your help and contributions, I truly appreciate it @Dad72 @shaderbytes @TooCalm @Evgeni_Popov . The performance is quite good on the production version, and the result exceeds my expectations! I’ve created a dedicated topic for what’s next:

> [@\[metaverse\] reboot | open-source=true](https://forum.babylonjs.com/t/metaverse-reboot-open-source-true/55298):
>
> Hello everyone, I know some of you are in a hurry, so here are the direct links to the projects. It’s simple: just your PC and an internet connection: Private Metaverse (Vorscine showroom) = [vorscine metaverse](https://metaverse.vorscine.com/) Public Metaverse, Suerna Protocol with Dynamic URLs = [suerna](https://www.suerna.com/center) Vorscine: the art of transitioning from a 2D website to a 3D universe, starting at the 15-second mark : [[Vorscine - metaverse] ](https://www.youtube.com/watch?v=OKuVrH4jihc) For those with a bit more time, let me introduce the project in 3 parts. I promise i…

Thanks again!

---

<div class="post-metadata">

**Author:** ![Dad72](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/dad72/32/13_2.png) [@Dad72](https://forum.babylonjs.com/u/Dad72)\
**Post date:** [December 10, 2024, 10:54pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/16 "2024-12-10T22:54:37Z")

</div>

Congratulations to you and good luck with your lovely project.

---

<div class="post-metadata">

**Author:** ![Geoffrey](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/geoffrey/32/33054_2.png) [@Geoffrey](https://forum.babylonjs.com/u/Geoffrey)\
**Post date:** [December 11, 2024, 9:56pm UTC](https://forum.babylonjs.com/t/how-do-i-activate-the-webgpu-in-a-complex-scene/41910/17 "2024-12-11T21:56:33Z")

</div>

Thank you for your help 🤝 I keep exploring new ideas and pushing this project forward. I’m happy to share this journey with everyone here!
