GSoC 2021: Curve Improvements: Feedback

Sorry if I’ve missed it being mentioned but will this allow for bevelling curve points (like this)?

Yes, the curve fillet node would work similarly :slight_smile: . However, as a start (and possibly, for the summer), I would be focusing on producing a circular arc (the handle moving part in the video). Once that’s ready, I’ll be looking into making the superellipse like shape (the Numpad +/- part in the video; Not sure if it’ll be exactly the same but something similar :slight_smile: ).

3 Likes

That’s great to hear! I often want to quickly bevel a few curve points and being able to do it directly from edit mode is awesome :smiley:

1 Like

Sorry if it’s a bit too late to change this, and I don’t know if this is possible to have with Blender’s
keymap, but I have a few suggestions for the keybinds so they are more like vector drawing software.

Ctrl + Click selects a point.
The Delete key deletes selected points.
Clicking on a point other than the end point, or the start point deletes it.
Clicking anywhere along the path creates a new point.
Clicking the start point closes the path.

(Usually Shift + clicking would create a new path, and Alt + clicking would edit the points symmetrically, but I know the latter wouldn’t fit Blender’s keymap)

Anyhow, I think the work you’ve done so far is amazing, and I’m very happy to be able to have it in Blender soon!

I wouldn’t say it’s too late but the current key binds were decided after a fair bit of discussion and since it was agreed upon, it wouldn’t make much sense to change it. Not unless the majority prefers what you mentioned. Besides, I think some of these would conflict with other functionalities of the same tool like the ability to click and drag to move a point. I do feel that the current key binds are fairly intuitive (I might be biased, of course :slight_smile: ) so hopefully it wouldn’t be too difficult to get used to it.

Either way, thanks for the comment and the kind words! Glad you like it :slight_smile:

2 Likes

Amazing…

Is snapping supported?

Knot sliding (like mesh vertex slide - gg shortcut) with snap would be really useful.

Great enhancement for curve editing. Thank you.

3 Likes

Thank you!

Not at the moment, unfortunately. Might be a good improvement to make to the tool at some point.

Right. I doubt I’ll have time after within the GSoC period but might be something to look into afterwards.
Thanks for the comment!

3 Likes

Hi Dilith,
I am so happy that you tackle this topic :slight_smile:
wonderful to see the Curves getting some love in Blender !

I totally agree with wilBr, that a major thing missing for curves is snapping!
-and in addition, making the shrinkwrap Modifier also accept Curves as targets!

I cannot stress enough how important that actually is, to make the Curves inside Blender an
actual usefull tool for the future !!!

Hi Jimmy. Thanks!

I see. There was a suggestion to implement snapping onto the curve edges instead of just the vertices, earlier in the thread but that improvement didn’t really fit into the tool. I do feel that the existing snapping implementation for curves should be included in this tool at some point (which I’m assuming is what @wilBr suggested).

I haven’t used the Shrinkwrap modifier but the Blender (2.93) manual says that it works for curves. Is that what you had in mind?

I think @jimmy.b meant that the shrinkwrap modifier should work when the target is a curve. The equivalent task for geometry nodes is this:T88630: Support curve component in attribute proximity and attribute transfer nodes

Snapping to curve wire edges should probably be implemented generally for the transform operator, not just for this tool. Ideally that could also be implemented with CurveEval after this patch is committed.

2 Likes

@dilithjay
Hi. I am having a crash when starting a drawing curve after deleting all points.
There is a problem in drawing a curve near another curve

Hi, thanks for finding the crash. It should be fixed in the new experimental build.

As for the drawing near a curve issue, it is the expected behavior since there’s no way of differentiating between the segment altering functionality and the curve extruding functionality (which, admittedly, isn’t great).
As a work around, if you only click near a curve (instead of click and drag), the curve would extrude to that point after which you could change the handles separately. This too should be available in the new build (wasn’t there in the previous build).
Note: Clicking near a handle adds a control point with Vector handles (according to the above functionality). If you wish to have a control point with Align typed handles, the easiest way would be to Ctrl + Right Click at the location instead of left clicking.

Hi @dilithjay, I tried the new build, first of all thanks again for making this!
Two things I wanted to point out:
1- At first there was a suggestion to have different pointer icons depending on the context/functionality. While I totally understand there was no time to implement this (also because it would have meant to create new icons, which is not part of your work), I think that closing the curve is the only one that really needs an icon when hovering on a vertex to close it, otherwise I find the process a little too much “guessing”. A suggestion could be to use the same icon of snapping, which makes also some sense.

2- Considering the tool is part of edit mode, and you need to create an object curve first, I think it would be very helpful to have a “Blank” curve object, like with Grease Pencil. I think it would be extremely beneficial, as I imagine hundreds of scenarios where you create a curve object, you delete the original curve, and then you start to use the curve edit tool to create the one you want.

Hi @slowk1d. No problem! Thanks for trying it out.

  1. I looked into it. Unfortunately, it turns out switching tool pointers at runtime isn’t currently possible (or at least isn’t currently done, from what I understood) within Blender. I agree that the tool could really use the feature but, at least for now, we’ll have to go with the single pointer icon.

  2. Right. I agree that an empty curve object would be quite helpful. However, I don’t think it would fit in as a part of the tool since it would involve the object mode, as well. It’s worth looking into, though. Don’t want to make any promises but I’ll at least look into it after the GSoC project is complete.

2 Likes

This looks awesome and is something I and many others would greatly appreciate having in Blender. GSOC is over now, last post here being from august 19th and this project has been mentioned in the GSOC roundup: GSoC Roundup Episode Three: Ahead of the Curve, On the Cutting Edge — Blender Developers Blog

Are any active steps being taken to get this merged into blender or is this work doomed to fizzle out and never reach the hands of Blender users? I am doing vector work in Blender right now and its quite painful to know this has existed for months now and was never merged.

1 Like

Hi @3dioot. My apologies for the lack of updates but no the development hadn’t stopped. I’ve been a bit busy with college work the past month or so, so the development has been a bit slow. I finally have more time on my hands so it should speed up a bit :slight_smile: . You could see the progress on the revision here (⚙ D12155 Curves: Curve Pen). Hopefully, it won’t be too long but I’m not able to give an exact date yet.

11 Likes

Thank you for the update. Glad to read you are still working on getting this finished and merged.

I’ve checked for recent builds of this branch and the last one was from October. If you want feedback or users troubleshooting your branch a more recent build might be beneficial. :+1:

1 Like

Right. Thanks a lot for the reminder. Just created an experimental build with the latest changes of the branch (soc-2021-curves).

A small note on a somewhat significant change: The default key binding for making a cut on a segment was changed from Ctrl + Left Click to Shift + Left Click. This is because having the same shortcut for both making a cut and deleting a vertex made it difficult to make cuts near existing points. But these shortcuts should now be changeable from the preferences.

2 Likes

hello. when approximately will you be able to combine your work with the master? I’m looking forward to this tool

Hi @dilithjay! Thanks for providing an up to date branch for testing so quickly. I gave it a good spin today. Its a great improvement over the current extrude workflow. Yet there are a few places where it falls short of being the fully fledged Pen tool I’ve always dreamt of.

I am not certain wether they are bugs or just the pen tool being unfinished. I’ve based my findings on the latest build 2021-12-04 16:34 soc-2021-curves.

========

Presumed a bug: I can’t edit the handles of a selected point.

Steps to reproduce:
a) draw a curve with several segments with the pen tool
b) deselect all points (which puts the pen tool in tweak mode so to speak)
c) hover over a point, click to select it so the curve handles appear
d) hover over a curve handle, click and drag
e) a new point is drawn, connected to the point that was last selected forming a loop

Expected behaviour:
f) handles are manipulated properly. Once the left mb is pressed down shift can be added to break the handle that is currently being manipulated

Presumed a bug: I can’t edit the curvature of a segment.

Steps to reproduce:
a) draw a curve with several segments with the pen tool
b) deselect all points (which puts the pen tool in tweak mode so to speak)
c) hover over a curve segment, click and drag
d) a new point is drawn (unconnected)

Expected behaviour:
d) the curve segment is adjusted in accordance with the movement

I have some more findings but I could live with those. The first point here is -really- important though. The ability to edit points completely, including the direct manipulation -and- breaking of handles, from within the pen tool is essential.