# SplatTransform API > The API reference of the `@playcanvas/splat-transform` 3.10.0 library: reading, processing and writing 3D Gaussian splat data in Node.js and the browser. The command-line tool is documented in the [SplatTransform index](https://developer.playcanvas.com/user-manual/splat-transform/llms.txt) of the User Manual, with a guide to using the library. ## Classes - [BufferedReadStream](https://api.playcanvas.com/splat-transform/classes/BufferedReadStream.md): ReadStream wrapper that adds read-ahead buffering to reduce async overhead. - [Column](https://api.playcanvas.com/splat-transform/classes/Column.md): A named column of typed array data within a DataTable. - [DataTable](https://api.playcanvas.com/splat-transform/classes/DataTable.md): A table of columnar data representing Gaussian splat properties. - [MemoryFileSystem](https://api.playcanvas.com/splat-transform/classes/MemoryFileSystem.md): A file system that writes files to in-memory buffers. - [MemoryReadFileSystem](https://api.playcanvas.com/splat-transform/classes/MemoryReadFileSystem.md): ReadFileSystem for reading from named memory buffers. - [ReadStream](https://api.playcanvas.com/splat-transform/classes/ReadStream.md): Abstract base class for streaming data from a source. - [TextRenderer](https://api.playcanvas.com/splat-transform/classes/TextRenderer.md): Default human-readable text renderer. - [Transform](https://api.playcanvas.com/splat-transform/classes/Transform.md): A source-to-engine coordinate transform comprising translation, rotation and uniform scale. - [UrlReadFileSystem](https://api.playcanvas.com/splat-transform/classes/UrlReadFileSystem.md): ReadFileSystem for reading from URLs using fetch. - [WorkerQueue](https://api.playcanvas.com/splat-transform/classes/WorkerQueue.md): A small cross-platform (Node + browser) worker pool running the CPU-heavy tasks defined in tasks.ts off the main thread. - [ZipFileSystem](https://api.playcanvas.com/splat-transform/classes/ZipFileSystem.md): A file system that writes files into a ZIP archive. - [ZipReadFileSystem](https://api.playcanvas.com/splat-transform/classes/ZipReadFileSystem.md): Virtual filesystem for reading files from a zip archive. ## Interfaces - [Bar](https://api.playcanvas.com/splat-transform/interfaces/Bar.md): Determinate progress bar handle. - [ChunkData](https://api.playcanvas.com/splat-transform/interfaces/ChunkData.md): A CPU-resident buffer holding one layer's data for one chunk of gaussians. - [ChunkDataPool](https://api.playcanvas.com/splat-transform/interfaces/ChunkDataPool.md): A pool-backed allocator for ChunkData buffers. - [ChunkSource](https://api.playcanvas.com/splat-transform/interfaces/ChunkSource.md): Lazy, chunked, layered view onto gaussian splat data. - [Group](https://api.playcanvas.com/splat-transform/interfaces/Group.md): Named, timed scope returned from Logger.group. - [ReadFileSystem](https://api.playcanvas.com/splat-transform/interfaces/ReadFileSystem.md): Interface for a file system that can create readable sources. - [ReadSource](https://api.playcanvas.com/splat-transform/interfaces/ReadSource.md): Interface representing a readable data source. - [Renderer](https://api.playcanvas.com/splat-transform/interfaces/Renderer.md): Renderer interface. - [TextRendererOptions](https://api.playcanvas.com/splat-transform/interfaces/TextRendererOptions.md): Output streams and optional memory-usage probe for TextRenderer. - [VoxelMetadata](https://api.playcanvas.com/splat-transform/interfaces/VoxelMetadata.md): Metadata for a voxel octree file. ## Type aliases - [CameraTrack](https://api.playcanvas.com/splat-transform/types/CameraTrack.md): A camera animation track evaluated in frame time. - [ChunkField](https://api.playcanvas.com/splat-transform/types/ChunkField.md): Description of a single named field within a layer's per-gaussian record. - [ChunkFieldMap](https://api.playcanvas.com/splat-transform/types/ChunkFieldMap.md): Map from field name to its layout within a chunk's stride. - [ChunkLayer](https://api.playcanvas.com/splat-transform/types/ChunkLayer.md): ChunkLayer identifiers — the disjoint storage tiers of a gaussian source. - [ChunkSourceMetadata](https://api.playcanvas.com/splat-transform/types/ChunkSourceMetadata.md): Static description of a ChunkSource's contents — what's in it and how it's laid out. - [CollisionMeshShape](https://api.playcanvas.com/splat-transform/types/CollisionMeshShape.md): Collision mesh shape generated alongside voxel output. - [ColumnType](https://api.playcanvas.com/splat-transform/types/ColumnType.md): String identifiers for typed array element types. - [Decimate](https://api.playcanvas.com/splat-transform/types/Decimate.md): Simplify splats to a target count using NanoGS progressive pairwise merging. - [DecimateAdaptiveSpill](https://api.playcanvas.com/splat-transform/types/DecimateAdaptiveSpill.md): Where intermediate generations spill when they exceed the in-memory budget. - [DecimateSpill](https://api.playcanvas.com/splat-transform/types/DecimateSpill.md): Where intermediate generations spill when they exceed the in-memory budget. - [DeviceCreator](https://api.playcanvas.com/splat-transform/types/DeviceCreator.md): A function that creates a PlayCanvas GraphicsDevice on demand. - [ExtraColumn](https://api.playcanvas.com/splat-transform/types/ExtraColumn.md): Descriptor for a single column in the other layer. - [FileInfo](https://api.playcanvas.com/splat-transform/types/FileInfo.md): Header-only structural metadata for a splat file — the lightweight counterpart to a full read, for... - [FilterBands](https://api.playcanvas.com/splat-transform/types/FilterBands.md): Remove spherical harmonic bands above a threshold. - [FilterBox](https://api.playcanvas.com/splat-transform/types/FilterBox.md): Keep only splats within a bounding box. - [FilterByValue](https://api.playcanvas.com/splat-transform/types/FilterByValue.md): Filter splats by comparing a column value. - [FilterCluster](https://api.playcanvas.com/splat-transform/types/FilterCluster.md): Filter Gaussians to keep only those in the connected cluster at a seed position. - [FilterFloaters](https://api.playcanvas.com/splat-transform/types/FilterFloaters.md): Remove Gaussians that don't meaningfully contribute to any solid voxel. - [FilterNaN](https://api.playcanvas.com/splat-transform/types/FilterNaN.md): Remove splats containing NaN or Infinity values. - [FilterSphere](https://api.playcanvas.com/splat-transform/types/FilterSphere.md): Keep only splats within a sphere. - [Info](https://api.playcanvas.com/splat-transform/types/Info.md): Print structural metadata (per-LOD counts, columns, SH bands) to the logger — the cheap, header-level counterpart to... - [InputFormat](https://api.playcanvas.com/splat-transform/types/InputFormat.md): Supported input file formats for Gaussian splat data. - [LayerLayout](https://api.playcanvas.com/splat-transform/types/LayerLayout.md): The byte stride and per-field map for a single layer of a source. - [LodStats](https://api.playcanvas.com/splat-transform/types/LodStats.md): Per-LOD column statistics: identity (lod, numGaussians), the column-name axis (columns), and the aligned measurement... - [LodStatsData](https://api.playcanvas.com/splat-transform/types/LodStatsData.md): A LOD's measurements in columnar (struct-of-arrays) form: every field is an array index-aligned with the owning... - [LogEvent](https://api.playcanvas.com/splat-transform/types/LogEvent.md): Semantic event delivered to a Renderer. - [Logger](https://api.playcanvas.com/splat-transform/types/Logger.md): Public type alias for the logger object. - [MessageKind](https://api.playcanvas.com/splat-transform/types/MessageKind.md): Severity tag for free-form messages (ordered descending by severity). - [MortonOrder](https://api.playcanvas.com/splat-transform/types/MortonOrder.md): Reorder splats by Morton code (Z-order curve) for improved spatial locality. - [Options](https://api.playcanvas.com/splat-transform/types/Options.md): Options for read/write operations. - [OutputFormat](https://api.playcanvas.com/splat-transform/types/OutputFormat.md): Supported output file formats for Gaussian splat data. - [Param](https://api.playcanvas.com/splat-transform/types/Param.md): Parameter passed to MJS generator scripts (see ReadFileOptions.params). - [ProcessAction](https://api.playcanvas.com/splat-transform/types/ProcessAction.md): A processing action to apply to splat data. - [ProcessOptions](https://api.playcanvas.com/splat-transform/types/ProcessOptions.md): Options for processing actions that require external resources. - [ProcessParam](https://api.playcanvas.com/splat-transform/types/ProcessParam.md): Parameter for .mjs generator modules. - [ProgressCallback](https://api.playcanvas.com/splat-transform/types/ProgressCallback.md): Progress callback for tracking read operations. - [ReadFileOptions](https://api.playcanvas.com/splat-transform/types/ReadFileOptions.md): Options for reading a Gaussian splat file. - [ReadRequest](https://api.playcanvas.com/splat-transform/types/ReadRequest.md): A read request to a ChunkSource, selecting source rows in one of two ways: - **Chunk** (chunkIndex): the contiguous... - [ReadTarget](https://api.playcanvas.com/splat-transform/types/ReadTarget.md): Fields common to every ReadRequest: which LOD to read and the destination buffers for whichever layers the caller... - [Rotate](https://api.playcanvas.com/splat-transform/types/Rotate.md): Rotate splats by Euler angles. - [Scale](https://api.playcanvas.com/splat-transform/types/Scale.md): Uniformly scale all splats. - [SHBands](https://api.playcanvas.com/splat-transform/types/SHBands.md): Spherical harmonics band count. - [SourceStats](https://api.playcanvas.com/splat-transform/types/SourceStats.md): Statistics for an entire source: one LodStats per LOD level. - [SplatModel](https://api.playcanvas.com/splat-transform/types/SplatModel.md): How a scene was trained, and therefore how a renderer must evaluate it. - [Stats](https://api.playcanvas.com/splat-transform/types/Stats.md): Print per-LOD, per-column statistics (with the structural info block) to the logger — the data-level counterpart to... - [TrackPose](https://api.playcanvas.com/splat-transform/types/TrackPose.md): A camera pose on a track: position, look-at target, vertical fov in degrees and, optionally, a unit up vector (the... - [Translate](https://api.playcanvas.com/splat-transform/types/Translate.md): Translate splats by a 3D vector offset. - [TypedArray](https://api.playcanvas.com/splat-transform/types/TypedArray.md): Union of all typed array types supported for column data. - [Verbosity](https://api.playcanvas.com/splat-transform/types/Verbosity.md): Verbosity level controlling which messages reach the renderer. - [WriteImageOptions](https://api.playcanvas.com/splat-transform/types/WriteImageOptions.md): Options for writing a rendered splat image. - [WriteSourceOptions](https://api.playcanvas.com/splat-transform/types/WriteSourceOptions.md): Options for writeSource. - [WriteVoxelOptions](https://api.playcanvas.com/splat-transform/types/WriteVoxelOptions.md): Options for writing a voxel octree file. - [ZipEntry](https://api.playcanvas.com/splat-transform/types/ZipEntry.md): Metadata for a zip file entry. ## Functions - [bakeTransform](https://api.playcanvas.com/splat-transform/functions/bakeTransform.md): Bake a source's pending coordinate-space transform into a target space, lazily and per chunk — the streaming analog... - [combine](https://api.playcanvas.com/splat-transform/functions/combine.md): Combines multiple DataTables into a single DataTable. - [computeStats](https://api.playcanvas.com/splat-transform/functions/computeStats.md): Compute per-LOD, per-column statistics for splat data in a single streaming pass — exact... - [concatSource](https://api.playcanvas.com/splat-transform/functions/concatSource.md): Concatenate several sources end-to-end into one, as a lazy view. - [createChunkDataPool](https://api.playcanvas.com/splat-transform/functions/createChunkDataPool.md): Create a CPU ChunkData pool. - [dataTableToChunkSource](https://api.playcanvas.com/splat-transform/functions/dataTableToChunkSource.md): Convert a legacy DataTable into a ChunkSource by repacking its columnar data into the canonical per-layer... - [decimateSource](https://api.playcanvas.com/splat-transform/functions/decimateSource.md): Chunk-native, memory-bounded decimation to an exact target count. - [decimateSourceAdaptive](https://api.playcanvas.com/splat-transform/functions/decimateSourceAdaptive.md): Chunk-native, memory-bounded decimation to an exact target count. - [fmtBytes](https://api.playcanvas.com/splat-transform/functions/fmtBytes.md): Format a byte count using binary (1024-based) units. - [fmtCount](https://api.playcanvas.com/splat-transform/functions/fmtCount.md): Format a count using SI suffixes (K/M/B/T) above 1000. - [fmtTime](https://api.playcanvas.com/splat-transform/functions/fmtTime.md): Format a duration in milliseconds as a human-readable string. - [getOutputFormat](https://api.playcanvas.com/splat-transform/functions/getOutputFormat.md): Determines the output format based on file extension and options. - [isSplatModel](https://api.playcanvas.com/splat-transform/functions/isSplatModel.md): Narrow an externally-supplied string to a SplatModel. - [loadCameraTrack](https://api.playcanvas.com/splat-transform/functions/loadCameraTrack.md): Build a camera track from parsed JSON, detecting the source by shape. - [materializeToDataTable](https://api.playcanvas.com/splat-transform/functions/materializeToDataTable.md): Materialize a ChunkSource into the legacy columnar DataTable representation. - [processDataTable](https://api.playcanvas.com/splat-transform/functions/processDataTable.md): Applies a sequence of processing actions to splat data. - [processSource](https://api.playcanvas.com/splat-transform/functions/processSource.md): Apply a sequence of processing actions to a ChunkSource, the streaming analog of processDataTable. - [processSourceBridged](https://api.playcanvas.com/splat-transform/functions/processSourceBridged.md): Apply an ordered action list to a ChunkSource, streaming the chunk-native runs and bridging only the DataTable-only... - [readFile](https://api.playcanvas.com/splat-transform/functions/readFile.md): Reads a Gaussian splat file and returns its data as ChunkSources (usually one; a Streamed SOG/LCC/LCC2 container... - [readFileInfo](https://api.playcanvas.com/splat-transform/functions/readFileInfo.md): Read a splat file's structural metadata as efficiently as the format allows — from the header alone wherever... - [readPly](https://api.playcanvas.com/splat-transform/functions/readPly.md): Open a gaussian-splat PLY as a ChunkSource. - [resolveSplatModel](https://api.playcanvas.com/splat-transform/functions/resolveSplatModel.md): Resolve the model of a combined scene. - [selectLod](https://api.playcanvas.com/splat-transform/functions/selectLod.md): View a single LOD level of a multi-LOD source as a single-LOD source — the inverse of stackLods. - [sortMortonColumns](https://api.playcanvas.com/splat-transform/functions/sortMortonColumns.md): Sort indices in place into morton (Z-order) using columnar positions: point g's coordinates are x[g], y[g], z[g]. - [sortMortonInterleaved](https://api.playcanvas.com/splat-transform/functions/sortMortonInterleaved.md): Sort indices in place into morton (Z-order) using interleaved positions [x, y, z, x, y, z, ...] — the natural... - [stackLods](https://api.playcanvas.com/splat-transform/functions/stackLods.md): Stack N single-LOD sources into one structural multi-LOD source: output LOD i is sources[i]. - [writeImage](https://api.playcanvas.com/splat-transform/functions/writeImage.md): Renders the splat scene to a lossless WebP image written via fs, or to a sequence of them along a camera track. - [writeSource](https://api.playcanvas.com/splat-transform/functions/writeSource.md): Write a ChunkSource to a file. - [writeVoxel](https://api.playcanvas.com/splat-transform/functions/writeVoxel.md): Voxelizes Gaussian splat data and writes the result as a sparse voxel octree. ## Variables - [logger](https://api.playcanvas.com/splat-transform/variables/logger.md): Public logger surface. - [revision](https://api.playcanvas.com/splat-transform/variables/revision.md): The splat-transform revision (short Git hash of HEAD at build time). - [version](https://api.playcanvas.com/splat-transform/variables/version.md): The splat-transform version (semver MAJOR.MINOR.PATCH). ## Optional - [All pages in one file](https://api.playcanvas.com/splat-transform/llms-full.txt): 107 pages (112 KB), for downloading and searching rather than reading into context.