GSoC 2021: Curve Improvements: Feedback

Thanks for the feedback and I understand your concern. It can be frustrating to get used to a somewhat different set of shortcuts when you’ve gotten used to one already.

The reason why the usual shortcuts work in most other software is that those tools hold much less functionality, at least out of all the other similar tools that I’ve found (please correct me if that’s not the case). In this case, having the usual shortcuts for one functionality would make it impossible to have the usual shortcut for another.

For example, if a single click was used for adding a point and a single click was used for deleting a point, then moving an existing vertex or its handles would need a new shortcut whereas, in most software I’ve seen, this operation uses left-click and drag.

Another issue with using the same shortcut for both delete and add is that you accidentally end up deleting the vertex. Like you mentioned, reducing the threshold would work much better, but there’s always a limit to how much it can be reduced. Some use cases require placing a vertex exactly on another vertex or at least very close. You could, of course, zoom in and add the vertex but I’ve come to learn that it’s not what users try first when the conflict happens. This is one of the reasons why I had to switch from using Ctrl click for both delete point and insert point to segment to shift click. The two easily conflicted.

I should also note that you could always change the shortcut of inserting a point from shift click to something like alt click which would bring back the multiple-select feature. This isn’t the default because alt is required for emulating the 3-button mouse. I understand that this doesn’t help the issue of shortcut unfamiliarity but it’s a workaround for the multiple-select issue.

Once again, I really appreciate the feedback but I feel like this compromise is necessary. I’ve tried to support as many feature requests into the tool as possible. Whether that’s a good idea is debatable. But I feel that, regardless, it’s not possible to satisfy everyone. Hope you understand.

Of course I understand. Life is full of compromise and designing such a tool is complex enough as it is. Its hard if not impossible to please everyone. The tool, as it currently stands, with the bug fixed and the selection radius decreased, would be an awesome, awesome addition to blender and greatly improving curve editing. I really hope it gets merged. So if anything you should feel proud.

In regards to these modifier keys being necessary because of the complexity of blender I can’t say I agree. Right now the pen tool in blender actually has less functionality than pen tools that I’ve worked with in 2d vector packages. I don’t want to sound like “make it like in package X” but I do feel its honest to say I’ve seen this work from experience (actual usage), flawlessly. So the problems you imagine are not as prevalent as you make them out to be. I really think this its a bit of theory versus actual practice.

However now it sounds like I’m arguing which is not something I wish to do. I respect your choice to stick to a different design.

If I may make one last suggestion that was inspired by you mentioning the shortcuts. If there was a toggle for the point add/remove functionality to be single modifier (i.e. like before where holding ctrl both added and deleted) I would also be perfectly happy.

I could remap it not to have it conflict with selection keys and it would solve the biggest issue I have right now: muscle memory and removal of selection methods.

This is not uncommon for blender, to have some options as part of the shortcut and it would create the opportunity to, with a bit of configuration from the user, set it up in such a way where it sits neatly in between my idea (no modifier keys) and your idea (two modifier keys separating add and delete)

==

So for clarity, the default behavior would be as it is now. However if you’d go into shortcuts you’d have an option (on the shortcut) to make a -single- shortcut actually perform both the adding and the deletion. That would be fantastic.

As you can see its not uncommon for shortcuts to offer options (extreme example):
image

Thanks for the kind words :slight_smile:

I think it was incorrect of me to say that the other pen tools held less functionality. What I meant to say was that the functionalities of the curve pen were distributed into multiple “sub-tools” in the case of other software (at least from what I saw). So the conflicts in shortcuts weren’t an issue.

Regardless, I really like your suggestion to use the tool options to fix the issue. Seems like it could give a lot more freedom for the user to customize the tool the way they prefer. I’ll be looking into it. Thanks!

Not at all. I appreciate the feedback. Can’t improve the tool without it. :slight_smile:

1 Like

@dilithjay could you please help me to find a latest build with the curve pen? I see a dec 5 on the builder site but I guess a newer would be better.
I follow your discourse on developer.blender.org with Hans, and I’d really like to test it and give feedback.
There’s no vector software I haven’t used (and critiqued :smiley: ) in my life and I work mostly with a screen tablet, so I hope I can give you something useful.

Cool, thanks! That would be really helpful.
Just triggered a build. It should be up in about an hour or two. I’ll edit this comment when it’s ready.
Edit: @kynu It’s ready.

I suppose you’ve already seen the discussion but just a heads up that the latest added functionality would likely undergo some changes.

1 Like

Yes, that’s exactly what I’d like to test, and weight in on the drag functionality.
That bit is crucial

Thanks for the build!

1 Like

Hi everyone,

With @3dioot 's idea, the latest changes should make it possible to customize the key bindings as required. The build is available at Blender Builds - blender.org as soc-2021-curves.

Once downloaded and opened, you could go to PropertiesKeymap tab → 3D ViewCurve3D View Tool: Edit Curve, Curve Pen to customize the functionalities by selecting what you need under the key bindings you prefer.

Here’s a brief description of what each property does:

  • The main functionalities are as follows:
    • Extrude Point: Add point connected to an existing point.
      • Extrude Internal: Allows extruding from the center. Disabled by default.
      • Close Spline: Close spline by clicking the endpoints consecutively. Disabled by default.
    • New Spline: Creates the first point of a new spline.
    • Delete Point: Delete existing point.
    • Insert Point: Insert point into a curve segment.
    • Move Segment: Move curve segment.
    • Select Point: Select existing points or handles.
      • The default point select behavior should work where there aren’t any conflicting functionalities (like Delete Point) assigned for the same key-binding. This option is for the purpose of assigning select behavior for non-default key bindings.
    • Move point: Move existing points or handles.
  • Extra: an additional functionality for handles.
    • This functionality can be one of the following:
      • Free-Align Toggle: Toggle between Free and Align handle types.
      • Move Adjacent Handle: Free handle of point adjacent to selected point and move it.
      • None: Disables the extra functionality.
    • It can be attached to one of Shift, Alt, or Ctrl and is triggered when pressed along with the main key binding.
    • For example:
      • Pressing Shift while moving a handle converts the handle to Free type and moves it if the extra functionality is set to Free-Align Toggle (default behavior).
      • Pressing Shift while moving a handle converts the closer handle of the adjacent point to Free type and moves it if the extra functionality is set to Move Adjacent Handle.
  • An option has also been provided to change the Select Distance (defaults to 0.4x Blender’s default).
  • By default, 3 tools are provided with the following functionalities enabled but feel free to change them as preferred:
    • Left Click: Extrude Point, Select Point, Move Point, Move Segment, Extra: Free-Align Toggle.
    • Ctrl + Click: Delete Point, Extra: None
    • Shift + Click: Insert Point, Extra: None

I’ve tried to override cases where two conflicting functionalities (e.g: Select Point and Delete Point) have the same shortcut, as much as possible, but there could still be combinations that I’ve missed, so I’d really appreciate it if anyone who’s trying the build could post here on any unexpected behaviors or bugs that were observed. Regardless, it’s best to try and avoid assigning conflicting functionalities, just to make sure that what happens is what’s expected.

It would be great to hear any other suggestions or improvements, as well.
Thanks and Merry Christmas everyone! :christmas_tree:

6 Likes

Just tested the build. And have to say this looks good.

few recommendations:

  • Close Spline: Close spline by clicking the endpoints consecutively. should be enabled by default but this could be just me and how I am used to working with vectors. I think I know why you decide to make it enable disabled situation but I think there is a better solution:
  1. a single click on a first point would close the path
  2. click and drag would it last path without closing it

L14rdMKkAU

if this is not possible (or too hard) adding a default shortcut would be a good idea (alt is free for example)

feature requests:
-it would be nice to have real-time preview on hover

3 Likes

ah found a bug :

  • createa close spline
  • click on lastclosed point (or keep it selected)
  • click to new place

what happend:

two points got extruded

what should happen:

new path first point should be created

pG7gkmMls5

I also asked this as I think it’s very important to have hovering icons with these kind of tools, especially closing a path without it it’s a work of guessing, but as I understood currently Blender doesn’t permit to have icons on runtime with any tool. I wonder though if, at least for closing a curve, having something similar to the snap system, that a circle appears when the cursor is close and the cursor goes there could be a solution.

1 Like

This does seem better. I’ll make it so. But I’m still somewhat siding with disabling it by default since it can get annoying when trying to select endpoints.

Unfortunately, as @slowk1d mentioned, it’s not something that Blender’s tools support. Same case with changing the cursor icon. I do think being able to change the cursor would be useful for many places of Blender, so I wouldn’t be surprised if it was implemented at some point. But it wouldn’t make sense (and would be difficult) for me to be the one to implement it since it’s more UI-related.

Thanks for the catch. I’ll post a new build on the weekend with the fix for this.

I would recommend keeping it turned on by default if you are not sure I would recommend making some small UX A/B testing.

I expected that live preview is technical problem so I get that. yeha icons would be nice . but at least tool should have pen tool icons.

few more feature requests;

  • allove me to move multiple selected points by clicking and draging on one of them
  • doblclcik on last point deletes last handel (make it shar on one side)
  • allwon me to delete one side of handle

I doubt we would have a big enough sample size to do a proper experiment. Either way, I don’t really have a strong opinion on this, so let’s turn it on by default and see if anyone finds it better the other way.

If you mean the cursor icon, it was originally the pen but I received some feedback early on that the pen was hard to work with. If you mean the icon on the toolbar, yeah that would change prior to release.

That’s a good idea. Will see what I can do.

Deleting handles is not allowed in Blender. What do you mean by “make it sharp on one side”?

in a Inkscape we done some dirty A/B testing by asking users on Facebook and twitter (not as good as real tests but much faster end easier to do ) not sure how blender projects del with this but I think they would be open to it. we did it a few times and Twitter usually gets us the most feedback. here is
result of one of this pools if you are intrested.Pasting on top of slected - Pools results (#65) · Issues · Inkscape / Inkscape UX · GitLab

yes that’s what I meant, I would make you icon for you but making icons in blender is pure madness :smiley: I am still baled that they are made in blender and not as a vector

you could probably fake that by making one side of the node position the same as a node … wich would probably not work coz than you could not select node … hmmm… same :smiley:

2DacmI79FW

one more idea but this is probably just my inexperience working in blender but I would expect that presing esc would deselect all nodes so I could start drawing new path (I know that standard for deselcting in blender is alt+a ) i just feel that his would be more natural but this is probably my bisef from illustrator and inskcape

1 Like

Really cool stuff! But I feel like this choice won’t be as controversial, nor do I think we’ll be able to collect as much data. Regardless, I’ve come around to the idea of setting it as on by default since it might be better to let the user at least try it first rather than me deciding for them.

Ah, I see. I think the UI team would handle that part so it’s fine :slight_smile:

Ah, got what you meant. Yeah, was thinking the same, so I tried it out. As you mentioned, it’s difficult to select or move points. It selects the handles instead.

I’m not against the idea but unfortunately, this too is one of the things that are outside my control, at least within the scope of this project.

but actually you could do another type of hack when you delete handle it would get converted to hack zou already using for straight lines. “deleted” handle would be converted to yellow handle
image

fair enough

Right. Just to be clear, it won’t be the same as deleting the handle (or moving the handle to the point), but I suppose it’ll get the job done for the most part. Also, for it to be a straight line, handles of both the adjacent points need to be vector type (yellow handles). I’ll add it to the next build. Maybe you could try it out and let me know what needs to change.

1 Like

right i knwo thats why i call it hacking . Ohere are probably som conseqnecies to this teqnique (points are not distributed evenly) but you use this trick anyway for strigth lines so i geuss thats not big diffrence. yop i could test it and see how if fells

1 Like


btw just made this test typo with new pen tool much better UX than stupid extrude rotate and grabb workflow :smiley:

6 Likes