# ParallelMeshBVHWorker

class in `three-mesh-bvh`

```js
import { ParallelMeshBVHWorker } from 'three-mesh-bvh';
```

A drop-in replacement for `GenerateMeshBVHWorker` that distributes BVH construction across
multiple Web Workers in parallel for faster builds on large geometry. Requires
`SharedArrayBuffer` support (cross-origin isolated context). Falls back to a single-threaded
`GenerateMeshBVHWorker` automatically if `SharedArrayBuffer` is unavailable.

Exposes the same API as `GenerateMeshBVHWorker`: `generate`, `dispose`, `running`, and
`maxWorkerCount`.

Example: Building a BVH for half a million triangles across worker threads

```js
import { AmbientLight, DirectionalLight, Mesh, MeshStandardMaterial, TorusKnotGeometry } from 'three';
import { BVHHelper } from 'three-mesh-bvh';
import { ParallelMeshBVHWorker } from 'three-mesh-bvh/worker';

// scene, camera and renderer are initialized here

const light = new DirectionalLight( 0xffffff, 3 );
light.position.set( 1, 1, 1 );
scene.add( light, new AmbientLight( 0xb0bec5, 1.5 ) );

const geometry = new TorusKnotGeometry( 1, 0.3, 500, 500 );
const worker = new ParallelMeshBVHWorker();
geometry.boundsTree = await worker.generate( geometry );

const mesh = new Mesh( geometry, new MeshStandardMaterial( { color: 0x4db6ac, roughness: 0.75 } ) );
const helper = new BVHHelper( mesh, 10 );
helper.traverse( object => object.frustumCulled = false );
scene.add( mesh, helper );
```
