Point Cloud Visualizer

by Jakub Uhlík in Scripts and Addons

Announcing version 2.0

2.0 Highlights:

  • New internal data system (uses less RAM, can hold scalars)
  • New PLY reader (faster, only fast partial loading methods) and writer (can write Binary or ASCII PLY format)
  • Ability to display larger point clouds
  • Importing of LAS, LAZ, PCD (experimental) and E57 (experimental)
  • Loading and displaying scalars, value mapping, color schemes, blending with point colors
  • New filters for working with scalars
  • Convert points to geometry nodes and convert to new pointcloud object (available in blender alpha builds) that can be rendered in Cycles
  • Sequence batch filter, convert and export
  • Selection tools for cleanup (box, lasso, circle select tools), tool for placement of 3d cursor on points
  • Blender 3.0+ required

You can access pre-release alpha version right now in downloads. Zip file is addon without documentation. Install directly downloaded zip. No need to unzip before installation like with 1.x releases.

2.0 will be free upgrade for all customers.

General installation notes

If you have older PCV version installed, upgrade procedure is: start Blender, go to preferences, disable old PCV, remove old PCV, save preferences, quit Blender, start Blender, go to preferences, install new PCV, enable new PCV, save preferences.

Installation notes for features depending on external libraries: a few filters and importing LAS/LAZ and E57 files

All platforms:

  • Open3D is currently available only for Blender 3.0 that ships with Python 3.9


  • do NOT install Open3D (voxel downsample, normal estimation, registration, surface reconstruction) and PyMeshLab (E57 import, curvature) together


  • no known limitations..


  • Open3D and PyMeshLab are available for macOS 10.15+
  • on Apple silicon you need to use Blender Intel build to install PyMeshLab
  • pye57 have to be built from source

Point Cloud Visualizer

Display, edit, filter, render, convert, generate and export colored point cloud PLY files.

Works with any Binary or ASCII PLY file with 'x, y, z, nx, ny, nz, red, green, blue' vertex values. Vertex normals and colors are optional. Text based file formats, such as '.txt', '.xyz', '.pts', '.csv', can be imported.

For all features see full documentation here: https://jakubuhlik.com/docs/pcv/docs.html (also included with addon files)


  • Unzip files
  • Start Blender
  • Go to Preferences - Edit > Preferences
  • Choose Add-ons from left panel
  • Click Install.. button on top
  • Choose space_view3d_point_cloud_visualizer.zip and confirm with Install Add-on
  • Enable by checking the Enable checkbox

General Use

  • Add any object type to scene.
  • Go to 3d View Sidebar (N) > Point Cloud Visualizer tab, on main panel click file browser icon, select ply file, click Load.
  • Click Erase to hide point cloud and Draw button to display point cloud again.





Select ply file to load together with main Draw and Erase buttons.


Adjust percentage of points Display, point Size and Alpha. Shader type and its options (if any). Shader extras - Clip to set clipping planes, point Normals and Bounding Box.

Available shaders:






Here are options for ply loading, loaded data post-processing and safety checks.

To use partial load, first enable clicking checkbox Partial Load and set method. For extra large clouds with ordered data, you can choose Slice method which will load only a continuous part of points. To extract points from whole file you can use Spaced or Random. Spaced first load all points to system memory and then evenly spaced points from all are chosen and the rest is discarded to free system memory. This can be used when you are able to fit all points into system memory, but you don’t need to draw them all and it is still quite fast. Random method is slow, but much less system memory is needed to load subset of points. Points are read from file randomly and only single point is read each time until requested percentage is met.

Data post-processing lets you choose default color if points does not have any, convert 16bit colors, apply gamma correction, shuffle points (to be used with Shader > Display), you can disable storing of raw loaded data to save memory or disable automatic drawing after load to check number of loaded points first before drawing to prevent crashes from low gpu memory.

Safety lets you set maximum number of points to display regardless how many points are loaded to prevent crashes from low gpu memory.


Import points from text file formats such as .txt, .xyz, .pts, .csv, etc. Any plain text file with data organized into table with same number of items in a row. Select file, specify separator, number of header lines (if any) and each column data type and click Import. For convenience you can preview first 10 lines in file checking File Contents Preview. Preview tries to split columns with chosen separator on the fly. Alternatively you can click Guess Data Format to prefill columns types based on simple rules, but because except .pts there is no official data format specification, always verify the result. You can also save current column setup, header lines and separator properties as preset using preset widget.

Import also uses Partial Load and Post-load Processing options from Load panel, except Convert 16bit Colors property.

Notes on color values: by default rgb color is used for imported data, if you want to import other value like intensity from laser scanners, use Grey data type for its column and set rgb columns to Ignore. To import such value in false colors / heat map, use Value type instead.



Quasi point cloud Edit Mode. Hit Enable Edit Mode and all points will be converted to helper mesh with vertices and entered to mesh edit mode. You can transform, delete and duplicate vertices using regular Blender’s tools.




Filter current point cloud, all changes are only temporary, original data are still intact. To keep changes, you have to export cloud as ply file.


Simplify point cloud to exact number of evenly distributed samples or voxel-like structure.


Project points on mesh (or object convertible to mesh) surface. Projects point along their normals until it hit surface or Search Distance is reached. You can choose between Positive (along normal direction), Negative (vice versa) or both. Optionally you can Discard Unprojectable points that was not possible to project and after projection Shift points a fixed distance along normal (positive value) or the other way around (negative value). Projected points can be optionally colorized by vertex colors, uv texture and vertex group from target mesh.


Transfer Colors

Transfer colors from point to Target mesh object vertex colors or UV texture. By default, color is taken from closest point, optionally you average point colors in set radius. Transfer colors to UV texture requires non-overlapping UV layout fully contained in unit square on target mesh and material with active Image Texture node with loaded image to operate on. Extending margins on UV texture uses blender baking system and requires Cycles to be set as render engine.

Transfer Color


Fast crop points by object bounding box.


Intersect or Exclude points with mesh object.


Color Adjustment

To use, switch shader type to Color Adjustment. Adjust exposure, gamma, brightness, contrast, hue, saturation, value or invert colors.

Remove Color

Remove points with exact/similar color as chosen in color picker (Eyedropper works too).

Remove Color


Load another ply and merge with currently displayed.


Join current active point cloud with another on different object.



Single point cloud or multiple point clouds in separate PCV instances per render/frame are supported. When rendering multiple instances, all must be visible in viewport (i.e. ply is loaded and drawn in viewport) before starting render. Output image is RGBA 8bit PNG - transparent background with colored point cloud, which can be composed over something else later.



Convert point cloud to mesh (each point to Vertex, Equilateral Triangle, Tetrahedron, Cube or Ico Sphere), instancer (with Ico Sphere), particle system (with Ico Sphere) or mesh with normal and color attributes to be used with geometry nodes. Point colors will be converted to vertex colors.




Generate point cloud from mesh (or object convertible to mesh) surface or volume.





Export current point cloud as binary ply file.



Load sequence of ply files to play in viewport.



With installed Open3D library (http://www.open3d.org/) you can use following extra features. Please read full documentation at https://jakubuhlik.com/docs/pcv/docs.html for installation and usage.

Open3D is not yet available for Python 3.9 included in Blender 2.93. Use Blender 2.92.

Voxel Downsample

Estimate Normals

Surface Reconstruction


You can choose tab name for PCV to keep things organized.


You can use PCV to display point cloud data from other addons/custom scripts. See documentation.

Bugs? Suggestions?

Here: https://blenderartists.org/t/point-cloud-visualizer/



  • convert to geometry nodes with colors (blender 3.0+)
  • convert to mesh divided to even chunks
  • render points in 3d viewport together with other scene objects


  • clipping planes for all shaders (viewport and render)
  • auto clipping planes update, linked object can be animated (viewport and render)
  • more Split filter options
  • shader panel updated


  • faster rendering
  • render current or all visible point clouds
  • optional shuffle when joining points
  • optional basic uv layout generation for Convert (mesh based result)
  • Convert to vertex mesh with `pcv-normal` and `pcv-color` attributes (to be used with Geometry Nodes)


  • new in edit mode: Select Color and Set Color
  • new filters Split and Join
  • Project filter point position change is now optional
  • Remove Color both by color and numbers and Color Adjustment Apply speed improvements
  • fixed View Points not being correct when container is transformed


  • point set registration with several global and local methods (using Open3D)
  • normal estimation with normal orientation by direction or camera location (using Open3D)
  • new `Fast` viewport shader
  • new `File > Import` and `3D Viewport > Add` helper menu operators
  • new center view on points operator
  • new edit operators: points to origin, apply transformation
  • edit mode enter, update and exit significantly faster
  • faster render manual depth sorting
  • compatibility with Blender 2.91 viewport drawing and rendering
  • compatibility with Open3D 0.10.0
  • fixed edit mode ui glitches
  • fixed ascii import guess separator


  • Import points from text file formats


  • MatCap and MatCap Billboard shaders
  • Fast bounding box Crop points
  • Open3D: Voxel Downsample, Estimate Normals and Surface Reconstruction
  • fixed render transparency (blender 2.9x)


  • Remove Color numeric input with python expression and invert selection operator
  • Convert use custom mesh as instance
  • Project filter align projected point normal to target mesh surface normal
  • fixed point generation on triangles with very small area when using Weighted Random In Triangle
  • fixed Sequence not reseting when new blend is loaded


  • viewport menu to batch control PCV instances
  • Height Colors, Depth Effects and Alpha shaders
  • load alpha, export alpha
  • render with manual depth sorting
  • fixed sequence animation render


  • transfer colors from point cloud to mesh vertex colors or uv texture
  • voxel simplification method
  • generate points in mesh volume


  • core completely rewritten
  • takes less system memory
  • better undo / redo handling
  • partial ply loading - slice, evenly spaced or random strategies
  • out of video memory crash prevention with maximum display points user setting
  • more shader types and shader options (Phong, Billboard, Billboard Phong, Fresnel, Bounding Box, Position with scale and offset)
  • render to image with any shader
  • optional faster triangulated conversion to mesh
  • many small fixes and optimizations


Sales 900+
Customer Ratings 8
Average Rating
Published about 2 years ago
Software Version 2.81, 2.82, 2.83, 2.9, 2.91, 2.92, 2.93, 3.0, 3.1
License GPL
Have questions before purchasing?

Contact the Creator with your questions right now.

Login to Message