{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Marching Cubes\n", "\n", "Marching Cubes extracts a **triangular mesh** from a scalar field. It examines each cell in the grid and generates triangles where the iso-surface passes through.\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Running cmake --build & --install in /home/gcnick/Documents/code/isoext/build/cp312-abi3-linux_x86_64\n" ] } ], "source": [ "import torch\n", "import isoext\n", "from _viz import show_mesh\n", "\n", "# Setup: create a grid with a sphere\n", "grid = isoext.UniformGrid([64, 64, 64])\n", "points = grid.get_points()\n", "grid.set_values(points.norm(dim=-1) - 0.7)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Basic Usage\n", "\n", "```python\n", "vertices, faces = isoext.marching_cubes(grid, level=0.0, method=\"nagae\")\n", "```\n", "\n", "- `grid`: A `UniformGrid` or `SparseGrid` with values set\n", "- `level`: The iso-value to extract (default: 0.0)\n", "- `method`: Algorithm variant (`\"nagae\"` or `\"lorensen\"`)\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Vertices: torch.Size([9168, 3])\n", "Faces: torch.Size([18332, 3])\n" ] }, { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAGQAlgDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKyL/AMS6Xp5KyXAklH/LOL5j/gPxrnrvxzcOSLK0RF/vTHJ/IU7MlzijuKRmVRlmAHqTXmFxrusXZPmX0ig/wx/IP0qi6yzNullkkPq7E0+UzdZdD1V9Rso8eZeW656bpQM/rTP7V07/AJ/7X/v8v+NeWrbKOwp32dfSjlF7byPU01Cykz5d5btjrtkBx+tWFZWGVII9Qa8kNsp/hFORZIW3RSOh9VYijlD23ketUV5rb63q1qR5d7IwH8Mnzj9a17XxpcIQLy1Rx/eiOD+RpcrKVWLOzorLsfEOm3+FScRyH/lnL8p/wP4VqUjRNPYKKKKBhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFQ3V3BZW7XFzKsUS9WY15/rfi+61Itb2O63tehbo7/4CmlcmUlHc6nV/FdhpZMSH7TcDjy4zwp9z2ri9R8QanqxIklMMP/PKI4H4nqay44gKsqmKtROeVRsjSEDtUwj9qeFp4FMzGBKkCU4LUgWgQwJTtlSAUuKAItlIUqfFG2gRXMdIY6nK0mKBlVoQe1X7DW9R0wgRy+bF/wA85DkfgeoqErTWSiw1JrY7XTPEtlqJEbHyJzxskPBPse9bNeVPEDW1pPie4sCsN5untxwG6un+IqHHsbwrdJHd0VFbXMN3As1vIskbdGWpak3CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACqOqataaPaG4u5Ao6Ko+859AKdqepW+k2El5ctiNB0HVj2A968l1TVbjXdRa7uPlXpHHnIRfSmlcic+UsatrN3rt15tw22JT+6hHRB/U+9QRpgUyNcCrKCtDlbvqPRalUU1aeKBDgKeBTRThQIkUU8CmCnigBwFLigUtAgooopgIRSYp1NNIBMUhFOoNAETLUTpVg1GwoGLpup3Oj3PmQHMbH95EejD+hr0LTtSttTthNbSBh/EvdT6GvNnWnafqE2kXy3MPI6OmeHFJq5rTqcujPUqKraffwalZpc27ZRx0PUH0NWazOoKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACmySJFG0jsFRRliegFOrz/AOIXiAoq6LbPh3Aa4ZT0Xsv4/wAqaVxSdlc57xJr8niDUiUJFnCSIV9f9o/WqMS4qrCuAKupWiOSTu7k6Cp1qBamU0Ekwp4qIGng0ASA09aiBp4NAiYU8GogaeDQBIDS5pgNLmgQ7NLmm5ozTAWkNJmkJpALmjNNzRmgBTTDS5ppNMYxqgkXNTmoWoAs6FrL6Lf5Yk2spAlX0/2h9K9MR1kRXRgysMgjuK8hlXINdb4K1rcDpVw/zKN0JJ6juv4VEl1N6U+jOzoooqDoCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAKOsalFpGk3F9MfliQkD1PYfnXhr3M1/eS3dw26aZi7Guz+KGsb5rbR4m4X99MB/46P5muIhwBVxRhUeti7FiraGqkZqyhqjIsKalU1ApzUgOKCScNTwagDU8NQBKDUimoA1SBqAJgaeDUINOBpiJgaXNRA0uaAJc0ZqPNGaAJM0hambqQtQA7NGaj3UZoAk3U0mm7qaWoAVjUbUpNMJoAikqss8tncx3MDbZYm3KasOaqy8ikUj17S7+PU9Ngu4j8si5I9D3FW64H4f6psmuNLkbr+9i/qP5V31ZtWOuLurhRRRSKCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApHYIjMxwAMmlrA8a6gdN8I6hOrAOY9i59W4H86AZ4zq+pNq+v3t8xBEkpCY/ujgfoKWE1l23CitGJq0OVl6NqnVqqxtU6mmSWVNSBqrqalBoETA04NUQpwNAEwapAagU1IpoETA04GogaeDTAkDUu6o80uaBEm6jdTM0ZoAfupC1MzSZoAcWo3UwmkzSAkzSFqj3UFqYDiaYzU0tTGakMR2qvIakZqgkagYum3zaZrVreA4CSDdn+6eD+hr2tWDqGByCMivBbjlSK9h8KXpv/AAzZTMQXEexseo4/pUyN6T6G1RRRUGwUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFec/F+98rQ7G0DYM9xuI9QoJ/nivRq8e+MdyW1jS7bLYSJ3I7ckD+lNbky2OHtzwKvxGs6A8CtCI1oc7LkZqdaqoasKaCSwpqVTVdTUgNMRODTgaiBpwNAEympAagBp4NAicGnA1EDTgaAJc0uajBpc0ASZozTM0ZoAdmkJppNITQApNJmmk0maAHZpCaaTSE0ABNMJpSajY0ANZqgkapGNV5DSGV5jwa9D+GN15mkXdsTnypsgegI/xzXm8zcV2PwsuCNU1G3y2GjVwO3BNKWxrT3PUaKKKzOgKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvD/AIvT7vGFrFtx5dqDnPXLH/CvcK8N+MMXl+MLSXdnzLUDGOmGP+NOO5M9jk4DxV+I8VmQNwKvxNWhgy8jVOrVURqnVqZJZU1KrVWVqkBoEWAacGqENTg1AidWqQGq4apFagCcGnBqhBpwNAiYNTt1QhqXdQBLmjNR7qN1AEmabuphakLUAOLUm6mFqTdQA/NIWphakzQMcTTGakLVGzUAI7VXc8VI7VXkagZXmbium+GE23xTcxYzvtyc56YI/wAa5SZuDXUfC2PzPFVzJuxstiMeuSP8KmWxpDc9iooorM6AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK8X+Ndvs1fSboK3zxOhPbggj+te0V5j8arIy+HrK8VcmC4wTzwGBH88U1uTLY8lt34FX42rIt34FaMT8VoYM0EarCNVFHqwj0xFtWqVWqqr1Ir0CLAanhqrh6eGoEWFapA1Vg1SK1AFgNTw1Vw1ODUCLAal3VAGpd1MCbdS7qh3UbqAJd1N3VGWpC1AEham7qjLUm6kBLuppaoy9IWoAeWqNmppeo2agYM1V5G4p7tVaR6BkEz8V23wjh36rqdxhvkjRAe3JJ/wrgbh+DXqXwhtSmh3t4Vx51xtB9QoA/nmplsaU1qejUUUVmbhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVznjzTTqvgvUrZAC4i8xPqvP9K6OmugdGRhkMMEUAfJMLYxWhE9S+JtJOieJtQ08jCxykp/uHkfoaoxvitTBmrG9WFes6OSrKPTILyvUoeqavUqvQItBqeGqsHpwegCyrVKHqoGqQPQItBqfuqqHp4emBYD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MHqK+q5tC0i4AE2lWMm3pvt0OPzFRf8ACM6D/wBATTf/AAFT/CjnFyHywZVHcVNBbXV24S2tZ5mOOI4yx56dBX1NDoWkW+fJ0qxj3ddlugz+Qq8iJGoVEVQBgBRijnDkPmvTvAHirUiPK0eeJT/HcYiH/j3P6V2Ok/BW7kYPq+qRxL3jtV3N/wB9HAH5GvZaKXMylBHM6L4A8OaEyyW+nrLOv/La4PmN+GeB+ArpqKKkqwUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z", "image/png": "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", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "vertices, faces = isoext.marching_cubes(grid)\n", "\n", "print(f\"Vertices: {vertices.shape}\") # (N, 3) float32\n", "print(f\"Faces: {faces.shape}\") # (M, 3) uint32\n", "\n", "show_mesh(vertices, faces)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Algorithm Variants\n", "\n", "### `nagae` (default)\n", "\n", "Uses only rotations to handle ambiguous cases, producing **watertight meshes** without holes or cracks.\n", "\n", "From: *\"Surface construction and contour generation from volume data\"* (1991)\n", "\n", "### `lorensen`\n", "\n", "The original Marching Cubes algorithm. Uses rotations and reflections, which can create ambiguities leading to small holes in the mesh.\n", "\n", "From: *\"Marching cubes: A high resolution 3D surface construction algorithm\"* (1987)\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Nagae: 18,332 triangles\n", "Lorensen: 18,332 triangles\n" ] } ], "source": [ "v_nagae, f_nagae = isoext.marching_cubes(grid, method=\"nagae\")\n", "v_lorensen, f_lorensen = isoext.marching_cubes(grid, method=\"lorensen\")\n", "\n", "print(f\"Nagae: {f_nagae.shape[0]:,} triangles\")\n", "print(f\"Lorensen: {f_lorensen.shape[0]:,} triangles\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Iso-Level\n", "\n", "The `level` parameter controls which iso-surface to extract. For signed distance fields, `level=0` gives the surface. Other values give offset surfaces:\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "level=-0.2: 4,728 vertices (radius ≈ 0.9)\n", "level=+0.0: 9,168 vertices (radius ≈ 0.7)\n", "level=+0.2: 15,072 vertices (radius ≈ 0.5)\n" ] } ], "source": [ "# Extract at different iso-levels\n", "for level in [-0.2, 0.0, 0.2]:\n", " v, f = isoext.marching_cubes(grid, level=level)\n", " print(f\"level={level:+.1f}: {v.shape[0]:,} vertices (radius ≈ {0.7 - level:.1f})\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Saving Meshes\n", "\n", "Use `write_obj` to save the mesh to an OBJ file:\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saved to mesh.obj\n" ] } ], "source": [ "vertices, faces = isoext.marching_cubes(grid)\n", "isoext.write_obj(\"mesh.obj\", vertices, faces)\n", "print(\"Saved to mesh.obj\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Lookup tables\n", "\n", "The lookup tables that drive marching cubes are generated by [`luts/gen_mc_lut.py`](https://github.com/GuangyanCai/isoext/blob/master/luts/gen_mc_lut.py). This script:\n", "\n", "1. Reads base cases from a JSON file (e.g., `luts/mc_methods/nagae.json`)\n", "2. Generates all 256 cases via rotations (and optionally reflections)\n", "3. Outputs lookup tables and debug meshes\n", "\n", "You can use this as a reference for:\n", "- **Understanding the algorithm**: See how base cases expand to cover all configurations\n", "- **Implementing your own variant**: Create a new JSON file with your base cases\n", "- **Debugging**: The script outputs OBJ files for each case to visualize the triangulations\n", "\n", "```bash\n", "# Generate lookup tables for a marching cubes variant\n", "python luts/gen_mc_lut.py luts/mc_methods/nagae.json output_dir/\n", "```\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.12" } }, "nbformat": 4, "nbformat_minor": 4 }