Modify Path

The extensions in this section all modify an existing path.

Add Nodes

Adds nodes to a path, leaving the shape of the path unchanged. The nodes are added evenly spaced. The number of nodes is either specified or by setting a minimum specified spacing. Good for creating scissor lines.

Convert regular shapes to paths before applying.

Add node example.
Example of using Add Node. Top: A Bezier curve defined by three nodes. Middle: Same curve after using Add Node. Bottom: Curve converted to cut line.

Color Markers to Match Stroke

Automates changing the Markers to match the color of the Stroke. The extension makes copies of a Markers in the <defs> section of the SVG file with the appropriate color. This extension is a temporary work-around until the SVG 1.2 standard is finalized. The new standard is expected to simplify matching Marker color with Stroke color.

Color Marker to Match Stroke example.
Example of using the Color Marker to Match Stroke extension. The top arrow shows the markers just after changing the stroke color. The bottom arrow shows the results of applying this extension.

Convert to Dashes

The extension takes a Path with Dashes and converts each Dash into a separate sub-path. This is to allow desktop cutting plotters to cut dashed lines.

Edge 3D

Adds highlights and shadows to simulate 3D objects like buttons. The extension works by adding paths that are blurred via the Gaussian Blur filter and then clipped. The paths have partial transparency, with white for highlights and black for shadows. The extension only works on paths so regular shapes need to be converted first. You may also need to add additional nodes.


  • Illumination Angle: Sets the angle from which light arrives.
  • Shades: Sets the number of different gray levels. The path is broken up into sections according to the relative angles of the nodes. A shading path is generated for each level. You must have a least as many nodes in the original path as shades.
  • Only black and white: If checked, only the lightest (white) and darkest (black) parts are generated.
  • Stroke width: Not used (fixed internally at 10).
  • Blur stdDeviation: Sets the blur radius for the Gaussian Blur filter in pixel units.
  • Blur width, Blur height: Sets the width and height of the Filter Effects Region, the area where the blur is calculated. These parameters are not very useful (you cannot set the x and y terms). Leave both set at 2.0.
Edge 3D example.
Example of using Edge 3D. Both square and circle were converted to paths. The Add Node extension was used to add nodes to the circle. The number of Shades is 2 for the square and 4 for the circle.


Distorts a path so that the path's original bounding box is mapped to the edges of a quadrilateral. To use the extension, select the path to transform first, then add the quadrilateral path to the selection. Regular shape objects must be converted to a path before transformation.

Envelop example.
Left: Original path. Right: Path after mapping bounding box to quadrilateral.

The extension works on a single path. The beginning point of the quadrilateral path will determine the orientation of the transformed image. If the image is inverted (like looking through a mirror), reverse the direction of the quadrilateral path with the Path icon Reverse (Shift+R) command.

This extension could be used to produce a pseudo-perspective extension. For real perspective, use the Perspective extension.

Flatten Bezier

This extension converts selected Bezier curves to an approximation composed of straight-line paths. The number of line segments used is determined by the Flatness parameter. The smaller the Flatness, the more line segments are used.

Flatten Bezier example.
Example of using Flatten Bezier. Top: A Bezier curve defined by three nodes. Middle: After using extension with Flatness of 10. Bottom: After using extension with Flatness of 2.


This extension turns a straight-line segment into a crooked segment. It works by finding the midpoint of the line segment, adding a node at that point, and then moving the node a random distance perpendicular to the original path direction. This division routine is called recursively depending on the setting of the Subdivisions entry in the dialog, doubling the number of resulting segments for each increase by one. The Smoothness of the path can also be specified. The magnitude of the perpendicular displacement is a random function with the limits determined by ±(Segment length)/(1 + Smoothness).

The extension will also work on a curved path by turning the path into a series of line segments between the path's nodes.

Fractalize example.
Example of using Fractalize. From top to bottom, the Subdivision parameter was increased from 1 to 5. The Smoothness parameter was set to 10.

Interpolate Attribute in a Group

This extension takes the objects in a Group or a selection and assigns a value to some attribute of each object, interpolating between two extremes to determine the value. Note that the order of the objects in the SVG file determines the order in which the interpolated attributes are assigned. Options include interpolating color, width, height, scale, and position.

Interpolate Attribute In A Group example.
Example of using the Interpolate Attribute In A Group extension to interpolate color. There are two groups of five squares. The following parameter values were used: Attribute to Interpolate: Fill, Where to apply?: Style, Start Value: #ff0000, End Value: #000000, Unit: Color. The difference between the top row and bottom row is the order in which the squares are included in the SVG file.
Interpolate Attribute In A Group example 2.
Example of using the Interpolate Attribute In A Group extension to interpolate width and scale. There are two groups of five squares. The following parameter values were used: Top: Attribute to Interpolate: Width, Start Value: 10, End Value: 40, Unit: No Unit. Bottom Attribute to Interpolate: Scale, Start Value: 0.5, End Value: 1.5, Unit: No Unit. In the last case, the x and y positions are scaled as a side effect.

Jitter Nodes

Randomly shift nodes and/or node handles. The Maximum displacement parameter controls the magnitude of the randomization. When the Use normal distribution box is not checked, the magnitude of displacements will be uniformly distributed between zero and the Maximum displacement value (in pixels). When the box is checked, the magnitudes of the displacements will have a Normal (a.k.a. Gaussian or Bell curve) distribution with a standard deviation of 0.5 times the Maximum displacement value. The Normal distribution option may produce more natural-looking variations in a path. In both cases, the direction of the displacement will be random.

Jitter nodes example.
Top: Array of stars created with the Create Tiled Clones dialog. Bottom: Same array after applying the Jitter nodes extension. Note that the stars must be converted to paths before the extension is applied.


Distorts a path (or a Group of paths) so that the path's original bounding box is mapped to the edges of a quadrilateral and a perspective extension is applied to the path. To use the extension, select the path to transform first, then select the quadrilateral. Regular shapes and text must be converted to a path before transformation. This extension requires the Numpy (Numerical Python) package.

The beginning point of the quadrilateral path will determine the orientation of the transformed image; in most cases, the quadrilateral path should be started from the lower-left corner and proceed in a clockwise direction. The Tab key will cycle through the nodes in order when the Node Tool is in use. If no node is selected, then the starting node will be highlighted on the first use of the Tab key. To change the starting node, break the path at the desired start node (v0.47) or one node before (v0.48) ( icon ) and then rejoin ( icon ). To reverse a path, use the Path icon Reverse (Shift+R) command.

Perspective example.
Left: Original path. Middle: Target quadrilateral. The nodes have been numbered to show the normal order in which they should be drawn. Right: Path after mapping bounding box to quadrilateral.
Perspective example 2.
Mapping text to the sides of a block with perspective. The text must be converted to a path. In order to center the text, the text has been grouped with a rectangle (also converted to a path).


New in v0.48.

Adjusts paths and rectangles to the pixel grid so that when exported as a bitmap, the lines are sharp. Filled objects are adjusted so that their edges are aligned with pixel boundaries. Paths are first adjusted to have an integer pixel width, and then adjusted so the stroke edges align with the boundaries.

Pixelsnap example.
Left: A rectangle and a path, misaligned with the pixel grid. Right: The same rectangle and path after applying the Pixelsnap extension. Both rectangles and paths are 20 pixels wide by 20 pixels high.

Rubber Stretch

Distorts a path as if the path was stretched vertically or the path was squeezed horizontally. The amount of the distortion is controlled by the Strength and Curve parameters. Adding extra nodes may produce a better result.

Rubber stretch example.
From left to right: Input path (with extra nodes added). After applying the extension with parameters values for Strength and Curve of 50%, 0%; 0%, 50%; and 25%, 25%, respectively.

Straighten Segments

Reduces the curvatures of path segments. The amount of straightening can be specified. A Behavior value of 1 moves the node handles toward the nodes, a value of 2 moves the node handles to a point one-third of the distance between the node and the neighboring node. There is little visual difference between these two options.

Segment straightener example.
From top to bottom, a path with the Straighten Segment extension applied 0, 1, 2, and 3 times.


This extension twists an object around a point, like what might happen if you dropped things in whirling water (except the farther away from the center, the greater the displacement for this extension). The amount of whirling is an input parameter. Objects must be converted to paths before applying the extension.


The center of view is used for the center of the whirl. To whirl around the center of an object, select the object and then use View Zoom icon Selection (3) to center the view on the object.

Whirl example.
From left to right, top to bottom: Whirl of 0, 1, 10, and 25 units. In each case, the center of the whirl is the center of each array of small squares.