GSoC 2021: Curve Improvements: Feedback

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.

That’s my bad for rushing a commit. It’s a bug caused by a select threshold tuning that I worked on last. It should be fixed in the latest version which should be up in an hour or so. Thanks for the catch.

3 Likes

Unfortunately, I can’t give an approximation because it’s not entirely under my control. It would depend on the availability of reviewers, as well. My hope is that it would be merged at least within January but I could easily be way off (could be sooner or later).

1 Like

@dilithjay Thank you for compiling a new branch with the fix!

I can now manipulate point handles and brake them! So the first point was indeed fixed.

Regretfully I still can’t tweak curve segments.

===

My overall impression of the pen tool is very, very good. I can draw paths very fast and efficiently now. Its a gigantic step up compared to the old workflow. :+1:

Something that I feel is still missing is that I can’t convert a point with free/vector handles to aligned with just the pen tool. I can go from aligned to free by tweaking a handle and pressing shift but there is no equivalent for the reverse.

How I imagine this could work is that this functionality is triggered when you click drag a point (so your moving it) and press shift. This would snap the point back to its original position and give you an aligned handle to manipulate. Pretty much exactly what you get when adding a brand new point.

As far as functionality that is the only thing I feel that is really missing.

===

Something I ran into a few times is that the selection radius seems to be overly larg. Its so large it becomes problematic even on simple clean vector work with few points when you try to tweak them or even when you try to extrude the next point and you end up tweaking the handle of the previous point instead.

I’ve made a small recording showing how it is now and what I feel would be a much more practical range instead.

Thanks for your work so far. Its really amazing how fast and painless I can draw paths now. Its genuinely a joy to use. :slight_smile:

2 Likes

Thanks for taking the time to be thorough with the testing.

For some reason, I’m not able to reproduce it on my system. I just assumed the fix for the first issue somehow addressed the second one as well. If possible, would you mind sending a blend file in the state with the issue? I doubt the OS has anything to do with it but could you tell me what OS you use, just in case? Could you also check if you’re on the latest build? I added two builds since I posted the message here so maybe it was fixed on the second build which I’m testing on right now.

Right. That’s actually something that was added a while back (shift worked as a toggle between align and free) but was changed a few commits ago just to try out. The current version would most likely change. The feedback helps. :slight_smile:

That’s true. It’s using the Blender’s default select threshold but I agree that it’s too much for the tool. The initial bug was caused by my attempt at reducing the select threshold. I’ll be giving it another try soon. Thanks for the video, as well.

Really nice to hear you’ve enjoyed the tool so far! :slight_smile:

1 Like

To my shame I have to admit it seems it was user error. I have just tried it again (on an old and new file) and I can manipulate the curve segments just fine. I’ve tried it on a flat plane and with a 3d curve and both work perfectly. Ill keep an eye out for a special edge case but for now it seems most likely I simply was mistaken. (I have also verified I’m using the latest build). Sorry about causing confusion.

I am very happy to hear the functionality to go from free to aligned is planned. In my opinion its really the only functionality that is missing. :smiley:

Its also wonderful to hear you are planning to shrink the selection radius to something tighter. That would really be the icing on the cake!

I already can’t go back to the master branch for vector work. I am spoiled now. :sweat_smile:

2 Likes

Oh, no worries. Happens to me quite often, as well :slight_smile: .

Thanks, that would be great. It’s easy to miss simple edge cases when I get used to testing in a certain way.

Haha, glad you like it! :grinning_face_with_smiling_eyes:

1 Like

Hi @dilithjay, I also ran into a problem where it’s impossible to adjust the curvature of the segments. And I’m pretty sure it is caused if you enable the Curve Pen tool for the first time from tools menu instead of side panel. I’m talking about this menu that you get when pressing Shift-Spacebar in the 3d view:
tools
And once the Curve Pen tool gets bugged it usually stays this way until you restart Blender.

So the exact steps to reproduce the error:

  • Open Blender
  • Create a curve
  • Go into edit mode
  • Press shift-space or space
  • Pick Curve Pen tool from this menu

I hope it helps to pinpoint the problem.

1 Like

Thanks for the catch, @slowburn. I was able to reproduce it. I’ll look into it.

1 Like

Wow that is such a great find!

I can confirm the behavior on my end. Good to know I didn’t dream it up. :sweat_smile:

@dilithjay

After some more usage of the pen tool something I had noticed in the beginning has become quite apparent and frustrating.

When I read that shift and ctrl were added for addition and removal of points it felt quite superfluous. I am not strictly opposed to using those modifier keys but there has to be a good reason for overwriting their default functionality. In my opinion the current usage isn’t one.

The reason is two fold. First of I think its sufficient to have a single click add a point when hovering on a curve segment and delete a point if you single click on top of a point. If you shrink the selection radius as you have intended I think this will work perfectly fine. In fact, from working with other software that works this way, I know this solution is sound and practical.

The second reason is that it will no longer fight with the users muscle memory. Right now I am constantly adding or removing points by accident just because I’m trying to make selections. So not only am I missing out on functionality, I end up accidentally destroying my work as well.

There are ways around this because you can directly access selection modes through shortcuts (b for box and c for circle select for example) which will allow you to make selections of more then one point from within the pen tool. However this feels like something you have to constantly remind yourself of.

In the end I feel this not a worthy trade off and actively harming the pen tool. I hope you will considering “simplifying” this functionality and remove the need for the modifier keys.