{"id":13627363,"url":"https://github.com/larc/gproshan","last_synced_at":"2025-04-16T19:31:36.029Z","repository":{"id":43693515,"uuid":"88686093","full_name":"larc/gproshan","owner":"larc","description":"geometry processing and shape analysis framework","archived":false,"fork":false,"pushed_at":"2025-03-29T14:06:42.000Z","size":50742,"stargazers_count":66,"open_issues_count":1,"forks_count":15,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-03-29T14:32:30.664Z","etag":null,"topics":["computational-geometry","cpp","cuda","dictionary-learning","geometry-processing","opengl","shape-analysis","sparse-coding"],"latest_commit_sha":null,"homepage":"https://github.com/larc/gproshan","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/larc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-19T01:23:17.000Z","updated_at":"2025-02-19T21:06:01.000Z","dependencies_parsed_at":"2023-10-11T18:35:12.228Z","dependency_job_id":"3caa83d8-25e2-4f54-a47f-97f08226bdbd","html_url":"https://github.com/larc/gproshan","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larc%2Fgproshan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larc%2Fgproshan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larc%2Fgproshan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/larc%2Fgproshan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/larc","download_url":"https://codeload.github.com/larc/gproshan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249268555,"owners_count":21240943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["computational-geometry","cpp","cuda","dictionary-learning","geometry-processing","opengl","shape-analysis","sparse-coding"],"created_at":"2024-08-01T22:00:33.290Z","updated_at":"2025-04-16T19:31:31.019Z","avatar_url":"https://github.com/larc.png","language":"C++","readme":"## [gproshan](https://github.com/larc/gproshan): a geometry processing and shape analysis framework \n\n![](https://raw.githubusercontent.com/larc/gproshan/master/gproshan.png) \n\n\nThis framework integrates some algorithms and contributions focus on the areas of computer graphics, geometry processing and computational geometry.\n\n\n## Build and Run\nInstall all dependencies and run:\n\n\tmkdir build\n\tcd build\n\tcmake ..\n\tmake\n\nfinally execute:\n\n\t./gproshan [mesh_paths.(off,obj,ply)]\n\n### Dependencies (Linux)\ng++ \u003e= 8.3, cuda \u003e= 10.1, libarmadillo, libeigen, libsuitesparse, libopenblas, opengl, glew, gnuplot, libcgal, libgles2-mesa, cimg\n\nIn Ubuntu (\u003e= 18.04) you can install them with:\n\n\tsudo apt install libarmadillo-dev libeigen3-dev libopenblas-dev libsuitesparse-dev libglew-dev freeglut3-dev libgles2-mesa-dev cimg-dev libcgal-dev\n\n#### Build Status\n\n##### Ubuntu 18.04 (Bionic)\n[![Build Status](https://travis-ci.com/larc/gproshan.svg?branch=main)](https://travis-ci.com/larc/gproshan)\n\n## Contributions\n\n### CHE implementation\nWe have implemented a [Compact Half-Edge (CHE)](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.523.7580) data structure to manipulated triangular meshes, also can be extended for other polygonal meshes.\nSee the paper: [CHE: A scalable topological data structure for triangular meshes](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.523.7580) for more details.\n\n### Geodesics\nWe proposed a CPU/GPU parallel algorithm to compute geodesics distances on triangular meshes. Our\napproach is competitive with the current methods and is simple to implement. Please cite our paper:\n\n[A minimalistic approach for fast computation of geodesic distances on triangular meshes](https://doi.org/10.1016/j.cag.2019.08.014)\n\n```bibtex\n@Article{ROMEROCALLA2019,\n  author   = { {Romero Calla}, Luciano A. and {Fuentes Perez}, Lizeth J. and Montenegro, Anselmo A. },\n  title    = { A minimalistic approach for fast computation of geodesic distances on triangular meshes },\n  journal  = { Computers \\\u0026 Graphics },\n  year     = { 2019 },\n  issn     = { 0097-8493 },\n  doi      = { https://doi.org/10.1016/j.cag.2019.08.014 },\n  keywords = { Geodesic distance, Fast marching, Triangular meshes, Parallel programming, Breadth-first search },\n  url      = { http://www.sciencedirect.com/science/article/pii/S0097849319301426 }\n}\n```\n\nAlso, we have implemented the [Fast Marching algorithm](), and the [Heat method](https://www.cs.cmu.edu/~kmcrane/Projects/HeatMethod/index.html).\n\n### Dictionary Learning\nWe proposed a Dictionary Learning and Sparse Coding framework, to solve the problems of Denoising,\nInpainting, and Multiresolution on triangular meshes. This work is still in process. Please cite\nour work:\n\n[A Dictionary Learning-based framework on Triangular Meshes](https://arxiv.org/abs/1810.08266)\n\n```bibtex\n\n@ARTICLE{2018arXiv181008266F,\n\tauthor\t= { {Fuentes Perez}, L.~J. and {Romero Calla}, L.~A. and {Montenegro}, A.~A. },\n\ttitle\t= { Dictionary Learning-based Inpainting on Triangular Meshes },\n\tjournal\t= { ArXiv e-prints },\n\teprint\t= { 1810.08266 },\n\tyear\t= 2018,\n\tmonth\t= oct,\n\turl\t= { https://arxiv.org/abs/1810.08266 }\n}\n```\n\n### Hole repairing\nWe implemented repairing mesh holes in two steps:\n\n1. Generate a mesh to cover the hole. We modified the algorithm presented in the paper: [A robust hole-filling algorithm for triangular mesh](https://doi.org/10.1007/s00371-007-0167-y), in order to\ngenerate a planar triangular mesh using a priority queue.\n2. Fit the surface described by the new points in order to minimize the variation of the surface,\nsolving the Poisson equation (see the Chapter 4 of the book [Polygon Mesh Processing](http://www.pmp-book.org/)) or using Biharmonic splines.\n\nPlease see and cite our final undergraduate project: [mesh hole repairing report](http://repositorio.unsa.edu.pe/handle/UNSA/2576) (in Spanish).\n\n### Key-Points and Key-Components\n\nWe proposed a simple method based on the faces' areas to compute key-points for adaptive meshes.\n\nPlease cite our paper (in Spanish):\n\n[Efficient approach for interest points detection in non-rigid shapes](https://doi.org/10.1109/CLEI.2015.7359459)\n\n```bibtex\n@INPROCEEDINGS{7359459,\n\tauthor\t\t= { C. J. Lopez Del Alamo and L. A. Romero Calla and L. J. Fuentes Perez },\n\tbooktitle\t= { 2015 Latin American Computing Conference (CLEI) },\n\ttitle\t\t= { Efficient approach for interest points detection in non-rigid shapes },\n\tyear\t\t= { 2015 },\n\tmonth\t\t= { Oct },\n\tpages\t\t= { 1-8 },\n\tdoi\t\t= { 10.1109/CLEI.2015.7359459 }\n}\n```\n\nComputing key-components depends on the accuracy and definition of the key points. We were inspired\nby the [work of Ivan Sipiran](https://www.researchgate.net/publication/262350194_Key-component_detection_on_3D_meshes_using_local_features),\nhe defined for the first time the notion of a key-component in meshes.\nWe proposed a method based on geodesics to determine the key components.\n\nPlease see and cite our final undergraduate project: [key-components report](http://repositorio.unsa.edu.pe/handle/UNSA/2575) (in Spanish).\n\n\n### Decimation\nWe are implementing the algorithm described by the paper [Stellar Mesh Simplification Using Probabilistic Optimization](https://doi.org/10.1111/j.1467-8659.2004.00811.x),\nto compute a mesh simplification.\n\n### Fairing\nWe implemented Spectral and Taubin fairing algorithms to smooth a mesh surface.\nSee the Chapter 4 of the book [Polygon Mesh Processing](http://www.pmp-book.org/).\n\n### Laplacian and signatures\nLaplace-Beltrami operator and its eigen decomposition, WKS, HKS, GPS signatures.\n\n## Documentation\nExecute:\n\n\tdoxygen Doxyfile\n\nto generate the documentation in *html* and *LaTeX*.\n\n## Viewer\nThe viewer was initially based in the viewer of [https://github.com/dgpdec/course](https://github.com/dgpdec/course). The current viewer uses VAO and VBO to render, and the shaders have been modified and upgraded.\n\n## License\n\nMIT License\n\n## Authors\n- [Lizeth Joseline Fuentes Pérez](https://github.com/lishh)\n- [Luciano Arnaldo Romero Calla](https://github.com/larc)\n\n","funding_links":[],"categories":["General Libraries"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flarc%2Fgproshan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flarc%2Fgproshan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flarc%2Fgproshan/lists"}