Blender node-based slicer
Find a file
2026-09-25 13:33:01 +03:00
.vscode mesh 2 pdf changes 2026-08-04 10:49:53 +03:00
core rm prusaslicer out of scope 2026-09-25 13:33:01 +03:00
doc rm prusaslicer out of scope 2026-09-25 13:33:01 +03:00
fonts font 2026-07-30 12:44:21 +03:00
gcode_snippets rf 2026-07-20 16:14:00 +03:00
infra rm prusaslicer out of scope 2026-09-25 13:33:01 +03:00
tests remove prusaslicer (out of scope) 2026-09-25 13:32:51 +03:00
wheels ransac wheel 2026-08-06 11:46:11 +03:00
.antigravity.md agy 2026-06-08 13:11:41 +03:00
.gitignore rm prusaslicer out of scope 2026-09-25 13:33:01 +03:00
.python-version init 2026-05-06 11:12:13 +03:00
__init__.py rm prusaslicer out of scope 2026-09-25 13:33:01 +03:00
AGENTS.md up 2026-08-03 13:24:59 +03:00
blender_manifest.toml ransac wheel 2026-08-06 11:46:11 +03:00
build.sh up 2026-05-06 21:09:46 +03:00
GEMINI.md up 2026-08-03 13:24:59 +03:00
nodes.blend up 2026-08-03 13:24:59 +03:00
pyproject.toml ransac wheel 2026-08-06 11:46:11 +03:00
README.md up 2026-06-10 16:05:51 +03:00
registry.py typing 2026-08-25 20:47:31 +03:00
uv.lock ransac wheel 2026-08-06 11:46:11 +03:00

NodeSlicer

NodeSlicer is a high-performance Blender extension that provides a custom node-based interface for mesh slicing and G-code generation. By using NumPy for geometry processing and Pyclipper for robust 2D polygon operations, it offers a flexible and extensible workflow for 3D printing, CNC toolpathing, and procedural geometry tasks.

Key Features

  • Custom Node Editor: A dedicated node tree type (NodeSlicer Tree) for slicing workflows.
  • Fast Geometry Processing: Vectorized mesh operations using NumPy and robust 2D geometry manipulation via Pyclipper.
  • G-code Lifecycle: Direct conversion of 2D contours (toolpaths) into G-code, with support for loading, joining, and exporting G-code.
  • Advanced Slicing:
    • Shell Slicing: Accurate Z-layer extraction.
    • Buffered Offsetting: Layer-independent offsetting with support for Euler rotations (tilted/non-planar offsetting).
    • Consistent Infill: Cross-hatch grid infill that maintains alignment across layers and supports degree-based rotation.
    • Boolean Slices: Union, Intersection, and Difference operations on slice boundaries.
  • Visual Preview: Built-in G-code to Mesh conversion with automated Geometry Nodes integration ("Nonplanar Slicing Preview") for high-quality viewport feedback.

Installation

Requirements

  • Blender 3.6 or newer.
  • Dependencies: numpy, pyclipper. (Included in the wheels/ directory or managed via uv).

Setup

  1. Download or clone this repository.
  2. In Blender, install as an addon by pointing to the directory or zip.
  3. Ensure the dependencies are available in your Blender Python environment.

Workflow

  1. Initialize: Open the Node Editor and switch the tree type to NodeSlicer Tree.
  2. Import: Use a Get Mesh node to bring a Blender object into the slicing engine.
  3. Slice: Use Slice Shells to generate layer boundaries.
  4. Process:
    • Add perimeters with Buffer Shells.
    • Add internal structure with the Infill node.
    • Combine or modify paths using Join Paths or Boolean Paths.
  5. Generate: Convert paths to G-code using Paths to Gcode.
  6. Export & Preview: Use Gcode To File to save the result, and Gcode to Preview Mesh to visualize the final toolpaths in the viewport.

Documentation

For detailed information on nodes and modules, see:

License

This project is licensed under the GPL-3.0-or-later license.