Point cloud converter

Drop a PCD or PLY file and it is parsed right in your browser: you get the point count, bounding box and a top-down projection, then export to XYZ or CSV. Nothing is uploaded and there is no sign-up.

Drop a point cloud file here

Or click to choose a file. Supports .pcd (ascii / binary) and .ply (ascii / binary, either endianness).

What is supported

FormatReadNotes
PCD ascii✅Character-by-character number scanner, so millions of points do not blow up memory
PCD binary✅Reads fields by offset; supports COUNT > 1
PCD binary_compressed❌Needs LZF decompression, and I cannot cross-check it against real PCL output — refused rather than guessed
PLY ascii✅Face elements after the vertex list are ignored
PLY binary (LE/BE)✅Reads properties by offset, including integer fields such as uchar colours

Why "no upload" matters here: point clouds often carry customer site coordinates or unpublished scene data — sometimes enough to infer where equipment is installed. That is not something to hand to someone else’s server.

Which export format

  • XYZ: one x y z per line, the most portable form. CloudCompare, MeshLab, MATLAB and np.loadtxt all read it.
  • CSV: header plus every scalar field (intensity, colour, normals…), good for Excel or pandas.

Things worth knowing

  • Export precision defaults to 3 decimals (millimetres); raise it if your coordinates are large, e.g. UTM.
  • PCD binary_compressed is not supported — re-save with pcl_convert_pcd_ascii_binary or CloudCompare.
  • For files above ~80MB the parse blocks the main thread for a few seconds; the page will look frozen, which is expected.
  • The projection exists to sanity-check the data, not to replace a real viewer — use CloudCompare for detail.

Next up: cropping, voxel downsampling and coordinate transforms with a 4×4 matrix. All of those need reliable read/write first, which is why this layer comes first.