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
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.
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…
16/N
Bunny Texture Mapping !
17/N #geogram has also atlas generation, texture baking and normal map generation
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.
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…
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…
22/N
It can be used for many crazy computational physics experiments. Here my fluid simulator / how it started
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…
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...
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
Monge-Ampère gravity (right half) creates more abundant and more diffuse filaments as compared to 𝚲CDM (left half) where filaments appear to be more fragmented.
Larger simulation, with 100 million particles, in a volume of 300 Mpc/h^3. At z=5 there is not much difference...
1/N Have you every wondered how a microprocessor works ? How many sheets of paper do you need to write the schematics or description of a processor ? How many years do you need to study before being able to design your own processor ? How much money does it cost to try that ?
2/N >Yes;1;0.05;$50
>What's that ?
>Answers to the questions in the previous post
#geogram#geometry#programming
Hello darkness my old friend ...
Diving into exact triangle intersection code, that is exactly bugged !
Revisiting the whole approach, hopefully much much simpler in the end
You may think that once you have exact predicates it is piece of cake, but there is a surprisingly long list of particular cases: trlgs can be in the same plane, touch along a vrtx, an edge, isect can be a single point, a segment, a little triangle, it can even be a hexagon !
Seeing some light at the end of the tunnel... Seems that a reasonably short program can handle all the cases (but it does not fit in the margin, euuu I mean in a tweet !)