NijiGPen - Grease Pencil 2D Boolean, conversion to meshes and other features


NijiGPen is an add-on that brings more features to Grease Pencil. I would like to use Blender more for graphic design and 2D illustration/animation. Therefore, I implemented some new 2D-shape-based functions, taking some other design software as references. Current features include:

  • 2D Boolean:
    • Union, difference and intersection of multiple GPencil strokes
  • 2D Offset:
    • Fill Mode: Dilation/erosion of a stroke without self-overlapping
    • Line Mode: Turn lines into shapes
    • Corner Mode: Bevel-like effects
  • Mesh Generation:
    • Generate 3D structures from GPencil strokes in various styles
  • Clipboard Pasting:
    • Copy-and-paste of SVG codes with hole processing
    • Generate palette from XML codes of Adobe Color and other tools

Codes are available at:

And there is also a full demo video:


This addon has some great utilities, thank you!

At first it was constantly crashing and had no idea why until I re-read the instructions and notice it only works on the X/Y axes… I keep using the Z/Y axe and since there would be basically nothing to work on blender would crash. Let this be a warning for people that don’t follow directions, lol

1 Like

really helpful bro

Thank you for your feedback! You make me realize that there is a bug which may lead to crash for some corner cases even when operating in XZ-plane. I will fix it soon.

I think I will also make the add-on work with all three axes in future versions.


at 0:15 it looks like normal painting , like in any painting program with a flat round brush and then cconverted to a gp plane

which version of blender ? i always get error messages when trying to convert to mesh

on boolean selected:

Python: Traceback (most recent call last):
  File "C:\Users\alexm\AppData\Roaming\Blender Foundation\Blender\3.4\scripts\addons\nijigp\", line 276, in execute
    for j,stroke in enumerate(layer.active_frame.strokes):
AttributeError: 'NoneType' object has no attribute 'strokes'

on converting to mesh:

Python: Traceback (most recent call last):
  File "C:\Users\alexm\AppData\Roaming\Blender Foundation\Blender\3.4\scripts\addons\nijigp\", line 104, in execute
    for j,stroke in enumerate(layer.active_frame.strokes):
AttributeError: 'NoneType' object has no attribute 'strokes'

ive seen the same error in another gp addon recently but i cant remember which one

Currently, I can only focus on stable Blender versions. (I am using 3.0.0. and 3.2.1 myself.) Thank you for the feedback. I will add this statement to the GitHub page.

For this specific issue, I tried to fix it and published v0.1.1 available at:

But I cannot guarantee there are no other problems with alpha or beta versions of Blender. For example, the Blender SVG import module is under some changes in 3.4, so it is very likely that SVG-related operators of this add-on will not work.

1 Like

Add-on updated to v0.2.
New features:

  • Generate planar mesh and normal map from a GP shape
  • Extract line art sketches from a raster image
  • Custom keymap shortcut assignment for add-on operators

A demo of these features is available at:
I also created a Gumroad page for this add-on at:


Made another major update (v0.3) to add line processing functions. The major functionality is automatic clean-up of hand-drawn sketches.

A new demo video is available at


Updates of v0.4:

  • Redesigned shortcut buttons for better touchscreen control
  • Improvements on mesh generation
  • More import/export features
    • Better line art detection algorithm
    • Multi-color image vectorization
    • Render multiple layers to a single PSD file

Updates v0.5~0.7:

  • Two new modules: Smart Fill and 2D Rigging
  • Photoshop/GIMP brush texture import
  • New online manual:
  • Several improvements on existing functions

An introduction video is available at YouTube:


i wanted to send some money on gumroad , but you dont seem to have paypal option enabled. in germany we typically dont have a credit card.

Thanks for your feedback. I think I may not have linked the PayPal account correctly. I will check it again soon.

Also, I am not seriously running this project as a business. So please just skip the payment if you find it inconvenient. Your GitHub comments and code are already very helpful to me.

Edit: I checked related setting, and I think I have some personal circumstances that make it not proper to enable PayPal right away. Maybe I can get a better solution in the future, but I am not sure about it.