GSoC 2019: Undo Improvements

That’s soooo sad :disappointed_relieved:
Thank you for trying!

you can still do it as a personal project and gain experience nevertheless.

4 Likes

Good on you and thanks for trying, and good luck on your endeavours. I hope we can still get undo improvements without you, for that’s a critical aspect of Blender…

3 Likes

Super unfortunate! Such an important feature, and such a sad state of affairs currently.

2 Likes

I also really hope, that this will be tackled in the near future.

I know that there is so much stuff to do for the dev’s and I can only say,
that I am amazed how well and passionate they are doing their jobs.
I’m really grateful for 2.8 and are more excited about the future in my job than ever! I use 2.8 since alpha almost every day for 6-8 hours, and I never had this much fun at work. (Yeah I know, having fun at work is not everything, but it should have a high priority)

Especially the viewport makes me so happy, if I have already to stare the whole day at my display, I want to see nice looking colorful objects, not gray ugly shaded shapes with green ugly wireframe :stuck_out_tongue_winking_eye:

I’m 100% sure blender will compete really strong against other dcc’s in the next 2-3 years, I also heard from some guy at FMX, that his colleagues are exited about 2.8 (who not). I think the guy was from ILM.

Making undo faster will give all people a great benefit for fast iteration, especially for users with huge scene sets in feature film productions.

I wish the dev’s the best luck and fun while implementing a new system for undo! Hopefully soon :slight_smile:

(but for now, “undo history” saves my day in big scenes)

2 Likes

Same opinion as @DanielPaul… I am sculpting a lot in the recent time and undo can take some time when you have to wait for every stroke undo…

Would be great to have an improvement there but i am also excited for the other news features but first 2.8 stable.

2 Likes

they probably thought that the undo system was too delicate to be entrusted to an external student who does not know in depth the core features and mechanics of blender …
with these premises I can understand the decisions of the main developers

3 Likes

I really, really… REALLY hope someone can look into Undo sooner than later. Honestly I feel like it’s a pretty big issue currently, that gets ignored :frowning:.

We use Blender now at work, on a AAA FPS, making weapons consisting of hundreds of parts sometimes / 10-30+ million polys in total. Overall the viewport performance/rendering/UVing/etc is good/great/fine. But… Undo is my #1 issue currently, out of anything else, and others on my team would probably agree, besides maybe UV improvements.

I can very consistently hit an issue where every undo action I make/perform, can take 5/10/20 seconds per Undo. Doesn’t matter what version of Blender, all the way from 2.8 release, until now. It’s something to do with core Undo data structures/performance, especially when toggling in/out of Edit Mode and then trying to Undo.

Object level undo is OK… or definitely better than 2.8 release, although still slower than alot of other DCCs. But the Edit/Object level stuff just gets extremely frustrating/annoying/wastes time, to where I honestly almost want to go back to some other industry standard DCC programs…

There is an Undo Task, but the person assigned to it, just removed themselves, which is not encouraging… So basically it’s not assigned to anyone now I don’t think / is not any sort of priority, which is very sad to see. I know Geometry nodes/other things are “fancy” or exciting, but I honestly am not too excited about that, when the most basic thing like Undo, is still super slow/bugged. :frowning: Something that basically EVERY user would encounter/deal with…

I know some devs have basically said to “change how you work” or “don’t do that”, when it comes to certain actions being performed, but that feels bad/is not what artists want to hear either.
Also again, doing the same work/task in basically any other popular DCC will not have the same issues.

So it just makes it harder to want to stay in blender when we are hitting that kind of major perf/time hit, with every undo action… Especially if you are trying to work quickly or experiment, and then constantly are hitting 10 second delays with every “mistake”.

13 Likes

100% agreed. Also, when in Material shading(using Eevee), it’s even worse.
I think this will seriously hurt further adoption on the professional end of the user base, if not fixed soon. If not already, it needs to be a major focus of 3.0.

10 Likes

Yeah, materials can be rough as well. I think it’s just that undo triggers an entire scene reload, from what I’ve heard? Which would make sense if that’s the case…

I can be editing a 100 vert mesh/lowpoly, but since my scene has 300 objects , consisting of 10-20 million faces, if I edit the mesh/toggle in and out of edit mode, then Undo, it can stall for like 5/10+ seconds.

I know there are hacks to “get around it”, by moving objects into collections/hiding them. But that’s not always ideal/ or I need to see my highpoly geo as I do the lowpoly.

2 Likes

Totally true. It baffles me how new features get added so frequently to extend Blender on all ends, and that the rotten Undo core gets basically neglected. Ignored even. It will hurt the advance of Blender into professional pipelines very certainly. Which is sad. As much as I love Blender and am very thankful for the immense work of the devs and add-on contributors, who make it a breathtaking power house (esp. Machine Tools :D), I think the attitude of adding new shiny features for compensating severe flaws on the most basic level is questionable and hard to understand. I feel like Blender has always been about efficiency, but since the introduction of 2.8 and onward, they seem to follow the same approach as many others: Get up to par on features, no matter what is left behind. Other apps can afford this (sadly), as they are already integrated into professional pipelines. Blender, unfortunately, is not, at least still not a lot, which is a shame, as I think it’s what the devs are aiming for and would well deserve, but for some reason, they simply neglect this one simple fact: Undo is broken. Bro-Ken. Bros! It needs to be fixed and out of the way, needs to work as it is supposed to. It does not. I would basically treat any other new features which I can already do much better in other apps, like advances in sculpting etc. for having a proper undo in my main production tool. I mean, it is even rendering all those new improvements pointless to some degree, cause yeah, much better sculpting , much more on par with zbrush, but, well, except it is NOT, because there is not even a usable undo when working with high poly data. How are you supposed to work like this in production, or even for personal pieces. I mean, it affects basic polygonal modeling as well, its not that only nieche use cases would be affected by the state of Undo. Hasseling through it, cause I love Blender deeply, but this will keep on breaking its neck, and those of its loyal user base.

9 Likes

Yeah, like I said, I really appreciate the improvements to the viewport/cycles/etc. But yeah, the most basic functionality of Undo really has to get resolved. Especially moving into Blender 3 I think…

We just got a 2022 version of a certain software at work, and I will be looking into that /testing… I don’t want to move out of blender, but this undo really really kills me sometimes. I probably will still be in blender/deal with it, but definitely makes you want to pull your hair out, ha.

Our concept artists are using Blender now, but I need to ask them if they run into Undo lag often as well. I know some guys throw together some bigger scenes/larger envs, with tons of geo/detail.
I wonder how that Ian Hubert manages, or maybe he doesn’t work with SubD much, or has to constantly hide collections to make it useable… not sure…

I don’t think you’re following Blender’s development if you think this is how they feel. Undo was recently overhauled and it took an immense amount of under-the-hood work. This involved changing the way Blender’s resources are tracked, which affected saving and loading… basically, the undo system is so deeply embedded that it is as much or more work than shiny new features. The goal of making it snappy and fast is ongoing, but the goal of reaching 2.79 speed is mostly met. This kind of work is always underappreciated because all we see is the results. We don’t see the immense amount of refactoring that went into it, nor the creative and clever solutions to difficult problems. The 2.8 series includes and included a lot of this sort of work… rewriting the viewport/overlay code, isolating and abstracting GL calls so that we can swap them with Vulkan (an ongoing effort), rewriting the depsgraph, and probably much more I am forgetting. Point is: it’s not a very fair criticism to make. The Blender developers are 100% willing to tear out all the old plumbing and replace whatever’s broken. But this kind of work takes time. It’s unglamorous. People don’t notice it until it’s released, and it isn’t released until it’s 100% perfect, because it breaks things.

And on that note, I will say that I prefer a slow undo that doesn’t break or fail to a fast undo that doesn’t always work. The way a certain other very popular software handles undo is with scripts that reverse the actions by doing them backwards… it often fails, and sometimes it even results in a borked file that is worse off than before. Safe undo is, IMO, worth the wait. But hopefully it’ll continue to improve as the Library Override project finishes up. I think it’s blocking any further changes to undo, since it touches on the same parts of the codebase. The diffing code for datablocks should be useful for speeding up changes.

15 Likes

I think there are some valid points on both sides.

I do think however that we need to look at appreciation differently for these sort of things. New features can get a lot of short term hype vs under the hood changes which can give you a dedicated long term professional user base. Both are valid and important.

To simplify things, most people have some experience with other comparable packages so that’s what they’re going to compare it to.

Being vocal about issues rather than praising things that work well is just how most people work, no need to take these things personally as a developer.

1 Like

I’m not a developer, I only have a few small patches in a different area. Do not mistake my comment as taking anything personally. I simply dislike it when people complain about stuff. I like it even less when people mischaracterize others. “Get up to par on features, no matter what is left behind” and “they simply neglect this one simple fact: Undo is broken.” – this is just not true. There’s room for constructive criticism without saying things like this. They pinned it as a high-priority target more than a year ago. Maybe that’s because it takes years’ worth of work!

My second paragraph addressed this point. I don’t know about several of them, but the one I have production experience with is much faster… and it’s broken. I think Blender will eventually work and work quickly. For now, I’m just happy that I can depend on it.

5 Likes

I never said you were. It was meant in a general sense as I can see complaints having an impact on morale and motivation. Same with praise.

I’m not sure which other software you’re referring to. Maya’s undo is faster for some basic operations as is Houdinis. It’s not criticism on my end, it’s just the current state of things. Speed will be an important factor for most people working in high pressure production environments.

That being said, it’s obvious that most issues are clear to the developers and I’m sure there’s a plan of some sorts of how and when to address these issues. From my end I don’t really see the point of pushing for a feature or a fix - I can either live with it or I need to use something else.

I can also agree on both sides. Like I said, i very much appreciate all the work the devs do, and I know that undo is probably a massive task. But like I said, I was disappointed that it’s not even assigned to anyone now, and it’s just floating in the void currently.

Like dan2 said, new features will attract new users potentially/industry people. But when you are working on REAL AAA projects/content, and hitting 20 second undo lag with every action, as your scene gets more complex, it’s very mentally draining. Especially if you’re trying to work quickly but constantly hitting that. Like I said, you CAN hide things in collections/etc, but that’s not always ideal/possible, depending on your work/what you need to see, to get the job done. I feel like a chunk of users don’t see this lag, because they are modeling a simple box/not doing subD work/more complicated scenes. If you are just doing some box cutter/quad chamfer thing, you might not really notice it.

My concern is that Undo is a fundamental function/something that every user will use. So feels to me like it would be a higher priority , when it’s not. Or at least that I can tell/have seen. Especially since they have like LTS/want more stable builds/pipelines.

If the undo system hadn’t gotten improved 1-2 years ago, when they had fixed up some things, It may have been the sole reason to make me go back to 3DS Max. But it’s still almost causing me to go back yet, with the lag I still experience. It really does make me want to pull my hair out quite often.

3 Likes

One thing I do in my own frameworks (which tend to be loosely based on Blender’s design) was to move undo inside of operators. There is a hierarchy of undo handlers operators can call on and they can also provide their own.

I find this works pretty well. It’s actually pretty rare that I have to use the global undo handler (which just saves the whole application state).

My own preference is that users be blunt about this stuff.

The main bug I run into/issue I hit is, if my scene is more complex with many objects/dense geo. Then If I edit even a box / 100 vert mesh, then toggle into object mode, then hit Undo, it stalls out. Something with toggling in/out of edit mode, causes a full scene undo/reload it seems like…

If I undo in Edit mode only/object mode only, its OK… or not tooo bad…

3 Likes