Jump to content
Welcome to InsanelyMac Forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

Sign in to follow this  


4 posts in this topic

Recommended Posts

Dear all,


This is the first release of GPU Scanalyze. Scanalyze is an application for registering meshes using ICP and has been developed at Stanford University under the supervision of Prof. Marc Levoy ( Stanford's Scanalyze ). The bottleneck of ICP is finding the pairs that are close with each other between the two meshes.

I am using for the time being (and I think will be using) Lawrence Cayton RBC in GPU for finding these pairs.

For the time being it only registers ply files.


Download it in your CUDA enabled Mac and use it either as a hobby or professionally for small to very large datasets. The advice is not to set the sample rate above 3-4 million of points.


Use : Unzip the attached application and double click on the Michelangelo head icon. Simple as that.


Important note : In order to run the ICP process of GPUScanalyze you should have sufficient GPU memory. For this reason I have put at the lower right end two meters of the form CPU:xxx / GPU:xxx

The first meter indicates how much memory GPUScanalyze occupies on the CPU side (Host side) and the GPU meter tells you how much remaining GPU memory you have for CUDA purposes. If the GPU meter is low and try ICP then a pop up will appear that you dont have enough memory.


Here is a video of how to register meshes :


GPUScanalyze Video Demo


The above registration is just a demo, it needed more culling in order to be precise.

Also since Lawrence RBC is extremely fast even on a million point data set sampling, use the maximum in iterations (20).


GPU Scanalyze will continue to evolve to include plugins like surface reconstruction etc and when it is mature it will go into the Apple Mac Store. So far so good. I have fixed memory leaks and bad memory allocations, meaning that you will not be screaming at your screen if Scanalyze throws a memory exception in the middle of a tedious session. Lawrence RBC is memory leak proof, meaning that your GPU memory wont be dried after successive registrations.


Just to show an example I have reconstructed Stanford's dragon. You can find all the 3D data in Stanford's archives at : Stanford's 3D Scanning Repository


First comes the registration step where the scans provided by Stanford are aligned using GPUScanalyze :




This session involved the registration of 50+ range views and I did not find any trouble, thus the process is error proof.

Here are the data (ply file) of the aligned data set : Dragon aligned


Next I have used Poisson surface reconstruction on the aligned data set and got this very smooth result :




Here are the data (ply file) of the reconstructed 3D object : Dragon reconstructed


Also here is a nice setting to run ScanalyzeGPU. A dual monitor. On one screen the main window and on the other the tools needed for ICP :



Note : If anybody wants to participate in the development of this Software send me a PM or e-mail. When this application is ready it will be uploaded in the Mac Store for free and I will include all the names of the people who have participated. You should know CUDA + C++ + 3D Computer Graphics (or willing to learn on your own 3D computer Graphics) in order to participate. The next application that I want to embed in Scanalyze is GPU-based Poisson surface reconstruction : Highly Parallel Surface Reconstruction. Mail me if you want to participate in coding this paper.





Share this post

Link to post
Share on other sites



hot damn that's a lot of pixels moving around.


Scanalyze seems to work fine for me but I don't understand what to do with it except look at the pretty models.

I'm a musician, not a maths genius and I don't really know anything about 3D graphics. :D


If you want me to try anything specific, let me know.


Specs: 10.6.7 retail, 64-bit kernel and drivers, Core 2 Duo E8500, 4GB RAM, 1GB GTX 460.



Share this post

Link to post
Share on other sites

I wanted to see at the output and your GPU memory reading which is ok. A friend of mine with a MacBook Pro, NVIDIA 9700M has issues with the readings but yet again with 16 CUDA cores and 256VRAM I did not expect him to be able to run it.

Share this post

Link to post
Share on other sites

I have added also the case when there is not enough GPU memory to perform ICP. Then a pop appears telling you so.




Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.