GSoC 2021: Knife Tool Improvements: Feedback

Hello everyone,
My name is Cian and I am going to be spending this summer working on the various knife tool improvements outlined in my project proposal.

I’m creating this thread to receive any and all feedback you may have about my project so please let me know what you think. If you would like to keep up to date with the progress of the project I will be posting weekly reports letting you know what I have finished each week and intend to work on for the coming week.

I look forward to hearing what you all have to say!

21 Likes

Is it related?


I’m confused where to watching the thread.

1 Like

Hi @APEC , you are at correct place at the moment. Follow this thread which @HobbesOS has created because he will be spending summer on tool improvements.

3 Likes

Hey @APEC as @PratikPB2125 said this is now the official place to provide feedback on the knife tool improvements project. I have followed the thread you linked closely for the last while and had already considered many of the ideas put forward for this proposal, such as multi-object edit mode and orientation snapping for example. Others I would consider slightly out of scope considering the time frame of this project, but things such as your concern about RMB deleting the entire cut will definitely be considered so make sure to check back here as well as the weekly reports thread for updates.

Lastly, in regards to undo capabilities of the tool (as discussed in that other thread also) I am still finalising the plan for how this will work with my mentor and will keep everyone updated.

6 Likes

I just want to say that I’m very excited for all the planned updates, and it all sounds really good!

I’ve been really annoyed with the current limitations when it comes to angle snapping/multi object cutting/cant undo while cutting, and also can’t cut in Object Space. But you mentioned all those things, so that’s awesome :smiley:

I wonder it’s if possible to add something like, Multi-Slice, where you draw a line, then scroll the mouse wheel and it does an array of cuts, so you can slice 4 lines at once? Or even array/stack 4 lines, hold space bar or something to pan/move the cuts around/ or even be able to rotate them, and then slice through. But that’s maybe getting too complicated/out of scope for this task.

1 Like

Oh did you mention object space ? That would be nice. The workaround is to align the view to the model, but it could be more straightforward. I welcome any improvement and if you could solve that glitch that cuts an infinite horizontal line sometimes, would be awesome. I haven’t been able to nail down when it happens, which is why I never reported it. I’ll try to find a reproducible case.

Best wishes on your gsoc !

2 Likes

I’m glad to hear you’re excited!

About the multiline cutting idea, I think this would represent a large and complex change in the functionality of the knife tool and for now is probably far out of scope.

1 Like

In terms of object space, the project will implement the ability to snap the current cutting line along the global x, y or z direction (so yes you won’t have to align the view). It will also be possible to snap to the objects local x, y or z direction if it is rotated in some way. However, angle snapping will still be done in screen space meaning you will still need to align the view for it.

Lastly, in regards to the infinite line glitch I don’t know if I have had that happen to me before so it could certainly be hard to pinpoint. If you do manage to make it reproducible please submit a report on https://developer.blender.org/ and perhaps share it here.

1 Like

Oh alright, I’m still a taker ! I have some questions…

  1. Is the cutting angle relative to the last cut, or is it absolute ?
  2. if the user chooses to snap the cutting line to the X axis, and they activate angle snapping on top of that, will angle snapping take over completely ?
  3. and lastly would it make sense to let the user choose from the builtin or user-defined orientations for axis snapping instead of limiting them to global and local ? that would be a plus for controlling exactly the slope of a cut, although I guess this can be achieved by knife project too, so maybe a bit overkill for a tool that’s supposed to be quick to use. Anyway just food for thought

I’ll make sure to report when I do nail it down, but it’s been really hard to understand when it happens exactly…

Cheers !

1 Like

Thanks for all your feedback! In response to your questions:

  1. Currently it is absolute and so I am leaving it that way for the time being, this may end up being reconsidered though after I work on it further this week.
  2. I’m considering orientation snapping and angle snapping to be mutually exclusive meaning you cannot have both active at the same time as I don’t believe it would make sense for this to be possible.
  3. The intention is to have orientation snapping work just the same as it does with other tools like scale, transform etc meaning it should support user defined orientations. I will probably first implement global and local then take a look into user defined.

One of the biggest problems with the knife tool in my experience, at present, is the inaccuracy of the projection onto the model causing duplicated points very close to the intended point. I believe this is caused by the imprecision of the depth buffer. Ever since I learned about the J shortcut to cut a line between selected vertices, I have stopped using the knife tool. I recall this issue pertains to snapping cut points to existing vertices, but it has been a few years since I even bothered using the knife tool, so I’m sorry I can’t elaborate further. Perhaps others who experience this issue can chime in with additional details.

I do now know if this is within the scope of your project, but I am bringing it up at least as a consideration to make sure that work you do this summer isn’t wasted by some required future architectural change to the knife tool to eventually fix this. Maybe if certain features you plan to work on would conflict with eventual work to fix this vertex imprecision issue, that changes your feature prioritization.

2 Likes

Are you able to reliably reproduce this issue? If so can you create a ticket on https://developer.blender.org/ about it and I will start taking a look as soon as possible.

I will try to reproduce it and post a bug, if a bug doesn’t already exist. I had assumed there is most likely a bug for bit, but one minute of googling didn’t turn anything up except this post that goes into a little more detail. Essentially, as I understand it, the problem is that the knife tool operates in screen space rather than analytically calculating the geometric solution to problems like projection from the viewport to the model. I’ll see if I can find some additional details or reliably reproduce it.

2 Likes

Glad to see this project! The knife tool could use some improvements.

One that would be great: enabling grid (increment) snapping. I often want to cut through an object with a horizontal or vertical line, at a given X,Y or Z position. Now cutting horizontally or vertically is already possible (C-key). But I can’t set the coordinate of where the cut begins, it doesn’t snap to the grid.

2 Likes

Thanks for the suggestion, I’m currently working on orientation and angle snapping and will run this idea by my mentor. Depending on the complexity I may be able to try adding this soon, but I don’t want to promsie anything just yet.

It’s great to see this news. I think the knife tool urgently needs vertical cutting (90 °)

1 Like

Well done, is really good to see some new features added to the knife tool.

Personally, I don’t use snapping workflows as of now. But I have another few ideas.

One is to think of holding down the mouse and allowing you to draw free form lines.
Screenshot (70)

Another is to think of displaying a grid shape as a cutter. Currently this is done with knife project. But imagine how troublesome (create grid mesh / delete faces / select this + object / edit mode / knife project). When in knife mode, just activate the grid cutter and you are done. (I suspect that since feature relies on preview - it might need some BGL drawing first and then commit the cut).
Screenshot (71)

However these ideas are entirely different from your own project scope. Not to mess with your schedule or anything, but if some time in the future you feel like going for it, they might be really good things to try.

Thanks. :slight_smile:

3 Likes

Glad to hear you like the project!

Hey thanks so much for the feedback. For now I do think those ideas are out of scope for this project but way down the line someone may find them worthy of implementing.

1 Like

I have seen the changes that you have already implemented. This is becoming a very powerful tool for modeling!

In the other thread I had made a request for the possibility of Knife tool to work if there are only edges and no faces, creating edges between edges. Is this still in the project plans?