image

Two days ago Microsoft announced native 3D printing support in Windows 8.1. As someone who isn’t exactly a rabid Microsoft fanboy, I do have to tip my hat and congratulate them on integrating 3D printing support. You can watch their announcement in the Build Keynote here (skip to 1:03:00)

The only thing is, in their efforts to simplify 3D printing, Microsoft have rendered their API largely useless.

It turns out they shoehorned 3D printing into their existing 2D XPS printing pipeline, adding a common API layer between the 3D content and existing slicer / printing host software (which now gets bundled into a driver). This is a pretty obvious approach to take from a systems architecture perspective: Microsoft can reuse all the existing 2D printing infrastructure (like spooling and queuing), and push all the ‘hard’ stuff (like slicing) onto the hardware manufacturers and their drivers.

This might sound like great news if you are building an application and want to quickly add direct support for multiple 3D printers.

The only problem? This first version of the API is such a horrendously leaky abstraction, in reality the only thing it’s good for is attracting media attention.

The Windows 8.1 3D printing API abstracts away many of the common 3D printing parameters, leaving just the following four:

  • Job3DQuality: Draft, Medium and High
  • Job3DDensity: 0% (hollow) through to 100% (solid)
  • Job3DSupports: Include, don’t
  • Job3DRaft: Include, don’t

That. Is. It. And while I can appreciate that Microsoft are trying to simplify things for the average user, removing the ability to even select the output material is a massive oversight. And don’t get me started on the differences that colour and other additives have on the melting temperature of thermoplastics - quality prints require temperature control.

I’m not sure why, but it seems as though the corporate end of town are using The Oatmeal’s comic “Why I believe Printers Were Sent from Hell” as an instruction manual on how to piss everyone off. The new Microsoft 3D printing API checks off another two in the list: starting the ecosystem that breeds bundled printer software crap, and poop smears. Got PLA in your printer and the driver defaults to ABS? Bad luck Brian, you just printed a poop smear and probably jammed your printer at the same time.