<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Alex U</title>
    <description>The latest articles on DEV Community by Alex U (@aurtechmx).</description>
    <link>https://dev.to/aurtechmx</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3945638%2F335bdeb5-577c-45c7-b453-3004fa75e76d.jpg</url>
      <title>DEV Community: Alex U</title>
      <link>https://dev.to/aurtechmx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aurtechmx"/>
    <language>en</language>
    <item>
      <title>OpenLiDARViewer: A Browser-Based LiDAR and Point-Cloud Viewer</title>
      <dc:creator>Alex U</dc:creator>
      <pubDate>Fri, 22 May 2026 23:08:31 +0000</pubDate>
      <link>https://dev.to/aurtechmx/building-openlidarviewer-a-browser-based-lidar-and-point-cloud-viewer-3dcl</link>
      <guid>https://dev.to/aurtechmx/building-openlidarviewer-a-browser-based-lidar-and-point-cloud-viewer-3dcl</guid>
      <description>&lt;h1&gt;
  
  
  Rendering LiDAR Scans in the Browser Without Uploading Anything
&lt;/h1&gt;

&lt;p&gt;Most point-cloud workflows still start the same way.&lt;/p&gt;

&lt;p&gt;Install a desktop tool.&lt;br&gt;
Import the scan.&lt;br&gt;
Wait.&lt;br&gt;
Inspect.&lt;br&gt;
Measure.&lt;br&gt;
Export.&lt;/p&gt;

&lt;p&gt;That workflow makes sense when you are doing serious GIS, photogrammetry, survey processing, classification, or production work.&lt;/p&gt;

&lt;p&gt;But there is another moment that is much simpler:&lt;/p&gt;

&lt;p&gt;You just received a scan and want to know what is inside it.&lt;/p&gt;

&lt;p&gt;Does it open?&lt;br&gt;
Is it clean?&lt;br&gt;
Does it have color, intensity, or classification?&lt;br&gt;
Can I measure something quickly?&lt;br&gt;
Can I show it to someone without making them install software?&lt;/p&gt;

&lt;p&gt;That is the moment I wanted to improve with &lt;strong&gt;OpenLiDARViewer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It is an open-source, browser-based LiDAR and point-cloud viewer built around one simple idea:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Drop a scan into the browser and inspect it locally.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No upload.&lt;br&gt;
No account.&lt;br&gt;
No desktop install.&lt;br&gt;
No conversion step for supported formats.&lt;/p&gt;

&lt;p&gt;Live demo: &lt;a href="https://lidar.aurtech.mx/" rel="noopener noreferrer"&gt;https://lidar.aurtech.mx/&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/Aurtechmx/openlidarviewer/" rel="noopener noreferrer"&gt;https://github.com/Aurtechmx/openlidarviewer/&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The real goal: own the first 60 seconds
&lt;/h2&gt;

&lt;p&gt;There are already great tools for point-cloud work.&lt;/p&gt;

&lt;p&gt;CloudCompare is powerful.&lt;br&gt;
QGIS is powerful.&lt;br&gt;
Potree is excellent for publishing point clouds on the web.&lt;br&gt;
Professional LiDAR software exists for a reason.&lt;/p&gt;

&lt;p&gt;OpenLiDARViewer is not trying to replace those tools.&lt;/p&gt;

&lt;p&gt;It is focused on a smaller, earlier step:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;the first 60 seconds after you get a scan.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before you process it.&lt;br&gt;
Before you classify it.&lt;br&gt;
Before you prepare a report.&lt;br&gt;
Before you decide what workflow it belongs to.&lt;/p&gt;

&lt;p&gt;Sometimes you just need a fast first look.&lt;/p&gt;

&lt;p&gt;That sounds simple, but LiDAR data makes “just open it” surprisingly complicated.&lt;/p&gt;




&lt;h2&gt;
  
  
  Keeping the scan on the device
&lt;/h2&gt;

&lt;p&gt;One thing I wanted from the start was simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The scan should not have to leave the user’s machine just to be inspected.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For LiDAR and 3D scan data, that matters.&lt;/p&gt;

&lt;p&gt;A scan can represent a private site, a client project, a building, a terrain model, an industrial asset, or a research dataset. Uploading it to a random cloud viewer just to take a quick look is not always acceptable.&lt;/p&gt;

&lt;p&gt;So OpenLiDARViewer runs client-side.&lt;/p&gt;

&lt;p&gt;The browser loads the app, but the scan itself is read, parsed, analyzed, and rendered locally.&lt;/p&gt;

&lt;p&gt;There is no backend parser.&lt;br&gt;
No server-side preprocessing.&lt;br&gt;
No cloud ingestion pipeline.&lt;br&gt;
No “upload your file and wait.”&lt;/p&gt;

&lt;p&gt;Just the browser, the GPU, and the file on your machine.&lt;/p&gt;




&lt;h2&gt;
  
  
  Supporting real-world scan formats
&lt;/h2&gt;

&lt;p&gt;The viewer now supports common point-cloud and scan formats such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LAS&lt;/li&gt;
&lt;li&gt;LAZ&lt;/li&gt;
&lt;li&gt;E57&lt;/li&gt;
&lt;li&gt;PLY&lt;/li&gt;
&lt;li&gt;OBJ&lt;/li&gt;
&lt;li&gt;GLB / GLTF&lt;/li&gt;
&lt;li&gt;XYZ&lt;/li&gt;
&lt;li&gt;CSV&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That mix is intentional.&lt;/p&gt;

&lt;p&gt;I wanted the same viewer to handle both:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;drone / aerial LiDAR&lt;/li&gt;
&lt;li&gt;phone and mobile 3D scans&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those worlds often feel separate, but in practice they are starting to overlap. People capture data from drones, phones, scanners, photogrammetry tools, and AR apps. A lightweight viewer should not care where the scan came from as long as the data can be parsed and rendered.&lt;/p&gt;

&lt;p&gt;E57 support was especially important because it is a serious professional exchange format. It also brings more complexity: metadata, scan structure, transforms, optional attributes, and vendor differences.&lt;/p&gt;

&lt;p&gt;Getting that kind of file working in the browser is not just a checkbox. It is an interoperability milestone.&lt;/p&gt;




&lt;h2&gt;
  
  
  Measurement had to become more than a demo feature
&lt;/h2&gt;

&lt;p&gt;The first measurement tool was simple: pick two points and get a distance.&lt;/p&gt;

&lt;p&gt;Useful, but limited.&lt;/p&gt;

&lt;p&gt;The newer measurement workflow is more practical. It includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;distance&lt;/li&gt;
&lt;li&gt;polyline&lt;/li&gt;
&lt;li&gt;area&lt;/li&gt;
&lt;li&gt;height&lt;/li&gt;
&lt;li&gt;angle&lt;/li&gt;
&lt;li&gt;slope&lt;/li&gt;
&lt;li&gt;unit switching&lt;/li&gt;
&lt;li&gt;editable points&lt;/li&gt;
&lt;li&gt;clearer measurement sessions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It does make it more useful for quick inspection.&lt;/p&gt;




&lt;h2&gt;
  
  
  Scan intelligence: not just seeing the cloud
&lt;/h2&gt;

&lt;p&gt;A point cloud viewer should do more than show dots.&lt;/p&gt;

&lt;p&gt;When I open a scan, I want quick answers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How many points are in this file?&lt;/li&gt;
&lt;li&gt;What is the extent?&lt;/li&gt;
&lt;li&gt;What is the approximate density?&lt;/li&gt;
&lt;li&gt;Does it have RGB?&lt;/li&gt;
&lt;li&gt;Does it have intensity?&lt;/li&gt;
&lt;li&gt;Does it have classification?&lt;/li&gt;
&lt;li&gt;Are there invalid coordinates?&lt;/li&gt;
&lt;li&gt;Are there suspicious outliers?&lt;/li&gt;
&lt;li&gt;Does the decoded data match what the file claims?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why OpenLiDARViewer includes scan intelligence and validation modules.&lt;/p&gt;

&lt;p&gt;The goal is not to replace professional QA/QC.&lt;/p&gt;

&lt;p&gt;The goal is to give a useful first read before committing to deeper processing.&lt;/p&gt;

&lt;p&gt;Seeing the scan matters.&lt;/p&gt;

&lt;p&gt;Understanding whether the scan looks intact matters too.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why the interface is more game-like than GIS-like
&lt;/h2&gt;

&lt;p&gt;A lot of spatial tools inherit GIS interaction patterns.&lt;/p&gt;

&lt;p&gt;That is fine for GIS users, but it can be intimidating for people who just want to move through a 3D scan.&lt;/p&gt;

&lt;p&gt;OpenLiDARViewer uses a more direct navigation model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Orbit mode&lt;/li&gt;
&lt;li&gt;Walk mode&lt;/li&gt;
&lt;li&gt;Fly mode&lt;/li&gt;
&lt;li&gt;WASD movement&lt;/li&gt;
&lt;li&gt;mouse-look&lt;/li&gt;
&lt;li&gt;touch support on mobile&lt;/li&gt;
&lt;li&gt;point inspection&lt;/li&gt;
&lt;li&gt;saved viewpoints&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is to make the scan feel like a space you can enter, not just a dataset you loaded.&lt;/p&gt;

&lt;p&gt;Orbit works well for objects and small sites.&lt;br&gt;
Walk makes more sense for interiors or street-level scans.&lt;br&gt;
Fly feels better for terrain, drone LiDAR, and wide-area data.&lt;/p&gt;

&lt;p&gt;This is one of the parts I care about most because good interaction design can make technical data much easier to understand.&lt;/p&gt;




&lt;h2&gt;
  
  
  Mobile was not optional
&lt;/h2&gt;

&lt;p&gt;At first, this kind of tool feels desktop-first.&lt;/p&gt;

&lt;p&gt;Then reality shows up.&lt;/p&gt;

&lt;p&gt;People want to open scans:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;on site&lt;/li&gt;
&lt;li&gt;on tablets&lt;/li&gt;
&lt;li&gt;on phones&lt;/li&gt;
&lt;li&gt;during a demo&lt;/li&gt;
&lt;li&gt;while moving between field and office workflows&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mobile support creates its own set of problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;touch controls&lt;/li&gt;
&lt;li&gt;viewport behavior&lt;/li&gt;
&lt;li&gt;limited memory&lt;/li&gt;
&lt;li&gt;smaller screens&lt;/li&gt;
&lt;li&gt;browser gestures&lt;/li&gt;
&lt;li&gt;GPU differences&lt;/li&gt;
&lt;li&gt;file picker behavior&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A viewer that technically opens on mobile but feels terrible is not really mobile-friendly.&lt;/p&gt;

&lt;p&gt;So mobile support became part of the direction, especially for phone scan exports and quick review workflows.&lt;/p&gt;




&lt;h2&gt;
  
  
  Feedback I am looking for
&lt;/h2&gt;

&lt;p&gt;If you work with any of these areas, I would really value your feedback:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;LiDAR&lt;/li&gt;
&lt;li&gt;UAV mapping&lt;/li&gt;
&lt;li&gt;GIS&lt;/li&gt;
&lt;li&gt;photogrammetry&lt;/li&gt;
&lt;li&gt;3D scanning&lt;/li&gt;
&lt;li&gt;WebGL / WebGPU&lt;/li&gt;
&lt;li&gt;point-cloud visualization&lt;/li&gt;
&lt;li&gt;browser-based technical tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The most useful feedback would be:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does your file open?&lt;/li&gt;
&lt;li&gt;Does performance feel acceptable?&lt;/li&gt;
&lt;li&gt;Are the controls intuitive?&lt;/li&gt;
&lt;li&gt;Are the measurement tools useful?&lt;/li&gt;
&lt;li&gt;Does E57 behave correctly with your files?&lt;/li&gt;
&lt;li&gt;What format support is missing?&lt;/li&gt;
&lt;li&gt;What breaks?&lt;/li&gt;
&lt;li&gt;What would make this useful in a real workflow?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Live demo: &lt;a href="https://lidar.aurtech.mx/" rel="noopener noreferrer"&gt;https://lidar.aurtech.mx/&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/Aurtechmx/openlidarviewer/" rel="noopener noreferrer"&gt;https://github.com/Aurtechmx/openlidarviewer/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the project is useful, a GitHub star helps. But real feedback from people who work with point-cloud data helps even more.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final thought
&lt;/h2&gt;

&lt;p&gt;The browser is becoming a serious runtime for technical software.&lt;/p&gt;

&lt;p&gt;Not for everything.&lt;/p&gt;

&lt;p&gt;Not for every workflow.&lt;/p&gt;

&lt;p&gt;But for the first step — opening, inspecting, measuring, and understanding spatial data — it is starting to make a lot of sense.&lt;/p&gt;

&lt;p&gt;That is the direction OpenLiDARViewer is exploring.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>webgl</category>
      <category>typescript</category>
      <category>lidar</category>
    </item>
  </channel>
</rss>
