{"name": "Aerial LiDAR Classifier", "package_name": "Aerial_LiDAR_Classifier", "version": "1.0.2", "experimental": true, "qgis_min": "3.34.0", "qgis_max": "3.99.0", "downloads": 312, "uploaded_by": "Kharroubi", "upload_datetime": "2026-05-19T09:33:33.089179", "changelog": "1.0.2\n- Fix: Linux install failed at the venv pre-flight check with\n\"error while loading shared libraries: libpython3.12.so.1.0:\ncannot open shared object file\" on every distro that uses\npython-build-standalone (i.e. all of them). The\n`python -m venv --copies` flag copies the standalone python3\nbinary into venv/bin/ but does NOT copy the libpython next\nto it (venv has no notion that python-build-standalone\nships libpython as a separate file). After the copy, the\nbinary's RPATH=$ORIGIN/../lib resolves to an empty\nvenv/lib/ and every invocation dies. `--copies` was added\nto dodge Windows AV quarantine of the redirector launcher.\nIt is now applied only on Windows; Linux and macOS use\nsymlinks (the default), which point back at the standalone\ntree so the RPATH lookup still finds libpython.\n- Fix: \"Use GPU\" checkbox stayed unchecked across QGIS sessions\nafter a fresh install. The dock's closeEvent persisted the\ncheckbox state even when the GPU probe had forced it off\n(torch not yet importable, or CUDA wheel/driver mismatch\nduring the cu128 -> cu118 cascade). The False stuck and left\nusers silently on CPU on the next launch. The plugin now\nonly persists the GPU preference when the user could\nactually choose it (i.e. the checkbox is enabled), and a\none-time settings migration resets the stale False on first\nlaunch so existing v1.0.1 users get GPU back automatically.\n- Fix: streaming I/O no longer silently drops the trailing\npartial chunk on very large LAS files. v1.0.1 skipped the\nlast few thousand points whenever laspy hit\n\"buffer size must be a multiple of element size\" at EOF.\nThe chunk loop now uses read_points(n) directly and falls\nback to a raw-byte recovery path that decodes every\nwhole-point-record left on disk, so the streaming output\nhas the same point count as the input.\n- Polish: trimmed the long About text in the QGIS Plugin\nManager so the rating widget is visible without scrolling.\n1.0.1\n- Fix: corporate SSL inspection blocking the install. uv now\nuses the OS native TLS (--native-tls) so Windows-installed\ncorporate CAs are trusted, and download.pytorch.org is in\nthe allow-insecure-host list alongside pypi.org and\nfiles.pythonhosted.org. Same flag added to the pip code path\nvia --trusted-host.\n- Fix: Linux first-install failed at ensurepip step because\npython-build-standalone Linux tarballs do not ship the\nbundled pip wheel. The venv is now created with --without-pip\n(we use uv for all package installs anyway).\n- Fix: CUDA wheel selection now cascades through cu128 -> cu126\n-> cu124 -> cu121 -> cu118 instead of giving up at the first\ndriver-version miss. Recovers GPU acceleration for NVIDIA\ndrivers older than 550.\n- Fix: cap torch version per cuda index (cu118/cu121 -> torch\n<2.6, cu124 -> torch <2.8) so uv no longer picks the latest\n+cpu wheel from the cuda index instead of the latest +cuXXX.\n- Add: install marker recording the plugin version that built\nthe venv. On version mismatch the Setup dock reopens with a\none-click Reinstall that wipes the stale venv automatically.\n- Add: classification-coloured 3D renderer auto-attached to\nloaded layers so the 3D Map View renders points in 3D out of\nthe box.\n1.0.0\n- Initial public release on the QGIS plugin repository\n- 3D SegFormer (UrbanFiltering, TreeAIBox / NRCan) integration\n- QGIS Processing algorithm + provider (Toolbox, Modeler, qgis_process CLI)\n- Isolated per-user venv dependency installer (PyTorch CPU /\nCUDA 12.1 / 12.4 / 12.6 / 12.8), compute-capability- and\ndriver-version-aware wheel selection\n- Background QgsTask with progress and cancellation\n- LAS / LAZ / COPC input; LAS or LAZ output (matches input)\n- Spatial tiling and streaming I/O for files larger than RAM\n- Optional automatic loading of results as point-cloud layers\n- SHA-256 verification of downloaded model weights\n- Network calls go through QgsBlockingNetworkRequest (proxy /\nauth / certificates honoured per QGIS plugin guidelines)", "external_deps": null, "download_url": "https://plugins.qgis.org/plugins/Aerial_LiDAR_Classifier/version/1.0.2/download/"}