A Script to Skin a Point Cloud (for Blender 2.6x or Later)

What is Point Cloud Skinner?
This is a Python script for Blender 2.6x or later and allows you to create a surface from just a cloud of vertices. You can get a complete 3D mesh with faces on it out of just a point cloud that has only vertices and no faces. Please watch the video to get the idea of what the script can do for your artwork.
http://3.bp.blogspot.com/-DZ3gX9C7Q_8/Twpu_aoxlEI/AAAAAAAAA0c/fly2gJgfIVU/s200/00164.jpg http://4.bp.blogspot.com/-XzOSqm5Fb9Q/Twpu_TaOYyI/AAAAAAAAA0s/yXOumXh3HfY/s400/00165.jpg

Name:
Point Cloud Skinner v0.17, t26

Download:
PointCloudSkinner for Blender 2.6x.zip
(It is being developed in SourceForge.net)

Requirements:
Point Cloud Skinner works as a plugin on Blender 2.6x or later. I confirmed it works well on Blender 2.61.

Features:
This script, Point Cloud Skinner can skin a cloud of vertices, which means to create a 3D surfaced mesh out of just a cloud of vertices that has no faces. It can skin any shapes of point clouds, such as a surveyed geography point cloud that represents a landform somewhere, a fluid volumetric point cloud obtained by numerical fluid simulation, or anything you like. You can see some sample meshes that the script produced in “Results” part below.

Results:
You can see the results of using this script, which are point clouds before skinning (left) and the skinned 3D meshes from those point clouds (right).

These two examples below show how the script works for the type of point clouds which is the surveyed geography data like Digital Terrain Model (DTM).
http://1.bp.blogspot.com/_d4nbesSwQqc/SSquc-r1wPI/AAAAAAAAAuE/g10wHVOAR84/s400/geo_bf_to_af.jpg

http://2.bp.blogspot.com/_d4nbesSwQqc/SV7tfEwxuJI/AAAAAAAAAvE/P4qSQo_4i3o/s400/geo.png

These two examples below show how the script works for the type of point clouds which is the calculated fluid volumetric data.
http://4.bp.blogspot.com/_d4nbesSwQqc/SV7teg5NzeI/AAAAAAAAAu0/Y04FB4691fY/s400/fluid_vol1.png

http://2.bp.blogspot.com/_d4nbesSwQqc/SV7teyTmZVI/AAAAAAAAAu8/7vzVJSn08GU/s400/fluid_vol2.png

How to Start to Use Most Easily:
If you want to know how to use quickly, it would be the fastest way to see this video tutorial. Also you can read the instruction below.

— Installing Plugin —

    1. Download a file “t26_PointCloudSkinner1_Umbrella.zip” from “Download:” link above.
    1. Close Blender if it’s running.
    1. Put the file “t26_PointCloudSkinner1_Umbrella.zip” to “%BlenderInstalledAddress%\Blender%Version%\scripts\addons”. (%BlenderInstalledAddress% means the address in which Blender is installed. %Version% means Blender’s version number like 2.66.)
    1. Start Blender.
    1. From the top menu, select “File -> User Preferences…” to see Blender User Preferences window.
    1. In the left list, select “Mesh” item and you’ll find “Mesh: Point Cloud Skinner” in the right list.
    1. Click the check box of “Mesh: Point Cloud Skinner” and make sure a check mark is placed.
    1. Click “Save As Default” button if you want to keep this setting.

— Skinning a Point Cloud —

    1. Find the UI of Point Cloud Skinner in Scene panel of Properties window.
    1. Select an object name that you want to skin in “Target Object” selection box like “Plane”.
    1. You need to select all the vertices that you want to skin in Edit Mode before skinning. (when you put a check in the checkbox of “Skin Only Selected Vertices”)
    1. Make sure that it’s in Object Mode, not Edit Mode.
    1. Specify “Dist for Skin:” number, for example 1.0 [Blender Unit]. (Please see “Parameters Explanations” section below for the details on what number to set)
    1. Specify “Ratio for Axis:” number, for example 2.0 [Ratio].
    1. Specify “Ratio for Grid:” number, for example 3.0 [Ratio].
    1. Click “Skin” button.
    1. You’ll see the skinned mesh in 3D View window.

http://3.bp.blogspot.com/-DZ3gX9C7Q_8/Twpu_aoxlEI/AAAAAAAAA0c/fly2gJgfIVU/s400/00164.jpg

— Parameters Explanations —

  • Dist for Skin” parameter is a threshold that is used in collecting vertices in the script. The parameter means the radius size of a sphere region in which the script searches for the vertices and then makes faces on them in the range of that sphere region.
  • You have to adjust “Dist for Skin” parameter depending on what your point cloud configuration is. It would be nice to set it to the average or a bit more of the distance between the adjacent vertices in the point cloud. If it’s too small, the script would make few faces and doesn’t work well. If it’s too large, it will take much more time for the same skinning.
  • In most cases, you don’t have to change “Ratio for Axis” and “Ratio for Grid” parameters.

Caution:
You have to be careful that it takes a lot of time to skin, maybe more than you expect like 10 minutes, 1 hour, etc… depending on how many vertices your point cloud has. You might be surprised, but if you want to skin 20K vertices, you have to wait 10 minutes or more for the skinning to be completed.
The script has bugs! It will cause a lot of holes in the resulted mesh. Always you have to do work to fix the holes after skinning done. Often several errors occur during skinning, and it stops its skinning process around the vertices where errors have occurred. However, those vertices will be selected, so you can find out where the errors occurred by going to EditMode with the skinned mesh.

More Video Demos:
If you want to see more about how it works on various point clouds, please check up the following video demos.

Homepage for Details:
Please go to the homepage for more details.

Information:
the reason why I made the script, the list of change logs, the future works and more

Algorithm:
Explanation of how the script t15 skins point cloud

Settings:
Explanation of how to setup the parameters of the script t23

List of Another Notes and Memos:
Notes and memos

Please Help Me to Improve the Script:
There can remain some noise on the skinned point could after using this script. Some of those are the bugs of the script known for years, but I’m still not so sure what the cause is. Therefore, it is quite helpful if you cut into a very small point cloud which reproduces the bugs and send me back on this thread. I’m afraid that I don’t have enough time to fix them quickly, but it will be a good source to find the reason of the failures if I get several patterns.

Have fun! Please let me know your opinions about this script.

1 Like

Super, looks really good! Congrats …!

@PKHG

Thank you for your immediate reply.

Yes, will play with it tomorrow, today other duties :wink:

@PKHG

Any comments are welcomed :slight_smile:

Thanks for the script.

May I ask you why the script is placed to the scene panel?
Isn’t the ToolShelf a place where people will look for the script?

Hmm, I tried to mesh my ‘stars’ … (a number of vertices more or scuttered on the face of a sphere) works and works …
Seems to be difficult :wink:
In the console -----Start----- , maybe some sort of print out of ongoing computations meaningful?
Got this (after reducing the number of vetices)
-----Log-----
{‘ModifiedTriangles’: 0, ‘Errors’: 0, ‘TargetVerts’: 0, ‘TooSmallVertsAngles’: 0, ‘Warnings’: {‘NZ3’: 0, ‘NZ2’: 0, ‘NZ1’: 0}, ‘FewVertsCases’: 0, ‘FullFacesCases’: 0, ‘MadeFaces’: 0, ‘TooLargeVertsAngles’: 0, ‘ErrorLine’: []}
(If you have trouble, please send this log to the developer.)
Total files 0|Changed 0|Failed 0

So please tell me more about what suitable parameters may be?

I’m in the same boat as PKHG. If we could get some more information on what the parameters mean that would be great. Also, I have not watched all the videos so perhaps it is described in there.

Thanks for the script and I look forward to utilizing it once I understand it better. Here is a .blend with data from a dental laser scanner if anyone want to try. It’s a bit noisy for extra challenge.

I’m looking forward to using this in conjunction with the re-mesh modifier.

Attachments

point_cloud.blend (821 KB)

can this be run in text editor or only as an addon?

also agreed that this should be put into the tool ot tolol pro panel
easier to find it i guess and run!

@PAtmo i trie dyour point cloud and it did not skin it

look same as before
what has to be done for getting it skinned?

are there some sample CVS file just to test with these files
and see ho it works

thanks

@vklidu, PKHG, patmo141, RickyBlender

Thanks for your comments! Yes, I should have explained more on how to set the parameters, I’m sorry. But I don’t have time enough to explain. The key parameter is only one. It’s “Dist for Skin:”.

Please also see Explanation of how to setup the parameters of the script t23. The explanation for “Dist for Skin:” is written in “DistForSearch” section there.

I’ll write the necessary explanation more and show some figures this weekend.

Hans, take your time, if we are not too lazy, we can read your script and see for ourselves, what what does :wink:

Here is more about “Dist for Skin:” parameter:

“Dist for Skin:” parameter is a threshold that is used in collecting vertices in the script. It means the radius of a sphere region in which the script searches for the vertices and then makes faces on them to skin.

You have to adjust the parameter depending on your point cloud configuration. It would be nice to set it to the average or a bit more of the distance between the adjacent vertices in the point cloud. If it’s too small, the script would make few faces and doesn’t work well. If it’s too large, it will take a lot of time for the same skinning.

i tried for fun to skin a cube with no edges

and it does gives a strange set of faces!

what is the checkbox for selected verts?
does it means you need to select verts in editmode ?

thanjs

@RickyBlender

Yes, yes, yes. You need to select all the vertices that you want to skin in EditMode before skinning if you put a check in the checkbox.

Ha ha, error found! My stars got a ‘halo’ material and then no ‘face’ is seen!
changing it nice part of the sky as a mesh is visible, part of a sphere

so it works for me too!

Maybe a remark somewhere?!

thanks i will try it

@patmo141

I’ve tried to skin with the .blend file that you provided kindly. Here is the result which includes the parameters that I used to skin.

http://2.bp.blogspot.com/-isnLTddvl1c/TxBcrCR7PpI/AAAAAAAAA00/F3BhYF9IYwk/s400/00167.jpg

File: 99 skinned_point_cloud_from_patmo141.blend

I used 0.25 for “Dist for Skin:”. Mmm, the result is not so good. It’s because the point cloud is noisy and the script has bugs, I guess. The log said 1722 errors occurred during the skinning. The vertices in which an error occurred are selected so that we can find out where the errors occurred.

http://2.bp.blogspot.com/-W8QaKPZn43w/TxBhAmzBAvI/AAAAAAAAA1A/IeleLKn5cvA/s400/00169.jpg

http://2.bp.blogspot.com/-OWt7G4bye-c/TxBhA4gchrI/AAAAAAAAA1I/m3B0TnIz8WI/s400/00170.jpg

i tried the sample file and i got at top header the message not responding then waited and waited!
then i deleted 3/4 of the verts and tried again in object mode
and after 30 secondes i got the skinned version

so seems to work
there was some faces that were not done
may be because of some bugs still presents

but it’s beginning to work

are there any CVS sample files we can try may be 2D and 3D?

thanks

happy 2.6

With some smooth and remesh it shows more clear.

http://www.pasteall.org/pic/show.php?id=24374

@vklidu

May I ask you why the script is placed to the scene panel?
Isn’t the ToolShelf a place where people will look for the script?

Thank you for your indication. There is no serious reason why I put it in Scene panel.
I agree with you that many other addons are placed in ToolShelf column. So I’ll replace it in the next version. Or does anyone have other opinions?