Overview
The node that acts as a "pen" for drawing Bézier curves by hand. Double-click it to
open the dedicated editor, then place points to define lines and shapes. A path is not
an image by itself; it becomes pixel art only after connecting it to path_stroke
(draw a line) or path_fill (fill a shape). It is the starting point for fixed,
original shapes such as the outline of a sword, vine, or flame.
- Version: 3
- Interactive: yes (double-click to open the editor)
- Editor:
PathEditor - Japanese/English support: yes (fully localized through
useI18n)
Usage tips
- For simple rectangles, circles, and similar primitives,
shape_generateis faster than drawing them. Use this node for free curves and original outlines. - By default, the editor canvas matches the project canvas. Coordinates become pixel coordinates directly during downstream rasterization, so draw at the same size as the target asset.
- Save reusable shapes as
.pxpathfiles with 💾 (the default destination isuser_data/paths/single/). You can load them in other projects. - To animate a shape, expose a segment as a pin and use
segment_unpack→ waveform node →segment_packto drive its coordinates externally (see "External segment control" below).
Common pitfalls
- Nothing appears after drawing: the path output is line data, not an image. Pass
it through
path_strokeorpath_fillto rasterize it. - The shape cannot be filled: the path is still open. Close it with 🔒 in the
editor before connecting it to
path_fill. - The line looks blurry or uneven: this is controlled during rasterization. Check
the thickness and pixel-perfect correction settings in
path_stroke. - Stored data is unreadable: only blank text is a valid empty editor. Invalid non-empty JSON is preserved and shown as an error; copy the original payload for recovery or explicitly reset it to an empty path.
segment_countmirrors the editor state. Segment data comes frompath_data; changing the count alone does not create segments.- A connected
seg_Nmap must contain all eight coordinates. Incomplete maps are reported instead of being ignored. - Connecting a
seg_Nbeyond the segment count inpath_datais also reported instead of being silently ignored.
Editor features
Toolbar
| Tool | Icon | Description |
|---|---|---|
| Free | 🔀 | Combined tool for moving control points, appending to the end, and splitting curves |
| Add | ➕ | Click to add a new control point |
| Move | ✋ | Drag to move a control point |
| Delete | ❌ | Click an anchor to delete it |
| Select | ⬚/〇/⬣ | Area selection (choose the mode from the drop-down) |
Area selection tools (drop-down)
| Mode | Icon | Operation |
|---|---|---|
| Rectangle selection | ⬚ | Drag to create a rectangular selection |
| Lasso selection | 〇 | Drag to create a freehand selection |
| Polygon selection | ⬣ | Click to add vertices, then double-click to finish |
Drag selected control points to move them together. Shift+click adds individual points; Shift+drag constrains movement to an axis.
Other toolbar features
- 🔒/🔓 Close/Open: toggle the path between closed and open
- #ON / #OFF: toggle segment-number display
- 💾 Save: save the current path to a
.pxpathfile - 📂 Load: load a path from a
.pxpathfile - 🔍 N×: show the current zoom level
Saving and loading files (.pxpath format)
Path data can be saved to and loaded from a standalone file. This is independent of project saving.
File format:
{
"format": "PixPipelinePath",
"version": 1,
"type": "bezier",
"data": { "segments": [...], "closed": false }
}
A saved file can be imported into the Multi Path Editor as a new layer.
Canvas controls
- Zoom: mouse wheel
- Pan: middle-button drag or Space+drag
- Shift+click: 16-direction pixel snapping
- Ctrl+Z / Ctrl+Y: Undo / Redo
Operation help (bottom of the editor)
Instructions for the active tool appear automatically at the bottom of the editor in Japanese or English.
Examples
Basic usage
- Double-click the node to open the editor.
- Click to place control points and draw a path.
- Connect the Path output to PathStroke or PathSample.
Checking segment numbers
- Turn on the
#button in the editor toolbar. - A numbered badge appears at the center of every segment.
- Use these numbers as references when decomposing the path with SegmentUnpack.
External segment control
- In the inspector, use 📤 on
seg_Nto expose it as an output pin. - Connect it to SegmentUnpack and decompose the coordinate values.
- Process the coordinates with SineWave or another node.
- Reassemble them with SegmentPack.
- Use 📌 on
seg_Nto expose it as an input pin, then connect the external segment.
Reusing paths
- Click 💾 in the editor to save the path as a
.pxpathfile. - Load it with 📂 in another node or project.
- When loading it into the Multi Path Editor, it is added as a new layer.
Related nodes
path_stroke/path_fill— turn the path into a stroked or filled image (almost always the next step)multi_path_editor— when you want to manage multiple subpaths as layersshape_generate— faster for standard shapes such as rectangles and circlespath_transform/path_array— transform or repeat a drawn path