GSoC 2016 - Improvements to Bezier Curves

A relatively low-hanging fruit that’s worth considering is this proposal here. In short, newly added points on a Bezier curve (in the 3D View and in the Graph Editor) change the shape of the curve. Ideally, the handles of the curve would be adjusted to maintain the current shape. This is particularly helpful in the Graph Editor, where even a small change to the curve can have a significant impact on timing in an animation.

Hey everyone,

sorry for the silence, but things have been pretty messy on this end (you know, with college and stuff :wink: ).

One thing my mentor has repeatedly asked me to do is to find artists who would collaborate directly with me (for testing and feedback). Anyone interested?

Isn’t that the same thing pildanovak was suggesting?

Count me in! :slight_smile:

+1 to @cdog, we NEED a good “extrude along path”.

Genio84 has just committed an improvement to the curve extrusion code.

Thinking about the extrusion topic, I wonder if it would also be possible for Blender to have branching curves so as to be able to extrude a profile into a grid, a wireframe, a system of paths, ect… I can see a good utility for that if your scene requires any element involving architecture for instance.

What application currently uses curves this way? I use Illustrator professionally, and have for years, but I’ve never seen an application of this in curves. It sounds as if it woudl be akin to the Nurbs surfaces at that point, and definitely sounds more like a polygon behavior. I ask becasue if it is already possible in some other soft, then examples might explain this much better.

It wouldn’t be like a nurbs surface because you wouldn’t have any actual surfaces (just paths acting as wires).

I think something similar to this may have been added to 3DS Max many years ago (extruding along grids and the like), though I don’t know if the video is still around.

An idea: I often try to use curves to make trees, using plugins to generate the many branches. Currently, however, curves can’t have forks or branches, there have to be two separate curves. I wonder if it would be worth making curves support branches? Would anyone else find this useful?

(I use the word “try” to create trees because I always get frustrated when I try to UV, and with the general messiness of the resulting mesh when converted)

Hasn’t this workflow been largely supplanted by using meshes with the Solidify modifier?

Actually Skin modifier… but yes, though it is a nice idea, I don’t know how you will get around the math and the ‘direction’ of the curve with branches from control points.

Just to be sure we understand - even if you delete the faces only from a default cube and convert to curve with Alt-C, select all and convert to Bezier… you will find you have actually got disconnected curves, not one whole spline. You will have duplicated control points in the same position to create the shape, and this works fine.

For UV on resulting mesh, select the faces of the branch and use Follow Active after unwrap to get them to flow in one direction, and then rotate the correct X or Y direction in the layout.

Gah… posting before coffee. Never smart. Skin modifier, indeed. Sorry about that.

Haha that’s why I asked if anyone else would find it useful. Curves can do a few things meshes can’t, after all.

The skin modifier is kind of garbage for trees in its current iteration. Branching is often completely broken with flipped normals/branching directions that can only be fixed manually after applying the modifier. It’s using a pretty old version of the paper on which its based; a lot of work has been done in the area to improve stability (SpeedTree uses a more updated version, for instance) but the one attempt to update the code in Blender fizzled out and it’s pretty much just been a dead area of code since then.

I think a major reason why it fizzled out was not because of the state of the code itself, but the fact that the Blender community couldn’t come to a conclusion as to what it should do and what it should be capable of (a few users were debating as to whether the new algorithm was actually better than the old one in several cases). I think by then, the developer may have thought it would be better to just leave it untouched :rolleyes:

Meanwhile, the improved curve extrusion may soon be in Master as the code is up for review.

I tested the branch. I think it is a pity to merge such limited feature as in the branch.
It stops to work at the moment you add bevel depth to curve.

I seriously doubt that Dingto will accept this kind of UI.

I already explained that ability to have negative values for extrude setting would not have mess-up panel UI.

I know it is not a major feature. Solidify modifier already do the job.
We can convert result to mesh to have a bevel effect.
But if the goal is to add feature to geometry panel of curve to avoïd conversion.
It would be good to make it a real improvement with a bevel taken into consideration by extrude.

Extruded 2D curves with bevel gives cool results with a fill mode set as none.
Don’t you think it is a pity to exclude this kind of thing of an unsymmetrical extrude ?


I don’t know what happened, but you have an older version of the code. I have already fixed the non-zero bevel behavior. Ace Dragon even added a link to the Differential Revision containing the most recent version. I went to check the repository and the correct code is in there, so perhaps you’d like to test the branch again, and see if it is working correctly?

I wanted to be able to allow the user to input a negative bevel value, but it was taking way too long to find the code which set the limits, and so I decided to go with that workaround. We’ll see how it goes.

I probably confused myself building and testing master at same time.

I wanted to be able to allow the user to input a negative bevel value, but it was taking way too long to find the code which set the limits, and so I decided to go with that workaround. We’ll see how it goes.


Maybe it is more clear with an image. Unchecking extrude symmetrically option will only concern extrusion.
With a fill mode set to Both; caps on both sides will be affected by bevel.
If the goal is to help 3D printing; IMO, it will be more interesting to obtain a shape as shown on the image.
One side affected by extrude and bevel parameters and the other one completely flat to start printing on this side.

I don’t really see the use case of an extrusion only on one side and bevel on both.
Maybe other users have a need for this.
But if it is the case, it would be good that they express their opinion.

Something is going on in here. When I quote you, I can see that there are some thumbnails for images. However I can’t see them. I already tested this in another browser. Is it just my computer, or are those images really broken?

Maybe you could use some external service to link the images. Some things you say make little sense without them.