Skip to content
Guangyan Cai edited this page Jan 21, 2025 · 5 revisions

isoext: Isosurface Extraction on GPU

Welcome to the isoext wiki! This documentation will help you get started with using isoext for GPU-accelerated isosurface extraction.

What is isoext?

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.

✨ Key Features

🔷 Different Isosurface Extraction Methods

🔷 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.

Installation

Prerequisites

  • PyTorch with CUDA support
  • CUDA Toolkit matching your PyTorch version
  • A compatible C++ compiler (e.g., Visual Studio on Windows, GCC on Linux)

Install from PyPI

pip install isoext

On 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

Install from Source

git clone https://github.com/GuangyanCai/isoext.git
cd isoext
pip install .

Currently, we don't provide pre-built wheels for isoext.

Getting Started

Examples is a good place to start. By default, all tensors are pytorch cuda tensors of type float32 or int32.

API References

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

Clone this wiki locally