Blender node-based slicer
Find a file
2026-05-22 19:36:43 +03:00
core variable_f_rate 2026-05-22 19:36:43 +03:00
doc preview 2026-05-21 19:38:35 +03:00
gcode_snippets up 2026-05-21 20:23:08 +03:00
infra variable_f_rate 2026-05-22 19:36:43 +03:00
profiles/prusaslicer lazy loading profiles 2026-05-16 16:28:53 +03:00
property_groups object properties 2026-05-17 20:19:14 +03:00
tests search menus and refactor 2026-05-20 14:43:59 +03:00
ui ref 2026-05-18 13:19:19 +03:00
wheels bgcode support with wheels 2026-05-20 16:38:15 +03:00
.gitignore gitign 2026-05-15 17:48:13 +03:00
.python-version init 2026-05-06 11:12:13 +03:00
__init__.py object properties 2026-05-17 20:19:14 +03:00
blender_manifest.toml bgcode support with wheels 2026-05-20 16:38:15 +03:00
build.sh up 2026-05-06 21:09:46 +03:00
GEMINI.md md 2026-05-10 14:41:02 +03:00
nodes.blend variable_f_rate 2026-05-22 19:36:43 +03:00
pyproject.toml init 2026-05-06 11:12:13 +03:00
README.md better preview 2026-05-18 12:45:46 +03:00
registry.py multi gcode for file save 2026-05-20 21:37:49 +03:00
test.bgcode bgcode support linux 2026-05-20 16:17:07 +03:00
test.gcode bgcode support linux 2026-05-20 16:17:07 +03:00
uv.lock init 2026-05-06 11:12:13 +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 Join Slices.
  5. Generate: Convert paths to G-code using Paths to Gcode.
  6. Export & Preview: Use Gcode To File to save the result, and Gcode Preview 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.