JuliaGeometry / JuliaGeometry/Meshing.jl

I could contribute Marching Tetrahedra on Tetmeshes.

Open
#89 5 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
67
Forks
13
PR merge metrics
No merged PRs in 30d

Description

Hi, I have this method for extracting plane cuts and isosurfaces from general tetmeshes:

https://github.com/j-fu/GridVisualize.jl/blob/698fb552e250e32a2a5e9a69ff46b0dd28f32db8/src/common.jl#L413

The output can also creates a GeometryBasics.Mesh which can be used with Makie:

https://github.com/j-fu/GridVisualize.jl/blob/698fb552e250e32a2a5e9a69ff46b0dd28f32db8/src/makie.jl#L873

There is also "marching_triangles" for isoline calculation.

In the moment, these are not exported, but they are used by other packages (PlutoVista.jl) or projects (@jlchan). Logically, they should reside outside of GridVisualize.jl, and I have the impression that Meshing.jl could be the right place (though I find the package name a bit misleading...). So before creating another package I would like to discuss to move these into Meshing.jl and export them.

A couple of points:

  • I would like to keep the current mostly array based API and internal coding, a wrapper taking GeometryBasics.Mesh appears to be not too hard to create. The main reason for this is that I consider the current state of GeometryBasics.jl / Meshes.jl etc not settled.
  • I think I already have commit access as a member of JuliaGeometry (maintaining Triangulate.jl a and co-maintaining TetGen.jl) and I would care about maintaining the corresponding part of the code.

How do you look at this ?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the linked implementations in GridVisualize.jl: src/common.jl around line 413 and src/makie.jl around line 873, including marching_triangles. Then determine whether these array-based algorithms and their GeometryBasics.Mesh output belong in Meshing.jl; the work is complete only after the package location, API, maintenance ownership, and exports are agreed.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.