When you're the geometry processing nerd in the department colleagues ask you to help with all sorts of things.
When you're the geometry processing nerd in the department colleagues ask you to help with all sorts of things.
Cubic smoothing splines be like.
#Julialang #opensource #GeometryProcessing
Code: https://github.com/COMODO-research/Comodo.jl/blob/main/examples/demo_smoothing_spline.jl
Made possible by: https://github.com/jipolanco/BSplineKit.jl
I can highly recommend the Summer Geometry Initiative (SGI) by @JustinMSolomon. It is a six-week paid summer #research program introducing undergraduate and graduate students to the field of #geometryProcessing. Details: https://sgi.mit.edu applications due February 17, 2025.
Working on automated quasi-structured hexahedral meshing of branched structures in #Comodo.
My current solution features a lot of fun tricks, e.g. ray tracing, distance marching, surface smoothing, Bezier splines, lofting, thickening etc.
Was working on surface closure methods, and was using a torus as a test surface (since it has two "periodic" mesh directions to close over).
Son: "What yah making papa?"
Me: Oh I'm using this doughnut to..
Son: That is not a doughnut! That is the wrong color.
Me: Okay, let me render it brownish and..
Son: No, you need to add chocolate too, and sprinkles of all colors!
Me (15 min later): Got it!
And truncating these (cutting the spikes off) is fun too.
Here I cut so the upward edge lengths are the same as the equatorial edge lengths. It produces rather pleasing pentagonal rings.
Meet the n-trapezohedron.
Recipe: put 2*n points around the equator, and 2 more for the poles. Now form n top faces and n bottom faces (all quadrilateral). Now alter the points so that all faces are planar.
High n-values give spiky diamond like things. But the special case with n=3 produces the humble cube!
More here too:
https://en.wikipedia.org/wiki/Trapezohedron
Nice set of equations describing the shapes:
https://mathworld.wolfram.com/Trapezohedron.html
Meet the "Pyritohedron", named after the shapes seen in the crystals of the mineral pyrite.
https://en.wikipedia.org/wiki/Dodecahedron#Pyritohedron
These shapes are involved in the Weaire-Phelan bubble structure:
https://en.wikipedia.org/wiki/Weaire%E2%80%93Phelan_structure
I am working on these as I am implementing various foams and lattice structures in #Comodo #JuliaLang
Working on mesh edge angle analysis in #JuliaLang. Left is the @FreeCAD model, right is the #Comodo mesh edge angle analysis. This will enable surface feature segmentation, e.g. top, inner, sides etc.
#opensource #CAD #FreeCAD #ComputationalDesign #GeometryProcessing
Went with another classic, the dragon statue.
This shows triangulated surface remeshing using a (very basic) #JuliaLang wrapper for @BrunoLevy01 et al.'s fantastic Geogram library (https://github.com/BrunoLevy/geogram).
Using colors it becomes clear how this relates to the mesh dual. The original mesh (fully orange) can be morphed into the dual mesh (fully purple). Intermediate results allow one to define two lattices, one obtained by connecting orange+green and one purple+green.
Now adding multi-region meshing whereby each meshed region can contain multiple meshed regions and holes, and each region can have its own point spacing defined.
Getting there. These images show tests of a triangulation algorithm I've developed that uses Delaunay triangulation. It features mostly equilateral triangles except for at the boundaries.
Stress testing the swept lofting method (blending from one section curve to another along a path). Here with about 0.5 million faces and vertices.
#julialang #opensource #ComputationalDesign #ComputationalMechanics #GeometryProcessing #Comodo
Comodo already has curve extrusion, now I'm adding revolutions to build surfaces
This is a fantastic article on rotations and #quaternions by @TheNumbat based on lecture notes by @keenancrane
http://thenumb.at/Exponential-Rotations/
My son saw the test model there "Spot the cow", and we just had to #3dprint one and color it in :)
Get yours over at Keenan's model repository:
https://www.cs.cmu.edu/~kmcrane/Projects/ModelRepository/
So satisfying to finally reach 100% code coverage for testing!
Hoping to publish paper on Comodo by the end of the year. If you are into #ComputationalMechanics #Biomechanics #GeometryProcessing #FiniteElementAnalysis help to contribute to Comodo.jl and FEBio.jl and you'll be one of the authors!
Working on #julialang code for surface curvature analysis.
This video shows the surface principal curvatures, i.e. the highest (left) and lowest (right) curvature. Directions of curvature are overlaid too.
I like this "mother-child" model as it has flat bits (base), different cylinder-like bits (arms/body), sphere-like bits (heads), and saddle-like bits (e.g. necks). So it is a nice model for curvature analysis.
Implemented "Loop-subdivision" of triangulated surfaces in Gibbon.jl.
https://github.com/gibbonCode/Gibbon.jl/
I always thought "Loop" referred to code loops, but no the technique is named after a person, Charles Loop, see also:
https://en.wikipedia.org/wiki/Loop_subdivision_surface