
MeshPipe: A Python-based Tool for Easy Automation and Demonstration of Geometry Processing Pipelines Joan Fons, Antoni Chica a and Carlos Andujar b ViRVIG, Universitat Politecnica` de Cataluna, Barcelona, Spain Keywords: Geometry Processing, Polygonal Meshes. Abstract: The popularization of inexpensive 3D scanning, 3D printing, 3D publishing and AR/VR display technologies have renewed the interest in open-source tools providing the geometry processing algorithms required to clean, repair, enrich, optimize and modify point-based and polygonal-based models. Nowadays, there is a large variety of such open-source tools whose user community includes 3D experts but also 3D enthusiasts and professionals from other disciplines. In this paper we present a Python-based tool that addresses two major caveats of current solutions: the lack of easy-to-use methods for the creation of custom geometry processing pipelines (automation), and the lack of a suitable visual interface for quickly testing, comparing and sharing different pipelines, supporting rapid iterations and providing dynamic feedback to the user (demonstration). From the user’s point of view, the tool is a 3D viewer with an integrated Python console from which internal or external Python code can be executed. We provide an easy-to-use but powerful API for element selection and geometry processing. Key algorithms are provided by a high-level C++ library exposed to the viewer via Python-C++ bindings. Unlike competing open-source alternatives, our tool has a minimal learning curve and typical pipelines can be written in a few lines of Python code. 1 INTRODUCTION photos and then using open-source MVS+SfM tools such as COLMAP (Schonberger¨ and Frahm, 2016; Point-based and polygonal-based models are the cen- Schonberger¨ et al., 2016). However, the resulting tral part of an increasing number of popular applica- model will include background objects that have to tions including 3D scanning (e.g. via photogramme- be removed and missing parts that have to be re- try tools), 3D modeling (e.g. Blender, Tinkercad), 3D paired. If a high-quality setting was used, the model printing services, 3D publishing tools (e.g. Sketch- will also require some optimizations (simplification, Fab) and desktop-based or AR/VR-based interactive normal mapping) to be ready for publication. Dif- applications. ferent applications often require different processing The availability of free or low-cost options for pipelines, although it makes sense for users to share these technologies have significantly increased their ready-to-use pipelines for specific tasks. user base, in areas such as art, architecture, cultural Today, there are many open-source libraries and heritage, construction and entertainment. This means tools supporting geometry processing. Some exam- that a growing number of users are not 3D model- ples we review in the next section are CGAL, VCG, ing/3D processing experts, but 3D enthusiasts, 3D PMP, PCL and libigl (libraries) and MeshLab, Mesh- hobbyists and professionals from other disciplines. Mixer and OpenFlipper (applications). A common requirement in all applications above The libraries above provide efficient imple- is the need to perform some geometry processing mentations of common geometry processing algo- on the 3D models before they become useful for rithms (analysis, repairing, simplification, remeshing, the target application. Consider for example a cul- smoothing, parameterization...) and obviously excel tural heritage project for digitizing and publishing in terms of automation. Unfortunately, they have a an art work. A 3D model can be created by taking substantial entry barrier for non-experts, and most of them require compilation, which makes it difficult to a https://orcid.org/0000-0001-7519-2201 iterate different pipelines or experimenting with as- b https://orcid.org/0000-0002-8480-4713 sociated parameters. Some libraries have been com- 71 Fons, J., Chica, A. and Andujar, C. MeshPipe: A Python-based Tool for Easy Automation and Demonstration of Geometry Processing Pipelines. DOI: 10.5220/0008935900710082 In Proceedings of the 15th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications (VISIGRAPP 2020), pages 71-82 ISBN: 978-989-758-402-2 Copyright c 2020 by SCITEPRESS – Science and Technology Publications, Lda. All rights reserved GRAPP 2020 - 15th International Conference on Computer Graphics Theory and Applications piled into JavaScript (e.g. MeshLabJS, PMP) to run in a browser, but these incur a substantial performance penalty and still require some background on geome- try processing. Besides libraries, open-source tools provide a graphical user-interface and thus offer immediate feedback on the geometry processing operations be- ing applied. The main drawback is the lack of au- tomation features. Some tools do offer automation (e.g. MeshLab), but filters have an overly long in- terface and iterating with different pipelines is not Figure 1: Intended usage of the Meshpipe viewer: side by straightforward. Automation is key for applying the side with a text editor. same pipeline to a collection of similar models (e.g. scanned objects with similar properties). Another is- tion 2 reviews related work on geometry processing sue is the size limitations when it comes to process software and libraries. Sections 3 and 4 describe the huge models such as those produced with 3D scan- design of the C++/Python API and the 3D viewer. Im- ning pipelines. First, most open-source tools require plementation details are given in Section 5. Section 6 the model to be kept in-core. Second, even if fits shows further script samples and results. Finally, Sec- in core memory, some operations like face selection tion 7 concludes the paper and outlines future work. (cleaning) or mesh parameterization (texturing) take a substantial amount of time on huge models. Try- ing different pipelines on a simplified version is an option, but some steps (e.g. face selection) cannot 2 PREVIOUS WORK be reused on a different mesh and thus working with huge meshes is a tedious task. Finally, some of these The variety of tools and libraries that cover the geo- tools have been designed for 3D professionals (e.g. metric processing of 3D models is quite wide. Some Blender, MeshLab) and thus require some training. features are common to most of them (such as simpli- fication). Others are only found in a subset of them. In this paper we propose a tool to overcome these Some tools serve to expose functionalities of a spe- limitations. We support the fast creation, re-use and cific library. In any case, the goal of tools is not the sharing of custom geometry processing pipelines (au- same as that of libraries. In the following two sub- tomation) through a simple high-level Python API. sections we analyze several of the available tools and We make extensive use of default parameters to sim- libraries. plify the use by non-experts. We also provide a pow- erful element selection mechanism so that any algo- 2.1 Tools rithm (deleting, smoothing, simplifying...) can be ap- plied to the desired part. Meshmixer The tool itself is a 3D viewer with an inte- grated Python console from which internal or external Meshmixer is a closed source software owned by Au- Python code can be executed (see Figure 1). Process- todesk. Its main focus is to provide tools for mesh ing operations can be also selected via the GUI, which processing and ”clay-like” sculpting. It has a very automatically inserts the Python call with appropriate powerful set of tools and a 3D viewport that helps the parameters. User interactions such as lasso selections user visualize the mesh properties as well as perform can be saved and reused on a different version (e.g. all sorts of modification tasks. higher quality) of the model. Custom pipelines can Over the last year it has incorporated many fea- be created with any editor, and the tool keeps track tures related to 3D printing, such as support genera- of changes to automatically load the pipeline. This tion for manufacturing processes and integration with way we support rapid iterations while providing dy- various 3D printer models in order to provide a one- namic feedback to the user (demonstration). In or- click setup to start the prints. However, there is no der to maximize performance, key data structures and support for any kind of automation or scripting. algorithms are implemented in C++, and accessible via Python-C++ bindings. The library in turn pro- MeshLab vides typical geometry processing algorithms through feature-rich libraries such as PMP and PCL. Meshlab (Cignoni et al., 2008) is a free and open The rest of the paper is organized as follows. Sec- source tool built upon VCGlib 2.2 that excels in the 72 MeshPipe: A Python-based Tool for Easy Automation and Demonstration of Geometry Processing Pipelines acquisition and reconstruction of meshes. It has great processing and displaying of triangular and tetrahe- tools for working with 3D scanned data and for ob- dral meshes. Its functionalities include simplification, taining a clean and usable mesh from it. Additionally, smoothing, parameterization, reconstruction, and sev- there is a web based variant called MeshLabJS, that eral others. The library is also well known because of replicates many of the features found in the original its use in The Digital Michelangelo Project. software in a web browser environment, thus requir- ing no local installation. CGAL Unlike Meshmixer, this tool introduces the con- cept of ”filter scripts” which allow the user to define a The Computational Geometry Algorithms Library processing pipeline to be reused in as many meshes as (CGAL) is by far the most extensive open library in needed. However, these pipelines are fixed, they only the context of computational geometry. The project contain a list of predefined steps and parameters and is developed via a collaborative effort from a commu- there is no possibility of changing them depending on nity of developers working at research institutes, uni- the properties of the mesh.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages12 Page
-
File Size-