# readPly

Function

Source: https://github.com/playcanvas/splat-transform/blob/b6424a5b3b929695fbaafe738a995adb1240d675/src/lib/readers/read-ply.ts#L734

```ts
readPly(source: ReadSource, pool: ChunkDataPool): Promise<ChunkSource>
```

Open a gaussian-splat PLY as a [ChunkSource](https://api.playcanvas.com/splat-transform/interfaces/ChunkSource.md). The single public PLY reader.

Standard uncompressed binary PLY is read **lazily**: only the header is parsed
at open time, and each `read` seeks the requested chunk's byte range, pulls
just those records, and de-interleaves the requested layers into the caller's
buffers. Standard gaussian properties map to the `position`/`geometric`/`color`
layers; non-standard properties (e.g. normals) become `other`-layer extras.

Compressed PLY (the packed chunk+vertex format) is read lazily too: each chunk
is range-read and dequantized on demand (see `readCompressedChunked`). Either
way the data is labelled `Transform.PLY`.

The source must be `seekable` (range reads).

**Parameters**

- `source` ([`ReadSource`](https://api.playcanvas.com/splat-transform/interfaces/ReadSource.md)): A seekable read source over the PLY file.
- `pool` ([`ChunkDataPool`](https://api.playcanvas.com/splat-transform/interfaces/ChunkDataPool.md)): The chunk-data pool whose `chunkSize` defines the chunking granularity.

**Returns** `Promise<`[`ChunkSource`](https://api.playcanvas.com/splat-transform/interfaces/ChunkSource.md)`>`: A lazy `ChunkSource` over the file.
