Coincidentally, just last night I was reading an issue of Byte magazine from 1976. It was telling people how to do just this: Computer graphics from scratch.
Except, back then "from scratch" meant soldering together wires and transistors and such.
The big prize was displaying a vector Starship Enterprise on an oscilloscope.
Wow, that sounds pretty hardcore! I suppose what's considered "from scratch" evolves over time. I'm old enough to have written bytes to 0xA000 (and the pain of doing page-switching in VESA modes), so even this "putPixel() on a canvas" is not exactly "from scratch" from that perspective!
Except, back then "from scratch" meant soldering together wires and transistors and such.
The big prize was displaying a vector Starship Enterprise on an oscilloscope.