Microsoft has just made its mark on 3D printing with its announcement of built-in support for 3D printing in Windows 8.1. Now I don’t usually do blog posts like this where I pretend to keep up with news, but I see nothing but hollow rehashes (actual headline: “Microsoft Moves to Simplify 3-D Printing”) and vaguely 3D printing related filler (LOL GUNZ) on the tech pop media about this story.
Heck, even Microsoft’s own blog post from a general manager is 100% devoid of information on what they’ve introduced. That’s a real shame, because the new Windows components advance the 3D printing field by quite a bit while fixing many of the glaring technical issues.
Before I jump into what the Microsoft announcement is about and why I think it’s great, I want to address a couple of couple of knee-jerk opinions about the story I saw stated as fact.
- Microsoft “simplified” 3D printing… in the sense that it’ll be easier for Joe Sixpack to buy a retail boxed printer and hit “print” from Windows applications to print parts. However, what they’ve done is actually added more steps in the 3D printing chain—but that’s a good thing. I’ll get to why in just a second.
- Windows 8.1’s 3D printing support tries to supplant preprocessors and printing hosts by developers. Nope. Instead it creates a framework around the existing slicers and printer hosts (for example Slic3r and Repetier-Host, two software packages we use in the Georgia Tech Invention Studio for RepRap-based printers), which abstracts away their operational details. This means that all printers will have a common Microsoft-designed software interface for getting printed to, and that’s great for developers. However, it’s still up to manufacturers to actually write drivers within this framework.
- Microsoft is making a move into 3D printing. Technically they are, but they’re not building 3D printers and they don’t appear to be affiliated with any one manufacturer. They also don’t appear to be abandoning open source either; if anything, inclusion of the open source printers seems to be a priority for even the first release, as they had a demo with a Type A printer at the San Francisco event.
As I mentioned, their new components don’t replace anything already on the market; they’re building around, not in, the existing structures. I think their “move” here is a land grab as the first platform to have meaningful standards and support for 3D printing. If played right, that will then make them the 3D printing platform (not that that’s a good thing).
I should also note that I am neither a Microsoft apologist (I prepare presentations in Keynote for crying out loud) nor a 3D printing fanboy (I instinctively assault anyone who uses the term “desktop manufacturing revolution” unironically). It’s just that people on the Internet were wrong and I had to correct them.
Also, my experience with 3D printing comes from my time helping to run the Georgia Tech Invention Studio. As students, we maintain a fleet of 14 3D printers, including open-source printers like RepRap variants, MakerBot junk, and Afinia/Up bots, as well as professional printers from Objet and Stratasys. These get (ab)used almost 24/7 in incredible volume by students and faculty (the hobby printers are free to use) and we’re even developing custom hardware and software for them, so please remember I’m talking as little out of my ass as I can.
Now let’s get to some of the innovations that Microsoft introduced and the problems they solved.
Deciphering the News
But here’s what I think are their biggest innovations in 3D printing:
- A new software interface for printing 3D models from applications and a framework for 3D printer drivers. This means there’s now a standard way for software to pass 3D models as jobs to 3D printers, as well as a standard that 3D printing software chains will conform to. This solves the problem of getting an application to programmatically start a print job. We’re pretty familiar with that problem at the Invention Studio; our printers—Lulzbot AO-101s, Makerbot Replicators 2, Afinia H-Series—each have different APIs for printing to them, and it makes software automation a complete pain of a task to tackle.
- Standard 3D model interchange format designed especially for 3D printing. This is a big deal if only because the current standard format, STL, sucks (and somehow it is standard; even our Stratasys and Objet professional 3D printers use it). The new format that Microsoft is calling 3MF (“3D manufacturing format”) is quite neat: it’s still a mesh-based format (to be practical), but it supports specifying different materials for each volume, as well as supporting color textures (for coloring surfaces). STL, meanwhile, can’t even specify that two faces in a mesh are adjacent to each other.
- Print spooler for 3D printer jobs. The new print spooler is a part of Windows that sits between applications spitting out 3D print jobs and the printer-specific drivers. It serves as a purgatorial buffer for yet-unrealized print jobs that haven’t been processed/sliced/sent off to a machine. You already have a 2D print spooler now that lets you print off 2D documents for 2D printers, without even having any such said 2D printer connected.
- Support for 3D printers using a USB printer interface. I’m not a big USB or drivers person, so I’m not able to expound on whether using the “class 7, type 3” interface1 was the right choice. However, I heartily support their view of serial over USB2 as a “legacy” interface. That truly is the legacy of 3D printer designs relying too much on every part of the underendowed Arduino for their brains. Arduino’s use of COM ports may be convenient for a quick and dirty prototype, but I can’t believe folks are selling products that use it. I’m glad somebody at Microsoft agrees and is taking a step away from that awfulness.
Normally I’m not down for ending a post with Silicon Valley-esque last-paragraph upturn in optimism (what is this, a Quora answer?), but I really do believe that this is a huge step forward in 3D printing, injecting a direly needed infusion of professional engineering into a community dominated by part-time hobbyists struggling to develop complete products. I really want reliable, well-designed 3D printing software platforms to succeed so we can get on with developing actual advances in printing technology, and it’s great to see a big player like Microsoft making that move.
- 1284.4 compatible bi-directional interface: http://www.usb.org/developers/devclass_docs/usbprint11.pdf [▲]
- Communication device class: http://www.usb.org/developers/devclass_docs/usbcdc11.pdf [▲]