# NodeSlicer NodeSlicer is a high-performance Blender extension that provides a custom node-based interface for mesh slicing and G-code generation. By bypassing traditional Blender modifiers and using NumPy and Shapely for geometry processing, it offers a flexible and extensible workflow for 3D printing and procedural geometry tasks. ## Key Features - **Custom Node Editor**: A dedicated node tree type for slicing workflows. - **Fast Geometry Processing**: Uses NumPy for vectorized mesh operations and Shapely for robust 2D geometry manipulation. - **G-code Generation**: Direct conversion of 2D contours (toolpaths) into G-code. - **Live Preview**: Debug nodes to visualize generated toolpaths directly in the Blender viewport. - **Extensible**: Modular architecture allowing for easy addition of new nodes and processing logic. ## Installation ### Requirements - Blender 4.2 or newer (uses the new Extension system). - Dependencies (bundled or installed via `uv`): - `numpy` - `shapely` - `pyclipper` ### As a Blender Extension 1. Zip the repository contents (excluding `.venv`, `__pycache__`, etc.). 2. In Blender, go to `Edit > Preferences > Get Extensions`. 3. Click the arrow in the top right and select `Install from Disk`. 4. Select your zip file. ## Quick Start 1. Open the **Node Editor**. 2. Switch the tree type to **NodeSlicer Tree**. 3. Create a new tree. 4. Add an **Object Input** node and select a mesh object. 5. Connect it to a **Get Mesh** node. 6. Connect the mesh to **Slice Shells**. 7. Connect the slices to **Slices to Paths**, then **Paths to Gcode**. 8. Use a **Gcode To File** node to export your result. ## Documentation - [Project Overview](doc/README.md) - [Module Reference](doc/MODULES.md) - [Node & Socket Reference](doc/NODES.md) ## License This project is licensed under the GPL-3.0-or-later license. See `blender_manifest.toml` for details.