Problems with Windows 8.1 3D Printing API
Microsoft announced yesterday it will add native 3d printer support to Windows 8.1. The new version of the operating system adds an API to allow developers to use 3d printers as if they were standard 2d printers. System dialogues will provide print previews and send the object to the 3d printer for printing. We took a look at the documentation at the new API and while it makes sense for Microsoft to try to consolidate control, their new workflow both overcomplicates and oversimplifies the process.
Microsoft envisions 3d creator applications that have a “Print” button in the standard windows location that will link to a system dialogue with printer settings. The settings would allow users to control standard settings like quality, density, support material, and raft. A windows driver guides the 3d printer through the process of printing similarly to printing out a paper document.
Perhaps this simple configuration would work with simple models, but dealing with complex models can require tweaking printer settings and slicing settings. Microsoft sees the generation of actual commands that the printer will use – gcode or a proprietary version of gcode – as a simple step to the printing pipeline. If you’ve printed extremely detailed models or models with challenging overhangs, a simple filter won’t be enough. Print quality varies dramatically between different slicers, even between different versions of the same slicer program. Occasionally trial and error of slicer settings are needed before an object is successfully printed.
Microsoft has proposed yet another file format for 3d objects, called 3MF. But there is no defined location in the current design to store customized gcode. Microsoft is trying to simplify the user experience for the lowest common denominator. Perhaps this is the future of 3d printing, but by proposing a custom format that pays little regard to existing formats, Microsoft is oversimplifying the print process. With high resolution prints of high detail models, we’ve had slicing and support generation take hours. The process as envisioned would seem to take hours to generate the final gcode only to use it and throw it away. Unless the provider extends the format using custom vendor namespaces, which is likely what most will choose to do.
The new 3MF file format could be useful as it contains thumbnail views of objects, a sliced representation of the object, and 3d model data, including complex color and shape data. But in the draft version of 3MF, much of the effort is shifted to the 3d printer manufacturers to create complex windows drivers for their printers. However, Microsoft has demoed the new pipeline with a MakerBot 2, which uses standard gcode. So perhaps other open source printers and printers that use standard settings will be able to use the same drivers. But with this new pipeline, Microsoft is asking printer manufacturers to do unnecessary software engineering to retain compatibility.
Finally, the 3MF file format includes rights management capabilities that would allow producers to lock their content so that it is not editable. This opens up the possibility of forcing users to buy a license to print your content that could have a limit of how many prints were possible. One core promise of 3d printing is customization and remixing of content. The 3MF file format allows producers to lock down content. Users could be unable to change the shape, the textures, or the colors of the 3d objects.
We hope people truly interested in 3d printing will ignore the 3d printing capabilities Microsoft is trying to build into their operating system. Microsoft is trying to retain control of how people use 3d printing, and trying to make users pass 3d data through custom Microsoft APIs instead of using more flexible software systems that already exist. In the hopes of simplifying things for the end users of 3d printers Microsoft is trying to push a closed, unneeded system onto the 3d printing ecosystem. The companies that benefit from this API are Microsoft in retaining control, and the big names in 3d printing that have the resources to comply with this new complex system.