Skip to content
/ ppm3d Public

ppm3d is a 3D Point Pattern Matching package that is designed to find the closest 3D motifs in a 3D point cloud.

License

Unknown, BSD-2-Clause licenses found

Licenses found

Unknown
LICENSE
BSD-2-Clause
Absor_LICENSE
Notifications You must be signed in to change notification settings

adehgha/ppm3d

Repository files navigation

ppm3d:

ppm3d is a 3D Point Pattern Matching package that is designed to find the closest match for a given 3D motif in a 3D point cloud. It is written in C++ and ships with a python wrapper.

https://github.com/adehgha/Animations/blob/master/ppm3d_animation.gif

Introduction:

This software is the implementation of the 3D point pattern matching algorithm that has been published in the following article. Please cite the following article if you use this algorithm in your research. Contact the NCSU (refer to the provided license) for commercial use.

Banadaki AD, Maldonis JJ, Voyles PM, Patala S., "Point-Pattern Matching Technique for Local Structural Analysis in Condensed Matter", arXiv preprint arXiv:1811.06098. 2018 Nov 14.

Installation:

If you are on a debian based OS, or Ubuntu, the repository ships with the compiled shared library(point_match.so). On other linux distributions you will need to compile the package. For other OS contact the authors.

  1. Clone the ppm3d repository from github:

    $ git clone https://github.com/spatala/ppm3d

Compilation:

To compile the ppm3d package:

  1. Clone the ppm3d repository from github:

    $ git clone https://github.com/spatala/ppm3d
  2. Change your current directory to ppm3d:

    $ cd /ppm3d_repo_path/ppm3d
  3. Clean the original build:

    $ make clean
  4. Build the Repository: Contact the authors for use on mac and Windows.

    $ make
  5. Check the compilation: Up on successful compilation a shared library file named "point_match.so" will be created in this folder.

  6. Add ppm3d to you path: if you are using bash:

    $ export PATH=/ppm3d_repo_path/ppm3d:$PATH
    $ export PYTHONPATH="${PYTHONPATH}:/ppm3d_repo_path/ppm3d"

How to Use This Package:

  1. Call the find_map function from pppm3d.py to find a given set of points (model) in a 3d point target:

    >>> ppm3d.find_map(model, target, 3, True, weights)
  2. Call the absor function to align the mapped target to the model:

    >>> ppm3d.absor(model, target, False, weights)
  3. Call the align_polys function to perform the steps 1 and 2, combined:

    >>> rmsd_error, failure_flag, alignment_attributes = ppm3d.align_polys((model, target, model_weights, target_weights))

Consult the documentation for further details.

Prerequisites:

  1. install GNU Compilers from here.
  2. install python from here.
  3. install numpy from here.
  4. install setuptools from here.

Cite ppm3d:

Banadaki AD, Maldonis JJ, Voyles PM, Patala S., "Point-Pattern Matching Technique for Local Structural Analysis in Condensed Matter", arXiv preprint arXiv:1811.06098. 2018 Nov 14.

Credits:

ppm3d is written by:

Copyright (c) 2018, Arash Dehghan Banadaki and Srikanth Patala.

About

ppm3d is a 3D Point Pattern Matching package that is designed to find the closest 3D motifs in a 3D point cloud.

Resources

License

Unknown, BSD-2-Clause licenses found

Licenses found

Unknown
LICENSE
BSD-2-Clause
Absor_LICENSE

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published