My wheel has an extra degree of freedom and is more of a ball joint really, and also has fittings for when I later want to attach a jet engine. Don't judge; it seemed like a good idea at the time :)
Seriously though, there can be good reasons for reinventing the wheel. It can be a learning experience, or you may need some feature that doesn't exist and makes it faster to reimplement from scratch than add to an existing library. If you're writing code as a hobby, then write what interests you. If you're doing a job for money, then other considerations become more important.