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 about 87 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.
Inspecting the octree
Everything the viewer needs to stream a file is also what you would want to know about it, so the COPC inspector panel under the view shows it rather than keeping it internal. From the 160-byte info record: the octree centre and cube size, the root spacing, the GPS time range, and where the root hierarchy page sits. From the hierarchy pages: the depth of the tree, and for every level the number of nodes, the number of points, the share of the total, the spacing and the node edge length. Nothing in the panel required reading a point.
It also checks that the pieces agree with each other. The hierarchy's point total should equal the header's point count; the header extents should fit inside the octree cube; the root node should exist and hold points; every node's chunk should lie inside the file; every node above the root should have a parent, or a streaming reader can never reach it. Each of these is reported as an observation with its reason, in the same style as the LAS inspector's checks.
On a large file the counts start as a lower bound, because only the hierarchy pages the view has descended into have been read — that is the whole point of the format. One button reads the rest; for the 2 GB SoFi scan the entire index is well under 100 KB. A file that turns out not to be COPC still opens, and the same panel says exactly which requirements it fails, so a converted file that a later tool quietly stripped of its octree records is caught rather than silently rendered the slow way.
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, which this site does not offer yet.
- 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.