LIBIGL on Rhino8

Hi,

This is a C++ to Python binding for libigl. I would like to ask if anyone could test it, specially on Windows and Mac Intel. This is a short video how to open the script folder in Python ScriptEditor and run and example file:

examples.zip (277.5 KB)

Writing bindings is fairly mechanical and simple process. You can contribute by following this package documentation:

Mesh Curvature:

Exact and heat distance for parallel offsets:

Isovalues and mesh splitting:

Parametrization:

Quad planarization:

Mesh boundaries:

Isolines:

Plane splits:

Plane split:

8 Likes

All worked flawlessly, the python environment took some reloading and the script editor lagged a bit, but that is nothing on your end. Screenshots are sometimes too thick, as someone forgot to turn off print preview.

Summary

Rhino 8 SR16 2025-2-11 (Rhino 8, 8.16.25042.13001, Git hash:master @ d0f731de6fe2c5fdcad78ad80faf154307815f18)
License type: Educational, build 2025-02-11
License details: Cloud Zoo

Windows 11 (10.0.26100 SR0.0) or greater (Physical RAM: 128GB)
.NET 7.0.0

Computer platform: DESKTOP

Standard graphics configuration.
Primary display and OpenGL: NVIDIA GeForce RTX 3060 (NVidia) Memory: 12GB, Driver date: 8-14-2024 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 560.94
> Accelerated graphics device with 4 adapter port(s)
- Windows Main Display attached to adapter port #0
- Secondary monitor attached to adapter port #1

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
GPU Tessellation is: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)

Anti-alias mode: 8x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 8-14-2024
Driver Version: 32.0.15.6094
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 12 GB

example_boundary.py

example_curvature_gaussian.py

example_curvature_principal.py

example_geodistance_multiple.py

example_geodistance.py

example_intersections.py

example_isolines.py

example_massmatrix.py

example_meshing_geodesic.py

example_meshing_plane.py

example_meshing_planes.py

example_meshing_waves.py

example_parametrisation.py

example_planarize.py

1 Like

Thank you very much:)

1 Like

Hello Petras
it works well here. My first use of Python and Script Editor !
Thanks for these tools
Libigl and CGAL are the 2 tools that I wanted to use.

1 Like

Thank you :slight_smile:

Is there a tool in Compas to output a Mesh in Grasshopper I see that there are some file output but I don’t see a rhino Mesh. If no tool, no problem, I will make a file and read it.

Conversions from and to are described here:

Also source code for conversions of compas is here:

If you want to directly convert c++ wrapper from numpy to rhino you can use the source code too:

1 Like

We just added a new method for mesh mapping using parametrization:

mapping.3dm (478.1 KB)
mapping0.py (4.1 KB)
mapping_boolean.py (4.1 KB)
mapping_tessagon_patterns.py (6.1 KB)


Patterns from Tessagon library:





2 Likes

Hi @Petras_Vestartas ,thank you for sharing these impressive scripts. Do you have any plans to implement these tools as Grasshopper scripts? If not, I’d be glad to do so.

3 Likes

You would be very welcome to implement as grasshopper scripts.
BRG tries to use Rhino Plugins or simple scripteditor python commands or vs code but there are no plans for grasshopper :slight_smile:

1 Like