-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the isoext wiki! This documentation will help you get started with using isoext for GPU-accelerated isosurface extraction.
isoext is a high-performance Python library for GPU-accelerated isosurface extraction. It provides efficient implementations of popular isosurface extraction algorithms like Marching Cubes and Dual Contouring.
🔷 Different Isosurface Extraction Methods
- Marching Cubes
-
lorensen: the original marching cubes algorithm from the paper Marching cubes: A high resolution 3D surface construction algorithm. -
nagae: the marching cubes algorithm from the paper Surface construction and contour generation from volume data. It uses only rotation to transform the Marching Cubes cases, unlikelorensenwhich uses rotation and reflection.lorensencontains ambiguities which results in holes and cracks. This modification removes the ambiguities and produces a closed surface.
-
- Dual Contouring
-
dual_contouring: the dual contouring algorithm from the paper Dual Contouring of Hermite Data.
-
- More methods will be added in the future.
🔷 Flexible Grid Support
- Uniform grid for regular sampling
- Sparse grid for memory efficiency
- Octree grid is coming soon
🔷 Developer Tools
- Built-in Marching Cubes table generator
- All lookup tables used in the library are generated using this tool
- Rich set of SDF primitives and operators
- Create custom SDFs by combining primitives and operators.
- PyTorch with CUDA support
- CUDA Toolkit matching your PyTorch version
- A compatible C++ compiler (e.g., Visual Studio on Windows, GCC on Linux)
pip install isoextOn Windows, you might encounter compilation errors due to the system’s default limit on maximum path length (260 characters). You can enable long paths on Windows by following tutorials such as this one
git clone https://github.com/GuangyanCai/isoext.git
cd isoext
pip install .Currently, we don't provide pre-built wheels for isoext.
Examples is a good place to start. By default, all tensors are pytorch cuda tensors of type float32 or int32.
Grid Types - Learn about the different grid types supported
Marching Cubes - Documentation for the Marching Cubes implementation
Dual Contouring - Documentation for the Dual Contouring implementation