Spent the last two weekends building a little graphical calculator on an STM32 dev board, and it's finally doing what I wanted. It plots functions on a color LCD, and last night I got a 3D wireframe surface rendering on it, like z = sin(x)*cos(y) type stuff. Watching it draw in real time never gets old.
The biggest headache was the display driver. Turns out I was writing to the wrong region of the framebuffer for weeks, which is why half my plots looked mirrored. Once I fixed the addressing, everything else sort of fell into place. I also added a microSD card so I can save graphs and reload them later, which was way easier than I expected since the board has the slot built in.
Drawing wireframes was its own puzzle though. I wrote a simple line clipping routine so lines going off screen don't wrap around and draw garbage everywhere. My first attempt had lines shooting across the display like lightning bolts. After that I just sorted my lines back to front and it looks surprisingly decent.
Next up is a touch interface for zooming and panning, or maybe buttons if touch ends up being a pain. Either way I'm pretty happy with where it landed.