Vorpaline

Default

The Vorpaline software takes a new approach to 3D mesh generation, based on the theory of numerical optimization. The optimal mesh generation algorithm developed in the frame of the European Research Council GOODSHAPE project globally and automatically optimizes the mesh elements with respect to geometric constraints (two patents) . The mathematical foundations of this algorithm, i.e. the minimization of a smooth energy function, result in practice in a faster algorithm, and - more importantly - in a higher flexibility. For instance, it will allow automatic generation of the aforementioned "hex-dominant" meshes.


Please log in to perform a job with this app.


\V (O |R |P /A |L |I |N |E

(C) Bruno Levy, INRIA - ALICE, 2012-2014 Vorpaline 0.9.0 (rev:1017, built:2014-09-18 11:35:04)

*** internal version - never expires ***

 _________________________________________________________________________________________________________________________
|                                                                                                                         |
| Usage: orpaline inputfile <outputfile> <parameter=value>*                                                               |
| Showing all parameters (*:advanced parameters)                                                                          |
   ____________________
 _/ =====[global]===== \__________________________________________________________________________________________________
|                                                                                                                         |
|  profile (=scan) : Vorpaline mode (scan, convert, repair, heal, cad)                                                    |
| *debug  (=false) : Toggles debug mode                                                                                   |
| *pre     (=true) : Toggles pre-processing phase                                                                         |
| *remesh  (=true) : Toggles remeshing phase                                                                              |
| *post    (=true) : Toggles post-processing phase                                                                        |
| *co3ne  (=false) : Use reconstruction                                                                                   |
   ____________________________________
 _/ ==[*sys]====[System fine tuning]== \__________________________________________________________________________________
|                                                                                                                         |
|  sys:assert      (=throw) : Assertion behavior (abort, throw)                                                           |
|  sys:multithread  (=true) : Enables multi-threaded computations                                                         |
|  sys:FPE         (=false) : Enables floating-point exceptions                                                           |
|  sys:cancel      (=false) : Enables interruption of cancelable tasks                                                    |
|  sys:max_threads    (=12) : Maximum number of concurrent threads                                                        |
|  sys:use_doubles (=false) : Uses double precision in output .mesh files                                                 |
|  sys:lowmem      (=false) : Reduces RAM consumption (but slower)                                                        |
|  sys:stats       (=false) : Display statistics on exit                                                                  |
   _________________________________
 _/ ==[*log]====[Logger settings]== \_____________________________________________________________________________________
|                                                                                                                         |
|  log:quiet       (=false) : Turns logging on/off                                                                        |
|  log:pretty       (=true) : Turns console pretty output on/off                                                          |
|  log:file_name        (=) : Logs output to the specified file                                                           |
|  log:features        (=*) : Semicolon separated list of features selected for log                                       |
|  log:features_exclude (=) : Semicolon separated list of features excluded from log                                      |
   ____________________________________
 _/ ==[pre]====[Preprocessing phase]== \__________________________________________________________________________________
|                                                                                                                         |
| *pre:Nsmooth_iter      (=3) : Number of iterations for normals smoothing                                                |
| *pre:margin           (=0%) : Expand border (in % of bounding box diagonal)                                             |
|  pre:repair         (=true) : Repair input mesh                                                                         |
| *pre:epsilon          (=0%) : Colocate tolerance (in % of bounding box diagonal)                                        |
|  pre:max_hole_area   (=10%) : Fill holes smaller than (in % total area)                                                 |
|  pre:max_hole_edges (=2000) : Fill holes with a smaller nb. of edges                                                    |
|  pre:min_comp_area    (=3%) : Remove small components (in % total area)                                                 |
|  pre:vcluster_bins     (=0) : Number of bins for vertex clustering                                                      |
   ___________________________________
 _/ ==[remesh]====[Remeshing phase]== \___________________________________________________________________________________
|                                                                                                                         |
|  remesh:nb_pts       (=30000) : Number of vertices                                                                      |
|  remesh:anisotropy       (=1) : Anisotropy factor                                                                       |
| *remesh:by_parts     (=false) : Part by part remeshing                                                                  |
|  remesh:gradation        (=0) : Mesh gradation exponent                                                                 |
| *remesh:lfs_samples  (=10000) : Number of samples for lfs (gradation)                                                   |
| *remesh:sharp_edges  (=false) : Reconstruct sharp edges                                                                 |
| *remesh:Nfactor          (=5) : For sharp_edges                                                                         |
| *remesh:multi_nerve   (=true) : Insert new vertices to preserve topology                                                |
| *remesh:RVC_centroids (=true) : Use centroids of restricted Voronoi cells                                               |
   _____________________________
 _/ ==[*algo]====[Algorithms]== \_________________________________________________________________________________________
|                                                                                                                         |
|  algo:nn_search           (=BNN) : Nearest neighbors search (ANN, BNN)                                                  |
|  algo:delaunay             (=NN) : Delaunay algorithm                                                                   |
|  algo:hole_filling (=loop_split) : Hole filling mode (loop_split, Nloop_split, ear_cut)                                 |
|  algo:predicates         (=fast) : Geometric predicates (fast, exact)                                                   |
|  algo:parallel           (=true) : Use parallel standard algorithms                                                     |
   ______________________________________
 _/ ==[post]====[Postprocessing phase]== \________________________________________________________________________________
|                                                                                                                         |
|  post:repair        (=false) : Repair output mesh                                                                       |
|  post:max_hole_area    (=0%) : Fill holes smaller than (in % total area)                                                |
|  post:max_hole_edges (=2000) : Fill holes with a smaller nb. of edges than                                              |
|  post:min_comp_area    (=3%) : Remove small components (in % total area)                                                |
|  post:max_deg3_dist  (=0.1%) : Degree3 vertices threshold (in % bounding box diagonal)                                  |
|  post:isect         (=false) : Tentatively remove self-intersections                                                    |
   _______________________________________
 _/ ==[*opt]====[Optimizer fine tuning]== \_______________________________________________________________________________
|                                                                                                                         |
|  opt:nb_Lloyd_iter   (=5) : Number of iterations for Lloyd pre-smoothing                                                |
|  opt:nb_Newton_iter (=30) : Number of iterations for Newton-CVT                                                         |
|  opt:nb_LpCVT_iter  (=10) : Number of iterations for LpCVT                                                              |
|  opt:Newton_m        (=7) : Number of evaluations for Hessian approximation                                             |
   __________________________________
 _/ ==[*co3ne]====[Reconstruction]== \____________________________________________________________________________________
|                                                                                                                         |
|  co3ne:nb_neighbors     (=30) : Number of neighbors used in reconstruction                                              |
|  co3ne:Psmooth_iter      (=0) : Number of smoothing iterations                                                          |
|  co3ne:radius           (=5%) : Search radius (in % bounding box diagonal)                                              |
|  co3ne:repair         (=true) : Repair output surface                                                                   |
|  co3ne:max_N_angle      (=60) : Filter bad triangles (in degrees)                                                       |
|  co3ne:max_hole_area    (=5%) : Fill holes smaller than (in % total area)                                               |
|  co3ne:max_hole_edges  (=500) : Fill holes with a smaller nb. of edges                                                  |
|  co3ne:min_comp_area (=0.01%) : Remove small components (in % total area)                                               |
|  co3ne:min_comp_facets  (=10) : Remove small components (in facet nb.)                                                  |
|  co3ne:T12            (=true) : Use also triangles seen from 1 and 2 seeds                                              |
\_________________________________________________________________________________________________________________________/

In input :

sample.obj

    

sample.obj

    

allgo.log
\V (O |R |P /A |L |I |N |E
(C) Bruno Levy, INRIA - ALICE, 2012-2014
Vorpaline 0.9.0 (rev:1113, built:2014-12-16 14:55:57)
*** internal version - never expires ***
o-[I/O         ] Output = out.meshb
                 Loading input file sample.obj...
                 nb_v:8 nb_f:12 nb_b:0 tri:1 dim:3
o-[Load        ] Elapsed time: 0 s

=[preprocessing]=
o-[CmdLine     ] using pre:epsilon=0(0%)
o-[Validate    ] Mesh does not have any duplicated vertex (good)
                 Detected 0 duplicate and 0 degenerate facets
                 No degenerate nor duplicate facet (good)
                 No non-manifold vertex (good)
                 nb_v:8 nb_f:12 nb_b:0 tri:1 dim:3
o-[CmdLine     ] using pre:min_comp_area=0.72(3%)
o-[Components  ] Nb connected components=1
                 Mesh does not have small connected component (good)
o-[CmdLine     ] using pre:max_hole_area=2.4(10%)
o-[Bridges     ] Mesh has no bridge (good)
o-[FillHoles   ] Mesh is closed (does not have any hole)
o-[Nsmooth     ] Smoothing normals, 3 iteration(s)
o-[Validate    ] Mesh does not have 0-area facets (good)
o-[CmdLine     ] using pre:margin=0(0%)
o-[Pre         ] Elapsed time: 0 s

=[remeshing]=
o-[RVD         ] Using fast predicates
                 Creating 4 parts
                 Computing initial sampling on surface, using dimension=6
o-[Lloyd       ] Elapsed time: 0.37s
o-[Newton      ] Elapsed time: 2.87s
o-[Remesh      ] Computing RVD...
o-[Validate    ] Detected 0 duplicate and 0 degenerate facets
                 No non-manifold vertex (good)
                 nb_v:30000 nb_f:59996 nb_b:0 tri:1 dim:3
o-[Remesh      ] Elapsed time: 3.46 s

=[postprocessing]=
o-[CmdLine     ] using post:min_comp_area=0.714074(3%)
o-[Components  ] Nb connected components=1
                 Mesh does not have small connected component (good)
o-[CmdLine     ] using post:max_hole_area=0(0%)
                 using post:max_deg3_dist=0.0034647(0.1%)
o-[Degree3     ] Removing 0/1 degree 3 vertices (within max_deg3_dist)
o-[Post        ] Elapsed time: 0.02 s

=[result]=
o-[FinalMesh   ] nb_v:30000 nb_f:59996 nb_b:0 tri:1 dim:3
o-[I/O         ] Saving file out.meshb...
o-[Total time  ] Elapsed time: 3.52 s



In output :

out.meshb

    allgo.log
    
\V (O |R |P /A |L |I |N |E
(C) Bruno Levy, INRIA - ALICE, 2012-2014
Vorpaline 0.9.0 (rev:1113, built:2014-12-16 14:55:57)
*** internal version - never expires ***
o-[I/O         ] Output = out.meshb
                 Loading input file sample.obj...
                 nb_v:8 nb_f:12 nb_b:0 tri:1 dim:3
o-[Load        ] Elapsed time: 0 s

=[preprocessing]=
o-[CmdLine     ] using pre:epsilon=0(0%)
o-[Validate    ] Mesh does not have any duplicated vertex (good)
                 Detected 0 duplicate and 0 degenerate facets
                 No degenerate nor duplicate facet (good)
                 No non-manifold vertex (good)
                 nb_v:8 nb_f:12 nb_b:0 tri:1 dim:3
o-[CmdLine     ] using pre:min_comp_area=0.72(3%)
o-[Components  ] Nb connected components=1
                 Mesh does not have small connected component (good)
o-[CmdLine     ] using pre:max_hole_area=2.4(10%)
o-[Bridges     ] Mesh has no bridge (good)
o-[FillHoles   ] Mesh is closed (does not have any hole)
o-[Nsmooth     ] Smoothing normals, 3 iteration(s)
o-[Validate    ] Mesh does not have 0-area facets (good)
o-[CmdLine     ] using pre:margin=0(0%)
o-[Pre         ] Elapsed time: 0 s

=[remeshing]=
o-[RVD         ] Using fast predicates
                 Creating 4 parts
                 Computing initial sampling on surface, using dimension=6
o-[Lloyd       ] Elapsed time: 0.37s
o-[Newton      ] Elapsed time: 2.87s
o-[Remesh      ] Computing RVD...
o-[Validate    ] Detected 0 duplicate and 0 degenerate facets
                 No non-manifold vertex (good)
                 nb_v:30000 nb_f:59996 nb_b:0 tri:1 dim:3
o-[Remesh      ] Elapsed time: 3.46 s

=[postprocessing]=
o-[CmdLine     ] using post:min_comp_area=0.714074(3%)
o-[Components  ] Nb connected components=1
                 Mesh does not have small connected component (good)
o-[CmdLine     ] using post:max_hole_area=0(0%)
                 using post:max_deg3_dist=0.0034647(0.1%)
o-[Degree3     ] Removing 0/1 degree 3 vertices (within max_deg3_dist)
o-[Post        ] Elapsed time: 0.02 s

=[result]=
o-[FinalMesh   ] nb_v:30000 nb_f:59996 nb_b:0 tri:1 dim:3
o-[I/O         ] Saving file out.meshb...
o-[Total time  ] Elapsed time: 3.52 s

03/08/2015 : Version 1.0, initial version

How to use our REST API :

Think to check your private token in your account first. You can find more detail in our documentation tab.

This app id is : 17

This curl command will create a job, and return your job url, and also the average execution time

files and/or dataset are optionnal, think to remove them if not wanted
curl -H 'Authorization: Token token=<your_private_token>' -X POST
-F job[webapp_id]=17
-F job[param]=""
-F job[queue]=standard
-F files[0]=@test.txt
-F files[1]=@test2.csv
-F job[file_url]=<my_file_url>
-F job[dataset]=<my_dataset_name> https://allgo.inria.fr/api/v1/jobs

Then, check your job to get the url files with :

curl -H 'Authorization: Token token=<your_private_token>' -X GET https://allgo.inria.fr/api/v1/jobs/<job_id>