The 2026 European research calendar highlights a dense circuit of gatherings: Eurographics in Aachen (May 4-8), EuroVis at Nottingham (June), and Geometry Processing in Bern (July). SGP continues its vital Graduate School, while Eurographics sets the publication standard in Computer Graphics Forum. These events represent the primary venue for developments in geometric modeling. #ComputationalDesign #Eurographics #GeometryProcessing

Field-Aligned Surface-Filling Curve via Implicit Stitching is out! πŸŽ‰

We present a robust and scalable method to generate field-aligned surface-filling curves on general manifolds, from interactive small models to massive meshes.

Project page: https://xavierchermain.github.io/publications/surface-filling-curve

We'll present it at #Eurographics2026 in Aachen this May.

Affiliations: UniversitΓ© de Lorraine, @cnrs @inria and @Labo_Loria

Thanks to the MFX team and its leader @sylefeb

#ComputerGraphics #GeometryProcessing

Graph and levelset based surface construction.

The animation shows a graph curve on the left that is coloured towards a desired local radius. Such a curve could stem from an image segmentation such as the centre line for a blood vessel. The local radius would then represent the local blood vessel radius. On the right a slice through a corresponding "levelset image" is shown. The level set image is a signed distance for the vessel surface but normalised by this radius, so a distance of 1.0 means we are 1 local radius value away from the desired surface. An intensity level of 0.0 means we are on the desired surface, negative levels mean are for the inside, and positive levels are for the outside. Once the levelset image is established the surface can be constructed by drawing the isosurface for the level 0.0. Just to test the algorithm, in this animation, I am creating a sinusoidal variation of the radial data. By increasing the frequency there are more and more bumps in the surface. Critically, when features on the surface become too curved or thin with respect to the voxel size, the surface may become too noisy as the coarse voxelisation starts to fail to capture the detail in the geometry.

This is the new #Julialang implementation but my old MATLAB implementation was used here:

https://doi.org/10.1016/j.jbiomech.2021.110896 (open access version: https://doi.org/10.31224/osf.io/qaujs)

and here:
https://doi.org/10.1098/rsos.242025

#opensource #geometryprocessing #Comodo

Meet "spinodoid" structures. You basically splash lots of waves in all sorts of random directions with random phases, and then you threshold the resulting mess.
These structures stem from the idea of a "spinodal decomposition" and the waves form a "Gaussian random field". The latter has been linked to/used for animal patterns (stripes etc), phase separation in chemistry/metallurgy, quantum mechanical random fields, up to cosmological structures...
But here I just use it to create stochastic lattice structures. Because my waves here have different orientations but the same frequency, they show up in a Fourier transform as a circle or sphere, which I think is just neat :)

Spinodoids are coming to Comodo very soon.

More on Spinodoids:
https://doi.org/10.1038/s41524-020-0341-6

Spinodal decomposition:
https://en.wikipedia.org/wiki/Spinodal_decomposition

Gaussian random fields:
https://en.wikipedia.org/wiki/Gaussian_random_field

#opensource #Julialang #GeometryProcessing #Lattices

Angle based surface segmentation. This animation showcases the output of Comodo's faceanglesegment function. Imported surface geometry that lacks any labelling of surface features is segmented, based on surface orientations, into separate features, e.g. a cylindrical hole, a flat face, a gear tooth flank, a propellor face, and so on. This function is very handy to assign boundary conditions to particular aspects of a model, or to segment it into separate parts for remeshing.

#opensource #Julialang #GeometryProcessing

Meet Taubin smoothing. It is a nice smoothing method that is great for smoothing voxel based meshes. So for smoothing stepped "Lego-like" meshes.

The left here shows a raw voxelised (thresholded) voxel boundary surface. On the right is the Taubin smoothed result.

Taubin smoothing works by first doing an aggressive Laplacian smoothing step (a bit like a blurring), which removes bumps etc, but which unfortunately can distort the shape too (e.g. unwanted shrinkage/growth). Next it uses an "inverse smooth" (a bit like a sharpening operation) to attempt to push back the shape a bit to avoid distortion. With the right parameter choices it can perform really well.

This animation is for a thresholded 3D image. The colors are the original voxel intensities. The resulting shape presents as a central sphere like blob contained in a dodecahedron "cage".

See also: https://doi.org/10.1145/218380.218473

#GeometryProcessing #JuliaLang #Makie #Meshing #TilingTuesday

Meschers: Geometry Processing of Impossible Objects

Meschers: Geometry Processing of Impossible Objects

How am I supposed to get any work done when the maths is so pretty! Look at it flutter by like a butterfly!

This is an animation for "biharmonic spline interpolation" (see also: https://doi.org/10.1007/s11004-011-9346-5).

I'm testing a Julia implementation here which I'd like to use to interpolate the Z-coordinate for meshes that should span a closed curve domain where the x,y, and z are known. Here I created a circle and manipulated the z-coordinates using z=sin(x+a) where a is a phase offset. Next I animated the change of the phase offset to create the wave like motion.

#geometryprocessing #JuliaLang #Comodo

Testing out "Natural Neighbour" interpolation of non-gridded/scattered 3D data. If only there was a fun boundary curve with some sharp features that I could use to test these methods.

https://en.wikipedia.org/wiki/Natural-neighbor_interpolation

See the nice package by Daniel VandenHeuvel: https://github.com/DanielVandH/NaturalNeighbours.jl

#opensource #julialang #Makie #Comodo #geometryprocessing

A simple parameterised hexahedral mesh of a cylindrical solid.

Coming soon to #Comodo

https://github.com/COMODO-research/Comodo.jl

#opensource #computationalmechanics #geometryprocessing

An animation of a hexahedral mesh for a solid cylinder. The animation shows a cylinder with blue quadrilateral faces on top, yellow ones in the bottom, and red ones on the side. The screen shows 3 sliders. When the first slider is changed the mesh density is increased iteratively (each quad is split into 4 new ones). If the second slider is changed the height of the cylinder is changed and new elements are added to maintain a similar point spacing. If the third slider is changed the radius is changed. When the radius is decreased the point spacing decreases and hence additional elements are also added in the height direction to maintain a homogeneous mesh. This animation therefore shows a full parameterisation of a hexahedral mesh of the cylinder.