All Projects → Q-Minh → naive-surface-nets

Q-Minh / naive-surface-nets

Licence: MIT license
Implements a simple, readable naive surface nets algorithm

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to naive-surface-nets

MicroStructPy
Microstructure modeling, mesh generation, analysis, and visualization.
Stars: ✭ 42 (+35.48%)
Mutual labels:  meshing, mesh-generation
zmesh
Marching Cubes & Mesh Simplification on multi-label 3D images.
Stars: ✭ 37 (+19.35%)
Mutual labels:  meshing, mesh-generation
2DRoomLOS
2D line-of-sight mesh generator voor room based games
Stars: ✭ 50 (+61.29%)
Mutual labels:  mesh-generation
bichon
Robust Coarse Curved TetMesh Generation
Stars: ✭ 29 (-6.45%)
Mutual labels:  mesh-generation
yak
yak (yet another kinfu) is a library and ROS wrapper for Truncated Signed Distance Fields (TSDFs).
Stars: ✭ 25 (-19.35%)
Mutual labels:  meshing
roadifier
Open Source road mesh generator script for Unity
Stars: ✭ 30 (-3.23%)
Mutual labels:  mesh-generation
ConstructiveGeometry.jl
Algorithms and syntax for building CSG objects within Julia.
Stars: ✭ 27 (-12.9%)
Mutual labels:  meshing
slice2mesh
From sliced data to volumetric meshes for the simulation of AM processes
Stars: ✭ 26 (-16.13%)
Mutual labels:  mesh-generation
GEOMetrics
Repo for the paper "GEOMetrics: Exploiting Geometric Structure for Graph-Encoded Objects"
Stars: ✭ 116 (+274.19%)
Mutual labels:  mesh-generation
Meshlab
The open source mesh processing system
Stars: ✭ 2,619 (+8348.39%)
Mutual labels:  mesh-generation
2D-Elliptic-Mesh-Generator
2D orthogonal elliptic mesh generator which solves the Winslow partial differential equations
Stars: ✭ 36 (+16.13%)
Mutual labels:  mesh-generation
unity-plumber
A component to procedurally generate pipe-like meshes in Unity
Stars: ✭ 55 (+77.42%)
Mutual labels:  mesh-generation
HexaLab
http://hexalab.net: an online viewer for hexahedral meshes
Stars: ✭ 85 (+174.19%)
Mutual labels:  mesh-generation
Unity-Procedural
Spline based mesh generation
Stars: ✭ 67 (+116.13%)
Mutual labels:  mesh-generation
wildmeshing-python
Python bindings for TriWild.
Stars: ✭ 37 (+19.35%)
Mutual labels:  meshing
jigsaw-geo-matlab
MATLAB bindings for JIGSAW(GEO): an unstructured mesh generator for geoscientific modelling.
Stars: ✭ 26 (-16.13%)
Mutual labels:  mesh-generation
loop subdivision
A C++ implementing of Loop subdivision
Stars: ✭ 19 (-38.71%)
Mutual labels:  meshing
jigsaw-matlab
MATLAB bindings for JIGSAW: a Delaunay-based unstructured mesh generator.
Stars: ✭ 57 (+83.87%)
Mutual labels:  mesh-generation
Point2Mesh
Meshing Point Clouds with Predicted Intrinsic-Extrinsic Ratio Guidance (ECCV2020)
Stars: ✭ 61 (+96.77%)
Mutual labels:  mesh-generation
neper
Polycrystal generation and meshing
Stars: ✭ 111 (+258.06%)
Mutual labels:  meshing

A Documented Simple Naive Surface Nets Implementation

Overview

unit circle generated by naive surface nets

This repository implements the Naive Surface Nets Algorithm which is used to generate a triangular mesh that approximates a given isosurface defined by the level-set { x,y,z in R^3 | f(x,y,z)=isovalue } of a scalar function f: R^3 -> R. The approximation's precision is bounded by a given voxel grid's resolution in which the isosurface to extract is contained. In the main.cpp file, you can find an example use of the surface_nets function which generates a mesh of the unit circle f(x,y,z) = sqrt(x*x + y*y + z*z) - 1.0 at the specified grid resolution. We add libigl as submodule for visualization of the generated triangular meshes.

Goals

This repository aims to provide a clear, simple and documented implementation of the naive surface nets algorithm that is (in my opinion) much needed. Most open source implementations are hard to read and poorly documented, assuming much prior knowledge from the readers or optimized at the expense of readability and simplicity. This repository's implementation assumes minimal prior knowledge of:

The surface_nets.cpp file contains thorough documentation of the surface nets implementation in the form of comments. I hope this will be of help to many for learning mesh generation algorithms.

Dependencies

Building

$ git clone https://github.com/Q-Minh/naive-surface-nets
$ cd naive-surface-nets
$ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
$ cmake --build build --target App --config Release
# generated executable will be at path ./build/Release/App.exe or ./build/App

Helpful Documentation

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].