There are also a lot of commercial offerings, like Quickshow and others: https://photonlexicon.com/forums/showthread.php/19036-WHAT-i...
Seems like that's a forum all about lasers and lights.
Another alternative is a laser projector that uses the ILDA standard - it supplies a bunch of analog channels over a DB-25 connector. With a projector and an ILDA DAC (typically connected via USB), you could write code to generate all the signals to drive the scanner + control the laser color. That'd mean generating 10 signals at audio-ish rates, so pick your language accordingly.
FWIW, there seem to be a handful of packages for the openFrameworks coding toolkit specifically for talking to ILDA ports, for instance:
Building your own unit is possible, but you'll need electronics and mechanical engineering skills. Even micro-mirror devices require lots of electronics.
+ If you just want to play around with software, TouchDesigner has a free tier and is very powerful.
+ Buy the cheapest "DJ laser projector" and play around programming it using DMX/MIDI.
+ Then you will have a better understanding of your actual interest in programming laser light shows versus your interest in the-idea-of-programming-laser-light-shows.
+ A habit of working on a new adult interest develops over months and years. Having low investment hardware on hand will let your project advance at a natural pace.
Good luck.
If you're talking about some bigger devices, then you probably want more interesting electronics and a lot of info about laser safety...