My suggestion already submitted was Blender, but any of these ideas require a purpose. I don't think you truly learn an application or language (even human languages!) if you don't have something you're trying to do with it. Even music (it's a language), you can learn how to play something, how to put together notes and sounds, but you really start figuring out how to do things when you have a need to accomplish.
I would say 90% of my coding and application knowledge comes from decades of having a need or inspiration to do something, and having to find the right tool and learn how to use it to make my idea become something (even if it doesn't get finished). When that purpose or desire disappears (for whatever reason) I stop wanting or caring about learning more about the tool I was using to do it with.
Your initial request seems to point to a different style of learning, wanting to do it for the journey itself. That's cool, I just wonder if you had a reason for doing it, would it make the effort more fun and worthwhile.
I definitely look to see if the wheel is already invented, but I guess I started early enough when there wasn't a lot out there and had to make it work on my own. I totally enjoy having to hack together things and google answers (god, that's gotten a lot harder than it used it be), so that's also part of why I jump to DIY unless I find something that's perfect and already made.
A recent one where I stopped myself was automating backups. I was going to try to throw together something, but then ran across restic and Backrest and wow, it's so much better than what I could have done.