Bruno Levy Profile picture
Jun 4 37 tweets 19 min read
#geogram is a programming library of geometric algorithms
github.com/BrunoLevy/geog… Image
2/N
It has fundamental geometric algorithms (Delaunay/Voronoi in 2D and 3D)
github.com/BrunoLevy/geog…
github.com/BrunoLevy/geog… Image
3/N
A mesh data structure, for surfacic and volumetric meshes, with optional user-defined attributes
github.com/BrunoLevy/geog… Image
4/N
It has Axis-Aligned Bounding Box trees, that can be used for raytracing meshes ... Image
5/N
... or computing per-vertex ambient occlusion Image
6/N
It has efficient eigenfunctions computation (Manifold Harmonics) Image
7/N
It has surface reconstruction from pointsets (Co3Ne and Poisson)
github.com/BrunoLevy/geog… Image
8/N
It is based on the result of 20 years of research, published at @siggraph, @EurographicsC, @GeometryProcess. It has all the reference implementations of the published articles (cc @ReScienceEds @NPRougier @j_perkel )
github.com/BrunoLevy/geog…
9/N
Geogram was supported by several @Inria grants and two @ERC_Research grants
github.com/BrunoLevy/geog…
10/N
Our latest result is a "mathematical time machine" for computational cosmology (published in @PhysRevLett, featured in @PhysicsMagazine, see the following article)
physics.aps.org/articles/v15/75
Geogram computes semi-discrete optimal transport problem with HUGE Laguerre diagrams !
@PhysRevLett @PhysicsMagazine 11/N Reconstructing the trajectories of the galaxies from the origin to now can be recasted as a semi-discrete optimal transport problem, that boils down to computing Laguerre diagrams Image
12/N More about this in this thread:
13/N or in the upcoming thread about Optimal Transport (I need to prepare the images, stay tuned...)
14/N
#geogram has also many application in its original universe (geometry processing and computer graphics). It has remeshing
github.com/BrunoLevy/geog…
It uses the "Vorpaline" algorithm, that resamples the surface in 6D, hence generating a nice curvature-adapted mesh. Image
15/N
Historically, all this story began with texture mapping (first lines of code in 1998). The code is still there and works ! (well, it was rewritten 3 or 4 times since then)
github.com/BrunoLevy/geog… Image
16/N
Bunny Texture Mapping ! ImageImageImage
17/N
#geogram has also atlas generation, texture baking and normal map generation Image
18/N
With normal mapping, one can replace a heavy mesh with a much lighter one, by separating the geometric details from the global shape and storing them in textures. Image
19/N
Here is how it works
20/N
It has an easy-to-use API (OpenNL) to assemble sparse matrices and solve sparse linear systems.
github.com/BrunoLevy/geog… Image
21/N
It has a graphics library (GLUP) for displaying stuff without the agonizing pain. It is an OpenGL-2.x-like API, plus volumetric primitives, plus advanced shading. It works with GLSL 1.5, 4.40 and OpenGL ES. It works under Linux/Mac/Windows/Android/Web
github.com/BrunoLevy/geog… Image
22/N
It can be used for many crazy computational physics experiments. Here my fluid simulator / how it started
33/N
Fluid simulator / how it is going
34/N
Rendering/raytracing using geogram's AABB
github.com/BrunoLevy/geog…
Prototyped on ShaderToy
shadertoy.com/view/WlcXRS
shadertoy.com/view/3ltSzM
35/N
There is also Graphite, an experimental 3D modeler around #geogram, with a GUI, scripting (Lua and Python) and much more....
github.com/BrunoLevy/Grap…
36/N
The slides of my @EurographicsC keynote on geogram:
fr.slideshare.net/BrunoLevy4/the…
37/N
I remember having seen many Ph.D. students loosing too much time with OpenGL (professor, I don't see my triangle !) and GUI (Qt has became super heavy...)
With @ocornut's DearImGui and GLUP (brunolevy.github.io/geogram/GLUP_8…),
writing a 3D application with a GUI is super-easy...
38/N
You just need to derive from SimpleApplication, see tutorial here:
github.com/BrunoLevy/geog…
39/N
If you do mesh processing, you can derive from SimpleMeshApplication, it is what implements the bundled VorpaView mesh viewer under the hood.
More information avout VorpaView here:
github.com/BrunoLevy/geog…
40/N
All geogram programs can be "transcripted" to JavaScript and embedded in web pages,using the fabulous Emscripten (emscripten.org).
Geogram demo programs and utilities are usable in your web browser here:
members.loria.fr/Bruno.Levy/GEO…
41/N
For instance, you can repair and remesh without installing anything, in the web version of geobox
members.loria.fr/Bruno.Levy/GEO…
When you "save" your file, it appears as a "download" in your browser
It is approx 5x slower than the native version, but it is usable for small meshes.
42/N
Transformers, robots in disguise !
Optimal transport turns the armadillo into a bakugan.
Semi-discrete optimal transport in the geogram/exploragram library, one of the results of an @Inria AeX grant (exploratory action)
github.com/BrunoLevy/geog…
43/N
Free-surface fluid simulation with Optimal Transport:
it can "liquefy" everything ...
44/N
... including myself !
45/N
... or this guy :-)
46/N
Through Graphite (github.com/BrunoLevy/Grap…), one can expose all the functionalities of geogram to several languages (Lua, Python). It can even run in a Jupyter notebook. By direct access to mesh and properties as Numpy array, you can use MatPlotLib to display the result !
47/N
List of projects and publications with Geogram here:
github.com/BrunoLevy/geog…
DM me or send a pull request if you want to add a reference to your own projects/publications that use geogram.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Bruno Levy

Bruno Levy Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @BrunoLevy01

Mar 12
#geometry #programming
New #geogram tutorial on surface reconstruction from #pointsets:

github.com/BrunoLevy/geog…
Coming next:
- remeshing
- parameterization and texture mapping
Remeshing tutorial rdy !
github.com/BrunoLevy/geog… Image
Read 8 tweets
Mar 10
What's that ?
The raw scanner data for armadillo.
Can we reconstruct the armadillo from it ? Image
Step 1: Filter outliers Image
Step 2: smooth a bit Image
Read 12 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(