Skip to content

JuliaMeshless/WhatsThePoint.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

283 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WhatsThePoint.jl

Build Status Stable Dev License File codecov

A Julia package for generating and manipulating point clouds for meshless PDE methods — RBF-FD, generalized finite differences, SPH, and related techniques. Part of the JuliaMeshless organization.

Full documentation

Note

WhatsThePoint.jl is under active development. The API may change before v1.0.

Features

  • Surface import from STL and other mesh formats via GeoIO.jl
  • Volume discretization with multiple algorithms:
    • SlakKosec and VanDerSandeFornberg (3D)
    • FornbergFlyer (2D)
    • Octree — octree-guided adaptive point generation (3D)
  • Octree-accelerated spatial queries via TriangleOctree for fast point-in-volume testing
  • Normal computation and orientation using PCA with MST+DFS consistent orientation (Hoppe 1992)
  • Node repulsion for optimizing point distributions (Miotti 2023)
  • Point connectivity with k-nearest neighbor and radius-based topology
  • Full unit support through Unitful.jl
  • Visualization with Makie.jl

Installation

] add https://github.com/JuliaMeshless/WhatsThePoint.jl

Quick Example

using WhatsThePoint, Unitful

# Import a surface mesh
boundary = PointBoundary("model.stl")

# Split surfaces by normal angle
split_surface!(boundary, 75°)

# Generate volume points
spacing = ConstantSpacing(1u"mm")
cloud = discretize(boundary, spacing; alg=VanDerSandeFornberg(), max_points=100_000)

# Optimize point distribution
cloud = repel(cloud, spacing; β=0.2, max_iters=1000)

# Add point connectivity
cloud = set_topology(cloud, KNNTopology, 21)

# Visualize
using GLMakie
visualize(cloud; markersize=0.15)

See the documentation for the full guide.

Bunny

About

This is a package providing various tools for manipulating point clouds for use in the solution of PDEs.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages