A perfect example would be Hexbear. Lemmy was a free software project. Hexbear needed some custom functionality and had different immediate priorities to the Lemmy project, so we took the code and made our own custom changes. Things like this happen frequently in the Free Software world. Another example is Chocolate Doom vs. Crispy Doom. The former has the deliberate goal of simulating the original DOS experience to the point of reproducing bugs, while the latter intends to add a lot of quality of life features. Both of which are actually indirect forks of the original GPL Doom source code release.
Most of the time, if you make some personal improvements to a piece of software, you can submit them to the original authors and have them included, but in many instances the changes might not be appropriate. Maybe it improves performance in once case while making it worse in another. Maybe it is not polished enough. Maybe it goes beyond the scope of the original project (adds a lot of complexity the original authors would rather not worry about). Maybe the original project is no longer maintained and there is no one to submit changes to in the first place. Could be any number of reasons.
A perfect example would be Hexbear. Lemmy was a free software project. Hexbear needed some custom functionality and had different immediate priorities to the Lemmy project, so we took the code and made our own custom changes. Things like this happen frequently in the Free Software world. Another example is Chocolate Doom vs. Crispy Doom. The former has the deliberate goal of simulating the original DOS experience to the point of reproducing bugs, while the latter intends to add a lot of quality of life features. Both of which are actually indirect forks of the original GPL Doom source code release.
Most of the time, if you make some personal improvements to a piece of software, you can submit them to the original authors and have them included, but in many instances the changes might not be appropriate. Maybe it improves performance in once case while making it worse in another. Maybe it is not polished enough. Maybe it goes beyond the scope of the original project (adds a lot of complexity the original authors would rather not worry about). Maybe the original project is no longer maintained and there is no one to submit changes to in the first place. Could be any number of reasons.