What makes COPC different
An ordinary LAZ file is compressed in sequence. To draw the last point you must decompress every point before it, which is why every browser viewer that handles plain LAZ starts by downloading the whole file. At two gigabytes that is not a slow experience, it is an impossible one.
COPC reorders the same points into an octree before compressing them, and records an index of where each node landed. The root node is a thinned version of the entire cloud; each level below it adds detail in a smaller region. A reader can fetch the root, draw it immediately, and then pull only the deeper nodes that fall inside the current view.
The numbers are the argument. For the 2 GB SoFi Stadium scan — 364 million points — the header and octree index together come to about87 KB, under a twenty-thousandth of the file. That is enough to know the full extents, the CRS, the point count, and exactly which byte ranges to ask for next.
How this viewer streams it
- One
Range: bytes=0-588request reads the LAS header and the COPC info record together, and confirms the host supports ranges at all. - The root hierarchy page is fetched and parsed. Deeper pages are left alone until the level-of-detail walk actually needs to descend into them — large files have deep trees, and walking one eagerly would undo the point of the format.
- Nodes inside the view frustum are requested nearest-first, up to a point budget, and decompressed one at a time in a Web Worker. Each node is drawn the moment it arrives, so the picture sharpens rather than appearing all at once.
- Nodes that leave the view are released, so panning around a large cloud does not accumulate memory without limit.
Any hosted LAS or LAZ, not just COPC
Point the URL field at a plain .las or .laz and you still get something useful for a few kilobytes: version, point count and format, coordinate system, bounding box, and the full VLR list. Rendering the points needs the whole file, so that is offered as a separate step with the size shown — never started for you.
When a URL will not load
Two host-side settings decide whether a remote file can be read from a browser, and neither is under this page's control:
| Problem | What it means | What helps |
|---|---|---|
| CORS blocked | The host does not send Access-Control-Allow-Origin, so the browser refuses to hand the response to the page. | Download the file and drop it in, or ask the host to fix it. |
| No range support | The host answers 200 to a range request and starts sending the whole file. | Download it in full — offered explicitly, with the size. |
| 404 or 403 | The URL is wrong, or the object is not public. | Check the link; the exact status is shown. |
There is deliberately no proxy server to route around CORS. Proxying would mean your data passing through a third party, which is the one thing this tool promises never to do — and on multi-gigabyte files it would be someone else's bandwidth bill besides.
What this viewer does not do
- No COPC writing. Producing one requires a full spatial sort and rechunk of the point set; PDAL does it well.
- No editing, cropping, filtering or measurement.
- No screen-space-error refinement yet — node selection is a breadth-first walk under a point budget, which is simple and predictable rather than maximally clever.