About Optional Libraries

  • NONE of them is required for regular use, majority of PCV functionality has no dependencies
  • functionality that depends on any library is marked in PCV panel with plugin icon and library is imported in just executed operator, if not available, message is displayed
  • all of them are installed from The Python Package Index (PyPI) using pip command
  • libraries are not installed automatically, you need to open PCV preferences and click each install library button
  • they are installed to user site-packages directory as defined in site.getusersitepackages(), exact location differs for each platform, if you click Read Me First button in PCV preferences, it will print out path to user site-packages directory

Where are Optional Libraries used?

  • Open3D
    • Voxel Downsample
    • Normal Estimation
    • Point Set Registration
    • Surface Reconstruction
    • ...
  • laspy
    • LAS file import/export
  • lazrs
    • LAZ file import/export (requires laspy, recommended)
  • laszip
    • LAZ file import/export (requires laspy)
  • pye57
    • E57 file import/export (recommended)
  • PyMeshLab
    • E57 file import (alternative)
    • Curvature filter
    • Screened Poisson Surface Reconstruction
  • SciPy
    • Remove Duplicates
    • Poisson Disk Elimination
    • Blur Scalar
    • Calculate Density
    • Voxel Downsample
    • faster Transfer Colors
    • Tools > Retopology > Snap All/Selected
    • ...

Optional Libraries Compatibility

  • Windows

    • do NOT use Open3D and PyMeshLab together, Blender will crash when one and the other is used (see workarounds)
    • do NOT use Open3D and pye57 together, Blender will crash when one and the other is used (see workarounds)
    • do NOT use Open3D and laspy + laszip together, Blender will crash when one and the other is used (see workarounds)
    • PCV will prevent crashes by default by monitoring which library has been used in current Blender session and not allowing problematic operation to be run, this behavior can be turned off in PCV preferences
  • macOS

    • on Apple Silicon you need to use Blender Intel build to install and use PyMeshLab
    • pye57 have to be built from source, see step by step guide
  • Linux

    • no known limitations/problems

Libraries Installation

Please see compatibility notes for your platform first. It is not needed to install library unless you need functionality that depends on it.

  • go to Preferences > Add-ons and find PCV
  • expand to see PCV preferences
  • click Install LIBRARY_NAME button
  • wait until Blender is responsive again (if you start Blender from command line you can observe progress)
  • restart Blender after each installed library

Specific version of library that is tested that is compatible is always installed. If library with different version already exists in user site-packages directory, it will be overwritten with required version. So, if new PCV version requires newer library version, to update simply run install library operator.

Libraries Workarounds

  • Windows
    • E57 files reading libraries (pye57 or PyMeshLab) and Open3D will crash Blender if both are used in single Blender session. To use both, install Open3D and pye57 (better option for E57 files reading) and use following system: start Blender, add an empty, go to PCV panel, import E57 file, export as PLY with PCV, quit Blender, start Blender, add PCV instance again and load exported PLY, use filters using Open3D as needed. Blender will only crash is one of libraries is used and then the other.
    • the same with LAZ files, reading LAS files is not affected