Install Asset
Install via Godot
To maintain one source of truth, Godot Asset Library is just a mirror of the old asset library so you can download directly on Godot via the integrated asset library browser








Quick Information

Scalable Vector Shapes 2D lets you do 3 things:- Draw seamless vector shapes using a Path Editor inspired by the awesome Inkscape- Animate curves of your vector shapes (useful for faces, whips, dents in cans)- Import .svg files as seamless vector shapes in stead of as raster imagesWatch the new 10 minute A-Z explainer on youtube:https://www.youtube.com/watch?v=_QOnMRrlIMkInspired by Mark Hedberg's great explainer:https://www.hedberggames.com/blog/rendering-curves-in-godotSpotted a bug? Help me fix it quickly by reporting it on github:https://github.com/Teaching-myself-Godot/ez-curved-lines-2d/issuesOr ask a question on the subreddit:https://www.reddit.com/r/ScalableVectorShape2D# Changelog## 2.6.3 - 2025-06-15## Added- Change line-capping of strokes via inspector- Change line-joining of strokes via inspector- Pick default line-cap and line-join modes for creating new strokes- Maps line-join modes and line-cap modes from SVG to Godot using the importer- Pixel snap mode checkbox, disabled by default- Show point positions under editor hints- Form to set exact global position for curve point and handles (in path mode)- Export as PNG button in inspector form of ScalableVectorShape2D## Changed- "Show point numbers" renamed to "Show point details", also toggles position info on/off- Bugfix: build failures due to internal tool class referenced at runtime## 2.5.2 - 2025-06-08### Added- Makes Rectangles editable using one size handle and two rounded corner handles- Makes Ellipses editable using one size handle- Adds create buttons for Rectangle as Rectangle and Ellipse as Ellipse- ..next to exists create buttons for them as Path- Adds a "convert to path" button in the inspector when `shape_type` is a rectangle or ellipse### Changed- Enhancement: newly created Rectangle has its origin at its natural center, in stead of its top/left corner- Bugfix: gradient stop color order stays in tact after undo remove- Bugfix: Bottom Panel is more visible after fresh install- Bugfix: preloading replaced by loading to fix busy resource issues in inspector plugin code- Bugfix: previewed shape has scaled stroke### Removed- Custom collapse / expand titles from inspector plugin forms in favour of `@export_group` annotations on `ScalableVectorShape2D`## 2.4.3 - 2025-06-07### Changed- Fixed a preloading + busy device bug in inspector plugin load script## 2.4.2 - 2025-06-05### Added- Batch insert key frame button for entire curve- Batch insert key frame button for entire gradient- Key frame button for stroke width- Key frame button for fill stroke color- Key frame button for fill color### Changed- Fixes ordering bug of gradient stop color buttons- Reconnects import svg button to file dialog in svg importer panel## 2.3.2 - 2025-05-31### Added- Adds gradient fill toggle to the inspector form- Adds gradient stop color buttons to the inspector form- Adds gradient start- and end handle to 2D editor- Adds stop color handles to 2D editor- Implements paint-order correctly in SVG importer- Better tooltips for SVG importer- Warning message for unsupported clipping (using 'm'- / 'M'-operator) in SVG importer### Changed- Bugfix: resizes the gradient texture when the bounding box changes- Regression fix: all the SVG importer settings in the SVG importer form work again## 2.2.1 - 2025-05-28### Added- Adds easier to use forms for Stroke, Fill and Collision shape to the `ScalableVectorShape2D` inspector- Adds project settings for defaults like stroke width, stroke and fill colors, and paint order- Separates the point numbers from the hint labels- Saves project settings for enabling and disabling hints and viewport editing- Shows a preview of the shape which is about to be added via the bottom panel- Explanatory tooltips for all the fields and options that are not self-explanatory enough## 2.1.3 - 2025-05-24### Added- Undo/Redo for strokes (`Line2D`) fills (`Polygon2D`) and collisions (`CollisionPolygon2D`) added with the `Generate` button in the inspector- After Undo of creating a new shape from the bottom panel, its parent node is automatically selected again- Resize a shape without using the `scale` property using `Shift+mousewheel`, for more pixel perfect alignment### Changed- Fix: after adding point on line with double click, the correct point is removed again with undo- Fix: when a curve is closed, it stroke (the `Line2D` assigned to the `line`-property) is also closed and vice-versa- Fix: closing a shape now works by simply adding a segment between the last and first point## 2.1.0 - 2025-05-21### Added- Use `Ctrl+click` to add points to a shape faster- Undo/Redo support for shapes from the bottom panel### Changed- Shapes from the bottom panel are added as child of the selected node- When no node is selected, shapes from the bottom panel are added in the center of the viewport- Batched Undo/Redo for all mouse drag operations- Tooltip and ability to copy link with right click on `LinkButton` to external content## 2.0.0 - 2025-05-19### Added- Custom node `ScalableVectorShape2D` introduced, enabling editing of its `Curve2D` using the mouse similar to the popular open source vector drawing program [Inkscape](https://inkscape.org/)- Add a circle, ellipse or rectangle from the bottom panel directly- Ability to Undo/Redo many drawing operations- A more comprehensive manual in the [README](./README.md)### Changed- The custom node `DrawablePath2D` was deprecated in favor of `ScalableVectorShape2D`## 1.3.0 - 2025-05-10_Last stable release of EZ Curved Lines 2D_This shipped 2 things:- An SVG file importer, which transforms shapes into native Godot nodes- The custom node `DrawablePath2D`, which extends from Godot's `Path2D` to use its built-in `Curve2D` editor
EZ Curved Lines 2D for Godot 4.4
This plugin helps you draw curved lines quickly in the 2D editor.
Quick Start
After activating this plugin via Project > Plugins
follow these steps.
1. Create a new 2D Scene
2. Add a DrawablePath2D
node to you scene tree (Ctrl + A)
3. In the Inspector
tab click the Generate New Line2D
button
4. Start drawing your DrawablePath2D
like a normal Path2D
Adding and manipulating points the normal way you would for a Path2D
.
Creating curves using the Select Control Points
mode:
.
5. You can change the properties of the Line2D
in the inspector
Your new line will update every time you change the Curve2D
of your Path2D
Explainer on Youtube
Attributions
This plugin was fully inspired by Mark Hedberg's blog on rendering curves in Godot.
Scalable Vector Shapes 2D lets you do 3 things:
- Draw seamless vector shapes using a Path Editor inspired by the awesome Inkscape
- Animate curves of your vector shapes (useful for faces, whips, dents in cans)
- Import .svg files as seamless vector shapes in stead of as raster images
Watch the new 10 minute A-Z explainer on youtube:
https://www.youtube.com/watch?v=_QOnMRrlIMk
Inspired by Mark Hedberg's great explainer:
https://www.hedberggames.com/blog/rendering-curves-in-godot
Spotted a bug? Help me fix it quickly by reporting it on github:
https://github.com/Teaching-myself-Godot/ez-curved-lines-2d/issues
Or ask a question on the subreddit:
https://www.reddit.com/r/ScalableVectorShape2D
# Changelog
## 2.6.3 - 2025-06-15
## Added
- Change line-capping of strokes via inspector
- Change line-joining of strokes via inspector
- Pick default line-cap and line-join modes for creating new strokes
- Maps line-join modes and line-cap modes from SVG to Godot using the importer
- Pixel snap mode checkbox, disabled by default
- Show point positions under editor hints
- Form to set exact global position for curve point and handles (in path mode)
- Export as PNG button in inspector form of ScalableVectorShape2D
## Changed
- "Show point numbers" renamed to "Show point details", also toggles position info on/off
- Bugfix: build failures due to internal tool class referenced at runtime
## 2.5.2 - 2025-06-08
### Added
- Makes Rectangles editable using one size handle and two rounded corner handles
- Makes Ellipses editable using one size handle
- Adds create buttons for Rectangle as Rectangle and Ellipse as Ellipse
- ..next to exists create buttons for them as Path
- Adds a "convert to path" button in the inspector when `shape_type` is a rectangle or ellipse
### Changed
- Enhancement: newly created Rectangle has its origin at its natural center, in stead of its top/left corner
- Bugfix: gradient stop color order stays in tact after undo remove
- Bugfix: Bottom Panel is more visible after fresh install
- Bugfix: preloading replaced by loading to fix busy resource issues in inspector plugin code
- Bugfix: previewed shape has scaled stroke
### Removed
- Custom collapse / expand titles from inspector plugin forms in favour of `@export_group` annotations on `ScalableVectorShape2D`
## 2.4.3 - 2025-06-07
### Changed
- Fixed a preloading + busy device bug in inspector plugin load script
## 2.4.2 - 2025-06-05
### Added
- Batch insert key frame button for entire curve
- Batch insert key frame button for entire gradient
- Key frame button for stroke width
- Key frame button for fill stroke color
- Key frame button for fill color
### Changed
- Fixes ordering bug of gradient stop color buttons
- Reconnects import svg button to file dialog in svg importer panel
## 2.3.2 - 2025-05-31
### Added
- Adds gradient fill toggle to the inspector form
- Adds gradient stop color buttons to the inspector form
- Adds gradient start- and end handle to 2D editor
- Adds stop color handles to 2D editor
- Implements paint-order correctly in SVG importer
- Better tooltips for SVG importer
- Warning message for unsupported clipping (using 'm'- / 'M'-operator) in SVG importer
### Changed
- Bugfix: resizes the gradient texture when the bounding box changes
- Regression fix: all the SVG importer settings in the SVG importer form work again
## 2.2.1 - 2025-05-28
### Added
- Adds easier to use forms for Stroke, Fill and Collision shape to the `ScalableVectorShape2D` inspector
- Adds project settings for defaults like stroke width, stroke and fill colors, and paint order
- Separates the point numbers from the hint labels
- Saves project settings for enabling and disabling hints and viewport editing
- Shows a preview of the shape which is about to be added via the bottom panel
- Explanatory tooltips for all the fields and options that are not self-explanatory enough
## 2.1.3 - 2025-05-24
### Added
- Undo/Redo for strokes (`Line2D`) fills (`Polygon2D`) and collisions (`CollisionPolygon2D`) added with the `Generate` button in the inspector
- After Undo of creating a new shape from the bottom panel, its parent node is automatically selected again
- Resize a shape without using the `scale` property using `Shift+mousewheel`, for more pixel perfect alignment
### Changed
- Fix: after adding point on line with double click, the correct point is removed again with undo
- Fix: when a curve is closed, it stroke (the `Line2D` assigned to the `line`-property) is also closed and vice-versa
- Fix: closing a shape now works by simply adding a segment between the last and first point
## 2.1.0 - 2025-05-21
### Added
- Use `Ctrl+click` to add points to a shape faster
- Undo/Redo support for shapes from the bottom panel
### Changed
- Shapes from the bottom panel are added as child of the selected node
- When no node is selected, shapes from the bottom panel are added in the center of the viewport
- Batched Undo/Redo for all mouse drag operations
- Tooltip and ability to copy link with right click on `LinkButton` to external content
## 2.0.0 - 2025-05-19
### Added
- Custom node `ScalableVectorShape2D` introduced, enabling editing of its `Curve2D` using the mouse similar to the popular open source vector drawing program [Inkscape](https://inkscape.org/)
- Add a circle, ellipse or rectangle from the bottom panel directly
- Ability to Undo/Redo many drawing operations
- A more comprehensive manual in the [README](./README.md)
### Changed
- The custom node `DrawablePath2D` was deprecated in favor of `ScalableVectorShape2D`
## 1.3.0 - 2025-05-10
_Last stable release of EZ Curved Lines 2D_
This shipped 2 things:
- An SVG file importer, which transforms shapes into native Godot nodes
- The custom node `DrawablePath2D`, which extends from Godot's `Path2D` to use its built-in `Curve2D` editor
Reviews
Quick Information

Scalable Vector Shapes 2D lets you do 3 things:- Draw seamless vector shapes using a Path Editor inspired by the awesome Inkscape- Animate curves of your vector shapes (useful for faces, whips, dents in cans)- Import .svg files as seamless vector shapes in stead of as raster imagesWatch the new 10 minute A-Z explainer on youtube:https://www.youtube.com/watch?v=_QOnMRrlIMkInspired by Mark Hedberg's great explainer:https://www.hedberggames.com/blog/rendering-curves-in-godotSpotted a bug? Help me fix it quickly by reporting it on github:https://github.com/Teaching-myself-Godot/ez-curved-lines-2d/issuesOr ask a question on the subreddit:https://www.reddit.com/r/ScalableVectorShape2D# Changelog## 2.6.3 - 2025-06-15## Added- Change line-capping of strokes via inspector- Change line-joining of strokes via inspector- Pick default line-cap and line-join modes for creating new strokes- Maps line-join modes and line-cap modes from SVG to Godot using the importer- Pixel snap mode checkbox, disabled by default- Show point positions under editor hints- Form to set exact global position for curve point and handles (in path mode)- Export as PNG button in inspector form of ScalableVectorShape2D## Changed- "Show point numbers" renamed to "Show point details", also toggles position info on/off- Bugfix: build failures due to internal tool class referenced at runtime## 2.5.2 - 2025-06-08### Added- Makes Rectangles editable using one size handle and two rounded corner handles- Makes Ellipses editable using one size handle- Adds create buttons for Rectangle as Rectangle and Ellipse as Ellipse- ..next to exists create buttons for them as Path- Adds a "convert to path" button in the inspector when `shape_type` is a rectangle or ellipse### Changed- Enhancement: newly created Rectangle has its origin at its natural center, in stead of its top/left corner- Bugfix: gradient stop color order stays in tact after undo remove- Bugfix: Bottom Panel is more visible after fresh install- Bugfix: preloading replaced by loading to fix busy resource issues in inspector plugin code- Bugfix: previewed shape has scaled stroke### Removed- Custom collapse / expand titles from inspector plugin forms in favour of `@export_group` annotations on `ScalableVectorShape2D`## 2.4.3 - 2025-06-07### Changed- Fixed a preloading + busy device bug in inspector plugin load script## 2.4.2 - 2025-06-05### Added- Batch insert key frame button for entire curve- Batch insert key frame button for entire gradient- Key frame button for stroke width- Key frame button for fill stroke color- Key frame button for fill color### Changed- Fixes ordering bug of gradient stop color buttons- Reconnects import svg button to file dialog in svg importer panel## 2.3.2 - 2025-05-31### Added- Adds gradient fill toggle to the inspector form- Adds gradient stop color buttons to the inspector form- Adds gradient start- and end handle to 2D editor- Adds stop color handles to 2D editor- Implements paint-order correctly in SVG importer- Better tooltips for SVG importer- Warning message for unsupported clipping (using 'm'- / 'M'-operator) in SVG importer### Changed- Bugfix: resizes the gradient texture when the bounding box changes- Regression fix: all the SVG importer settings in the SVG importer form work again## 2.2.1 - 2025-05-28### Added- Adds easier to use forms for Stroke, Fill and Collision shape to the `ScalableVectorShape2D` inspector- Adds project settings for defaults like stroke width, stroke and fill colors, and paint order- Separates the point numbers from the hint labels- Saves project settings for enabling and disabling hints and viewport editing- Shows a preview of the shape which is about to be added via the bottom panel- Explanatory tooltips for all the fields and options that are not self-explanatory enough## 2.1.3 - 2025-05-24### Added- Undo/Redo for strokes (`Line2D`) fills (`Polygon2D`) and collisions (`CollisionPolygon2D`) added with the `Generate` button in the inspector- After Undo of creating a new shape from the bottom panel, its parent node is automatically selected again- Resize a shape without using the `scale` property using `Shift+mousewheel`, for more pixel perfect alignment### Changed- Fix: after adding point on line with double click, the correct point is removed again with undo- Fix: when a curve is closed, it stroke (the `Line2D` assigned to the `line`-property) is also closed and vice-versa- Fix: closing a shape now works by simply adding a segment between the last and first point## 2.1.0 - 2025-05-21### Added- Use `Ctrl+click` to add points to a shape faster- Undo/Redo support for shapes from the bottom panel### Changed- Shapes from the bottom panel are added as child of the selected node- When no node is selected, shapes from the bottom panel are added in the center of the viewport- Batched Undo/Redo for all mouse drag operations- Tooltip and ability to copy link with right click on `LinkButton` to external content## 2.0.0 - 2025-05-19### Added- Custom node `ScalableVectorShape2D` introduced, enabling editing of its `Curve2D` using the mouse similar to the popular open source vector drawing program [Inkscape](https://inkscape.org/)- Add a circle, ellipse or rectangle from the bottom panel directly- Ability to Undo/Redo many drawing operations- A more comprehensive manual in the [README](./README.md)### Changed- The custom node `DrawablePath2D` was deprecated in favor of `ScalableVectorShape2D`## 1.3.0 - 2025-05-10_Last stable release of EZ Curved Lines 2D_This shipped 2 things:- An SVG file importer, which transforms shapes into native Godot nodes- The custom node `DrawablePath2D`, which extends from Godot's `Path2D` to use its built-in `Curve2D` editor