Open-source project
Shriinivas/blenderbezierutils avatar
Shriinivas/blenderbezierutils

blenderbezierutils: drawing and editing Bezier curves inside Blender

Blender Add-on with Bezier Utility Ops

631 stars64 forksPythonGPL-3.0

At a glance

What is it?
This Blender add-on replaces the click-to-place workflow of the built-in curve tools with three interactive tools, one for drawing, one for editing, and one for the grease pencil, each with a large set of snapping and transform options. The interesting parts are the transform preset system, which decides what the orientation axes mean, and the offset reference, which decides what a number you type is measured from.
Who is it for?
blenderbezierutils fits a Blender artist who draws curves interactively rather than by placing a fixed number of points, and who needs the curve to sit on a surface or in an isometric grid while they draw it. It does not fit a workflow that drives Blender from a script, since the value here is the interactive handling.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 34 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Three tools, and why they exist

The add-on is described as containing several tools and utility operations for working with Bezier curves, and the readme makes its scope precise: the Flexi Draw, Flexi Edit, and Flexi Grease tools are interactive tools for drawing and editing Bezier curves with comprehensive snapping and transform options.

The word interactive is the load-bearing part. Blender's own curve tools work by a fixed protocol: you choose a tool, you click to place points, the software fills in the handles. The result is a curve with a shape you did not choose, adjusted afterwards. These tools invert that, because the point is placed by dragging the mouse to set the curvature, and the handle position is the input rather than the output.

The consequence is a different set of verbs. The draw tool is available in object mode and lets you draw Bezier curves by manipulating control points. The edit tool is also in object mode and works on curves you already have. The grease tool is in the grease pencil draw mode, and the curves it draws convert into grease pencil strokes.

That third one is a good example of what an add-on can do that the built-in tools cannot. Grease pencil in Blender is a different data type with a different set of properties, and a Bezier curve cannot simply become a stroke. An add-on that draws in one representation and converts on the way out gives you the interactive handling of the curve tools with the output type you actually want.

The supported Blender versions are listed as 4.2 LTS, 4.3 and later, and 5.0. There is a note that this version is optimised for Blender 5.0, and that if you hit problems on the earlier versions you should download the beta release instead. That is an honest admission, and it is worth reading before you install: the newest version is the one tuned for the newest Blender, and the older ones are not what you want if you are on 4.2.

The add-on version is 1.1, the releases are versioned with a prefix of the add-on name, and the last push was in September 2026. The licence is GPL-3.0, and there is a playlist of video tutorials linked from the readme.

Installing, and where the tools appear

Installation is the standard Blender add-on path, and the readme gives it in five steps.

Download the latest archive from the releases page, open Blender and go to the preferences, click the add-ons tab and then the option to install an add-on from a file, select the downloaded file, and tick the option in the add-ons dialog.

The last step is the one that people miss, because installing an add-on is not the same as enabling it. Blender downloads and extracts the file into its add-on directory, and until the checkbox is ticked the code is there but not running.

After that, a new tab appears in the properties panel, in both object mode and edit mode, and three tools appear on the toolshelf. The draw tool and the edit tool are object mode tools, and the grease tool is for the grease pencil draw mode.

The fact that the properties panel gains a tab in two different modes tells you something about how the add-on is built. A Blender add-on registers operators, and those operators appear in menus and in the toolshelf, but a panel with per-mode content means there is also a user interface class that draws controls in the sidebar. The readme refers to a toolbar in several places, with edit boxes and dropdowns, and those are the panel controls that the operator code reads its settings from.

That structure matters when you use the add-on seriously, because most of the options are not in a menu that you look up each time. They are in a panel that stays visible while you work, which is what makes the transform and snapping settings usable in practice rather than a configuration exercise done once and forgotten.

The draw tool, and its grammar of keys

The draw tool works by a small number of actions and a small number of keys, and the readme lists them in a way that reads like a grammar.

To draw, you activate the tool and pick Bezier curve from the shape type dropdown, click the left mouse button on the starting point, then click and drag on the end point to adjust the curvature, and continue drawing further segments. A double click, or Enter or Space, converts the result into a curve object, and a modifier combination with Space or Enter auto-closes it.

That last distinction is worth noting. Converting and auto-closing are separate operations, because a closed loop and an open curve are different objects for most purposes, and an add-on that conflated them would be annoying for anyone drawing an open stroke.

Then there is the set of keys that apply while drawing. Pressing a configurable key while dragging to set the handle location grabs the point itself and lets you reposition it, with all the snapping options available, and pressing it again releases the grab. Shift with R resets the handle so that a previously curved segment becomes straight. V dissociates the handle, changing it to the free type and allowing cusp nodes, which is how you get a hard corner in the middle of a curve. Backspace undoes one segment, Escape removes the whole curve, and Ctrl with Z undoes after finishing.

The undo behaviour is a small design decision that tells you about the implementation. Undoing a single segment while drawing is different from undoing the finished object, and a tool that supports both has to record the intermediate state rather than only the final result.

The handle dissociation deserves one more note. In Blender a Bezier handle is either aligned with its opposite or free, and the difference is whether the curve is smooth through the point. Changing the type mid-draw, with a single key, is a small thing that is tedious to do through the interface, and having it as a key makes it usable.

Shapes, primitives, and plotting a function

The draw tool is not only for freehand curves, and the second half of its documentation is about generating geometry that is exactly shaped.

The shape type dropdown offers a rectangle, an ellipse or circle, a polygon, a star, and a math function. For the shapes you click a starting and an end point, and holding Shift constrains the height and width to be equal, which is how you get a perfect circle or square rather than an ellipse or rectangle that happens to be close. The readme mentions that you can optionally snap to the grid.

The number of sides or segments is then adjusted with the mouse wheel or the plus and minus keys on the numeric keypad, or typed directly into the edit box in the toolbar. The mouse wheel and the keypad are the same operation in two notations, which is a common pattern in Blender add-ons and worth knowing: the wheel is fast and imprecise, the field is exact.

There is a drawing mode dropdown for choosing whether the shape is drawn from its centre or from a corner, which is the same kind of decision that appears in every 2D drawing tool. For the ellipse, the circle, the polygon, and the star there is a sweep, an angle that can be typed into the toolbar or changed with the left and right arrow keys, up to a maximum of 360 degrees. For the ellipse there is also a starting angle, changed with the up and down arrows, which tilts the ellipse rather than moving it, which is the distinction you would want for drawing a ring segment.

The math function option is the most unusual. Choosing it lets you plot a mathematical equation, entering something like a sine of x or x squared, setting a resolution and a range, and the tool plots it. The readme says it supports both XY and parametric functions with the standard mathematical operations, and that the functions can be saved and loaded for reuse.

That last point is what turns it from a curiosity into a tool. A parametric curve is not something you can draw with a mouse, and a saved function is a shape you can drop into any project. There is also a copy object properties option, where you select an existing curve object in the toolbar and the new curve takes its material, its dimensions, and its bevel properties, which is how you draw a new shape that matches the rest of the scene without re-specifying the surface treatment every time.

Editing: the same grammar, on an existing curve

The edit tool has the same structure as the draw tool, which is the mark of a coherent design.

Moving the mouse highlights the segments. Clicking activates a segment and shows its handles, and then you drag any curve point to edit it, drag the handles and the endpoints, and release to apply the changes. Grabbing a point is a different action: a double click grabs it, the point follows the mouse without dragging, and it is released with the next single click.

Adding a vertex is a modifier click, with Ctrl for a plain vertex, Shift with Ctrl for aligned handles, and Alt with Ctrl for vector handles. Deleting is a matter of selecting an endpoint, which is shown in a dark green, and pressing delete, with delete on a handle point aligning it instead.

Then there are the two toggles. E switches between draw and edit, and H toggles handle visibility. The first is what lets the two tools share a place on the toolshelf, and the second is a practical necessity in a dense curve, because the handles are what you click on and a curve with a dozen visible handle pairs is hard to hit precisely.

The other editing operations are more specialised. Subdividing segments uniformly is a matter of selecting segments, holding Shift for several, pressing W, and then using the wheel or the keypad to set the number of subdivisions, with Space or Enter to confirm. Aligning a handle with its opposite is done by selecting the handle point and pressing K.

All of these are single-key operations on the state of a curve, and the pattern across the whole add-on is that the mouse does the spatial work and the keyboard does the semantic work. That division is what makes the tool fast, and it is also why the readme marks several of the keys as configurable: a single-key scheme in a host application that has its own single keys is a conflict waiting to happen.

The transform system, and the two ideas behind it

The transform system is the part of the add-on with the most thought in it, and it is worth separating into two ideas that are easy to confuse.

The first is the orientation. The transform presets are quick-access buttons at the top of the toolbar for common configurations, and there are five of them. Free is global orientation with the cursor as pivot and the standard workflow. Continue uses a reference orientation and takes offsets from the previous point, which is for smooth continuation. Axis gives a custom axis orientation and snapping, for isometric and angled work. Face is face-aligned orientation, drawing relative to locked face planes. Surface is a surface-following mode that snaps points to the mesh and wraps the curve segments to hug the mesh topology when the curve is finalised.

The second idea is the pivot point, which sets where the transformation axes are centred, which is where the orientation lines originate. There are five options: the 3D cursor, the global origin at the world coordinates, the active object, a custom axis start point, and the face of the active object under the cursor.

And then there is the third piece, the offset reference, which is separate from the pivot. It sets the reference point for numeric input and for angle snapping. From pivot means the offsets are calculated from the selected pivot, so a value of five on the X axis means five units from the pivot. From previous point means the offsets are calculated from the last drawn point, which the readme notes is useful for continuous drawing.

That distinction is the one to hold on to. The pivot controls where the rotation and orientation axes live. The offset reference controls what a number you type means. And they can point in different directions: you can rotate around the cursor and measure a distance from the last point you drew, which is a combination that is easy to want and hard to explain, and which is why the add-on exposes them as separate settings rather than tying them together.

Snapping, and the framework underneath

The snapping and locking framework is described as common to all the Flexi tools, and the readme starts describing it with the header options.

The constraining axes dropdown lets you select a single axis, or an axis pair, which constrains drawing and editing to that axis or plane. The readme notes that the interpretation depends on the snapping orientation, which is a small warning that matters: the same dropdown means different things depending on another setting, which is a sign of a two-dimensional design space rather than a hierarchy.

There is a snap to plane checkbox, and the description of the section is cut short in the version of the readme available here, so the rest of the header options are not documented in the documentation available here. That is worth saying plainly rather than guessing at.

What is clear from the parts that are present is the structure. The header options are the global constraints for the session, the snapping and locking options are shared across the three tools so that a setting made once applies everywhere, and the transform system sits above them.

The layering is the design. The transform presets decide the frame of reference, the pivot and the offset reference decide the origin and the units within that frame, and the snapping options decide what the points actually attach to. A curve drawn with the surface preset, the mesh face pivot, and the previous point offset is a curve that lies on a surface and continues smoothly from where you left off, and none of those three settings knows about the other two.

The grease tool carries the same framework over, with all the snapping and locking options available, plus a stroke resolution adjustable with the wheel or the keypad, and the same handle visibility toggle. The resolution control matters more there than in the curve tools, because a grease pencil stroke has a resolution of its own and a curve converted into a stroke has to pick one.

Editorial conclusion

blenderbezierutils fits a Blender artist who draws curves interactively rather than by placing a fixed number of points, and who needs the curve to sit on a surface or in an isometric grid while they draw it. It does not fit a workflow that drives Blender from a script, since the value here is the interactive handling. Verify first which Blender version you are on, because the add-on is tuned for 5.0 and the readme points earlier versions at a separate beta release, that the keyboard shortcuts do not collide with the ones you already use, since most of the operations are single keys, and that the offset reference is set the way you expect, because the same number means a different distance depending on whether it is measured from the pivot or from the previous point.

Frequently asked questions

What does the blenderbezierutils add-on do?

It provides three interactive tools for working with Bezier curves in Blender: Flexi Draw for drawing new curves by dragging their control points, Flexi Edit for editing existing ones, and Flexi Grease for drawing in the grease pencil draw mode with the curves converted into strokes. All three share the same snapping, locking, and transform options.

How do I install the Bezier Utilities add-on?

Download the archive from the releases page, open the Blender preferences, go to the add-ons tab, use the option to install an add-on from a file, select the archive, and then tick the option in the add-ons dialog. A new tab appears in the properties panel in object and edit modes, and the three tools appear on the toolshelf.

Which Blender versions does blenderbezierutils support?

The readme lists 4.2 LTS, 4.3 and later, and 5.0, and says that this version is optimised for Blender 5.0. If you hit problems on 4.2 or 4.3, the note points you to a separate beta release from the releases page.

What is the difference between the pivot point and the offset reference in blenderbezierutils?

The pivot point sets where the transformation axes are centred, and has options for the 3D cursor, the world origin, the active object, a custom start point, and the active object face. The offset reference is separate and sets what a typed number is measured from, either the pivot or the previous point drawn, so the same value can mean different distances.

Can blenderbezierutils draw mathematical functions?

Yes. Choosing the math function option in the shape type dropdown lets you enter an equation such as a sine of x or x squared, set a resolution and a range, and plot it. Both XY and parametric functions with the standard mathematical operations are supported, and the functions can be saved and loaded for reuse.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. README
  4. Releases
  5. Shriinivas/blenderbezierutils on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/shriinivas-blenderbezierutils.svg)](https://hysenlabs.com/projects/shriinivas-blenderbezierutils)

Was this useful?