All Projects → larc → gproshan

larc / gproshan

Licence: MIT License
geometry processing and shape analysis framework

Programming Languages

C++
36643 projects - #6 most used programming language
Cuda
1817 projects
CMake
9771 projects
GLSL
2045 projects

Projects that are alternatives of or similar to gproshan

dictlearn
Dictionary Learning for image processing
Stars: ✭ 23 (-52.08%)
Mutual labels:  sparse-coding, dictionary-learning
ksvd reg
Regularized K-SVD Algorithm
Stars: ✭ 29 (-39.58%)
Mutual labels:  sparse-coding, dictionary-learning
sparselandtools
✨ A Python package for sparse representations and dictionary learning, including matching pursuit, K-SVD and applications.
Stars: ✭ 55 (+14.58%)
Mutual labels:  sparse-coding, dictionary-learning
Dgtal
Digital Geometry Tools and Algorithm Library
Stars: ✭ 259 (+439.58%)
Mutual labels:  computational-geometry, geometry-processing
Cgal
The public CGAL repository, see the README below
Stars: ✭ 2,825 (+5785.42%)
Mutual labels:  computational-geometry, geometry-processing
Melt
Automatic conservative mesh occluder generation by box filling
Stars: ✭ 105 (+118.75%)
Mutual labels:  computational-geometry, geometry-processing
PGS
Processing Geometry Suite
Stars: ✭ 39 (-18.75%)
Mutual labels:  computational-geometry, geometry-processing
ClassifierToolbox
A MATLAB toolbox for classifier: Version 1.0.7
Stars: ✭ 72 (+50%)
Mutual labels:  sparse-coding, dictionary-learning
mcut
A simple and fast library for mesh booleans and more.
Stars: ✭ 57 (+18.75%)
Mutual labels:  computational-geometry, geometry-processing
lane detection
Lane detection for the Nvidia Jetson TX2 using OpenCV4Tegra
Stars: ✭ 15 (-68.75%)
Mutual labels:  cuda
euler2d kokkos
Simple 2d finite volume solver for Euler equations using c++ kokkos library
Stars: ✭ 27 (-43.75%)
Mutual labels:  cuda
libelas-gpu
Implementation of LIBELAS in cuda.
Stars: ✭ 41 (-14.58%)
Mutual labels:  cuda
geometry-processing-package
Geometry Processing Package
Stars: ✭ 38 (-20.83%)
Mutual labels:  geometry-processing
dbcsr
DBCSR: Distributed Block Compressed Sparse Row matrix library
Stars: ✭ 65 (+35.42%)
Mutual labels:  cuda
HeCBench
software.intel.com/content/www/us/en/develop/articles/repo-evaluating-performance-productivity-oneapi.html
Stars: ✭ 85 (+77.08%)
Mutual labels:  cuda
NewsMTSC
Target-dependent sentiment classification in news articles reporting on political events. Includes a high-quality data set of over 11k sentences and a state-of-the-art classification model.
Stars: ✭ 54 (+12.5%)
Mutual labels:  cuda
polytope
Geometric operations on polytopes of any dimension
Stars: ✭ 51 (+6.25%)
Mutual labels:  computational-geometry
pyprt
Python bindings for the "Procedural Runtime" (PRT) of CityEngine by Esri.
Stars: ✭ 36 (-25%)
Mutual labels:  geometry-processing
allgebra
Base container for developing C++ and Fortran HPC applications
Stars: ✭ 14 (-70.83%)
Mutual labels:  cuda
ctuning-programs
Collective Knowledge extension with unified and customizable benchmarks (with extensible JSON meta information) to be easily integrated with customizable and portable Collective Knowledge workflows. You can easily compile and run these benchmarks using different compilers, environments, hardware and OS (Linux, MacOS, Windows, Android). More info:
Stars: ✭ 41 (-14.58%)
Mutual labels:  cuda

gproshan: a geometry processing and shape analysis framework

This framework integrates some algorithms and contributions focus on the areas of computer graphics, geometry processing and computational geometry.

Build and Run

Install all dependencies and run:

mkdir build
cd build
cmake ..
make

finally execute:

./gproshan [mesh_paths.(off,obj,ply)]

Dependencies (Linux)

g++ >= 8.3, cuda >= 10.1, libarmadillo, libeigen, libsuitesparse, libopenblas, opengl, glew, gnuplot, libcgal, libgles2-mesa, cimg

In Ubuntu (>= 18.04) you can install them with:

sudo apt install libarmadillo-dev libeigen3-dev libopenblas-dev libsuitesparse-dev libglew-dev freeglut3-dev libgles2-mesa-dev cimg-dev libcgal-dev

Build Status

Ubuntu 18.04 (Bionic)

Build Status

Contributions

CHE implementation

We have implemented a Compact Half-Edge (CHE) data structure to manipulated triangular meshes, also can be extended for other polygonal meshes. See the paper: CHE: A scalable topological data structure for triangular meshes for more details.

Geodesics

We proposed a CPU/GPU parallel algorithm to compute geodesics distances on triangular meshes. Our approach is competitive with the current methods and is simple to implement. Please cite our paper:

A minimalistic approach for fast computation of geodesic distances on triangular meshes

@Article{ROMEROCALLA2019,
  author   = { {Romero Calla}, Luciano A. and {Fuentes Perez}, Lizeth J. and Montenegro, Anselmo A. },
  title    = { A minimalistic approach for fast computation of geodesic distances on triangular meshes },
  journal  = { Computers \& Graphics },
  year     = { 2019 },
  issn     = { 0097-8493 },
  doi      = { https://doi.org/10.1016/j.cag.2019.08.014 },
  keywords = { Geodesic distance, Fast marching, Triangular meshes, Parallel programming, Breadth-first search },
  url      = { http://www.sciencedirect.com/science/article/pii/S0097849319301426 }
}

Also, we have implemented the Fast Marching algorithm, and the Heat method.

Dictionary Learning

We proposed a Dictionary Learning and Sparse Coding framework, to solve the problems of Denoising, Inpainting, and Multiresolution on triangular meshes. This work is still in process. Please cite our work:

A Dictionary Learning-based framework on Triangular Meshes

@ARTICLE{2018arXiv181008266F,
	author	= { {Fuentes Perez}, L.~J. and {Romero Calla}, L.~A. and {Montenegro}, A.~A. },
	title	= { Dictionary Learning-based Inpainting on Triangular Meshes },
	journal	= { ArXiv e-prints },
	eprint	= { 1810.08266 },
	year	= 2018,
	month	= oct,
	url	= { https://arxiv.org/abs/1810.08266 }
}

Hole repairing

We implemented repairing mesh holes in two steps:

  1. Generate a mesh to cover the hole. We modified the algorithm presented in the paper: A robust hole-filling algorithm for triangular mesh, in order to generate a planar triangular mesh using a priority queue.
  2. Fit the surface described by the new points in order to minimize the variation of the surface, solving the Poisson equation (see the Chapter 4 of the book Polygon Mesh Processing) or using Biharmonic splines.

Please see and cite our final undergraduate project: mesh hole repairing report (in Spanish).

Key-Points and Key-Components

We proposed a simple method based on the faces' areas to compute key-points for adaptive meshes.

Please cite our paper (in Spanish):

Efficient approach for interest points detection in non-rigid shapes

@INPROCEEDINGS{7359459,
	author		= { C. J. Lopez Del Alamo and L. A. Romero Calla and L. J. Fuentes Perez },
	booktitle	= { 2015 Latin American Computing Conference (CLEI) },
	title		= { Efficient approach for interest points detection in non-rigid shapes },
	year		= { 2015 },
	month		= { Oct },
	pages		= { 1-8 },
	doi		= { 10.1109/CLEI.2015.7359459 }
}

Computing key-components depends on the accuracy and definition of the key points. We were inspired by the work of Ivan Sipiran, he defined for the first time the notion of a key-component in meshes. We proposed a method based on geodesics to determine the key components.

Please see and cite our final undergraduate project: key-components report (in Spanish).

Decimation

We are implementing the algorithm described by the paper Stellar Mesh Simplification Using Probabilistic Optimization, to compute a mesh simplification.

Fairing

We implemented Spectral and Taubin fairing algorithms to smooth a mesh surface. See the Chapter 4 of the book Polygon Mesh Processing.

Laplacian and signatures

Laplace-Beltrami operator and its eigen decomposition, WKS, HKS, GPS signatures.

Documentation

Execute:

doxygen Doxyfile

to generate the documentation in html and LaTeX.

Viewer

The viewer was initially based in the viewer of https://github.com/dgpdec/course. The current viewer uses VAO and VBO to render, and the shaders have been modified and upgraded.

License

MIT License

Authors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].