I have started learning Rust. I have only made a fibonaci series program so far but I would make more complex program as I progress in learning Rust :D
I had a pretty good time rewriting various coreutils in Rust. I liked it because the difficulty of doing so ranges from something as easy as the true command, where you simply exit with a success status, to more challenging stuff like writing a basic shell.
Granted, it's not that complicated to write CLIs with simple inputs and outputs, so maybe it's not valuable for others but it certainly helped me understand Rust better than before.
There is a market for a game engine that uses algebraic variables and geometry to guarantee purely accurate collision detection. That said, a bit of searching shows that it's going to be much slower then current approximate approaches.
My first non-trivial program in Rust was a Markov chain. Right now I'm trying to build a REST API with Actix and a Mongo database. So far it has been an interesting experience.
When I'm curious about a language, I usually first build some implementation of a perceptron or basic neural network, as well as a (usually very bad) text editor.
I feel like once I have those behind me, I've got some fundamentals and can dive deeper into what makes the specific language actually special :)
When I learn a new language, I like to implement the Sieve of Erastothenes (which is a simple algorithm for finding prime numbers), and I had done so with Rust. Two years or so later, I looked back at that code and thought, damn, that looks like a Java dev wrote it.
Then I realized the most idiomatic way of implementing that would be an iterator. This was actually an interesting challenge, because typically Sieve of Erastothenes uses an upper bound, which I didn't want to have.
But yeah, it was also just wild to me, how much different the iterator code looked (and in many ways, how much better it was). It was just really cool to see, how much I had progressed in those two years.