Skip to content

Release Notes

# Release Notes


[1.0.0] — 2026-03-14

The first production release of Occulus — a complete point cloud analysis library for aerial, terrestrial, and UAV LiDAR.

Core Library

  • I/O — LAS/LAZ (laspy), PLY/PCD (Open3D), XYZ (NumPy). Subsample-on-read.
  • Types — Platform-aware hierarchy: PointCloud, AerialCloud, TerrestrialCloud, UAVCloud. Open3D interop.
  • Filters — Voxel downsample, statistical outlier removal, radius outlier removal, axis-aligned crop.
  • Normals — PCA normal estimation on KDTree neighborhoods, viewpoint-based orientation.
  • Registration — Point-to-point and point-to-plane ICP, FPFH+RANSAC global registration.
  • Segmentation — CSF and PMF ground classification, DBSCAN clustering, CHM-watershed tree segmentation.
  • Mesh — Poisson, Ball Pivoting, Alpha Shape surface reconstruction (via Open3D).
  • Features — Iterative RANSAC plane/cylinder detection, eigenvalue geometric features (7 descriptors).
  • Metrics — Point density raster, Canopy Height Model, coverage statistics.
  • Visualization — Open3D 3D viewer for clouds, registration results, and labeled segments.

C++ Backend

  • Full C++17 implementation with pybind11 bindings: k-d tree, filters, normals, ICP, CSF/PMF, RANSAC, eigenvalue features.
  • Pure-Python fallbacks used when the C++ extension is not compiled.

Examples

  • 36 runnable scripts using real USGS 3DEP, KY From Above, OpenTopography, and AHN4 data.
  • Terrain analysis across 10 geographic regions (KY, CO, AZ, UT, OR, LA, TX, Iran, Netherlands).
  • All outputs WCAG 2.1 AA compliant with alt-text metadata and cross-section reference lines.
  • Full toolkit demonstration on Appalachian coal mine terrain.

Infrastructure

  • CI: ruff lint/format, mypy strict typecheck, pytest on Python 3.11/3.12/3.13.
  • PyPI publish via GitHub Actions trusted publisher.
  • mkdocs-material documentation site.
  • Full test suite with mocked I/O.

Dependencies

Package Version Required
numpy >=1.24 Yes
scipy >=1.11 Yes
pyproj >=3.6 Yes
laspy >=2.5 Optional (occulus[las])
open3d >=0.17 Optional (occulus[viz])
matplotlib >=3.8 Optional (occulus[viz])

[0.1.0] — 2026-01-01

  • Initial project scaffold: type system, exception hierarchy, I/O dispatcher, build infrastructure.