Skip to content

COMODO-research/Geogram.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Geogram.jl

License: MIT

Description

This project is a Julia wrapper for the geogram C++ project.

For the moment the only functionality exposed by this wrapper is the remeshing (vorpalite) functionality in Geogram, which enables smooth remeshing of surfaces. Secondly the wrapper currently works by exporting a .obj file, calling Geogram as an external executable using run with desired parameters set, and importing of the output .obj file. In the future the wrapper should feature a more complete and efficient interface by directly interfacing with the C++ code through Julia (e.g. using ccall).

Installation

julia> ]
(@v1.xx) pkg> add https://github.com/COMODO-research/Geogram.jl

or

julia> using Pkg
julia> Pkg.add(url = "https://github.com/COMODO-research/Geogram.jl")

Getting started

To get started install the package, study the documentation, and test some of the demos provided in the examples folder.

Documentation

Under construction, see the demos provided for assistance at the moment.

External dependancies

This project is a wrapper for Geogram. Currently the project ships with executables for vorpalite (which is part of geogram) for Linux, Windows, and Mac. Depending on your operating system, you may want to or need to compile the source yourself, here are some basic instructions for Linux (requires cmake):

git clone --recurse-submodules https://github.com/BrunoLevy/geogram.git
cd geogram
./configure.sh
cd build/Linux64-gcc-dynamic-Release
make -j 8
**cp bin/vorpalite** <path to Geomgram.jl>/lib_ext/geogram/lin64/bin/vorpalite

In future releases the above should not be needed as the source code will be called by Julia directly.

The above process requires several dependancies. One approach is to repeatedly run the step ./configure.sh and to study the error messages. The error messages will tell you what missing dependancy to install (sudo apt search can be used to find the right name). On a recent fresh Ubuntu 24.04 installation the following had to be added but this may depend on your system:

sudo apt install libx11-dev 
sudo apt install libxrandr-dev
sudo apt install libxinerama-dev
sudo apt install libxcursor-dev
sudo apt install libxi-dev
sudo apt install libtbb-dev

Testing

Under constructionm, basic manual testing is available through the demos in the examples folder.

Roadmap

  • Provide basic file export/import wrapping functionality (no ccall interface)
  • Create proper ccall-based interface

How to contribute?

Your help would be greatly appreciated! If you can contribute please do so by posting a pull-request. I am very much open to fully acknowledging your contributions e.g. by listing you as a contributor properly whereever possible, by welcoming you on board as a long term contributor, or by inviting you to be a co-author on publications featuring Geogram.jl functionality.

License

Geogram.jl is released open source under the MIT license.

References and links for Geogram

About

A Julia wrapper for the geogram C++ project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages