The world of 3D printing seems to be slowly fragmenting into a series of closed environments. What can stop that from happening?
In the old days, a desktop 3D printer had quite bit of freedom: almost any technically feasible materials could be used, along with a selection of current software tools for preparing jobs.
That’s still mostly the case, but there are some signs that things are changing.
For example, one could use several different slicers for preparing jobs, including PrusaSlicer, OrcaSlicer, Simplify3D, UltiMaker Cura, etc. That still is the case.
However, I’m now finding that some 3D printer manufacturers now seem to include some convenience features only in their proprietary slicing software. The main one seems to be remote job dispatch, where you don’t have to walk up to the machine with a USB stick.
Yes, you can set up your own dispatch system with something like OctoPrint, but not everyone is able to do that. The proprietary slicing features make these environments just a bit more “sticky” for users, and creates a gap between software environments.
What if more exclusive features were introduced? What happens then to the notion of printer-agnostic software? It could cause some portion of 3D printer operators to stay with proprietary software.
This got me thinking about why we’re in this situation, and it has a lot to do with corporate strategies. In the desktop 3D print world there is fierce competition. Years ago it might have been called coopetition, as the market was big enough for everyone to grow into. That’s no longer the case as 3D printer manufacturers grew and began direct competition with each other.
Several of the larger producers are taking various steps to make their position more sticky. Some, like Prusa Research, take a passive approach: make the environment “good” and they will come. Others, not so much.
I believe that some of these effects could be overcome with standardization of several aspects of desktop 3D printing. Let’s take a look at what should be standardized.
Spool Dimensions
As I ranted earlier, there is now little reason to have different spool dimensions among material providers. Because of the emergence of enclosed filament bays and external filament swapping units, the dimensions now matter. Operators are getting caught with spools that don’t fit their new equipment. This would not happen if all material providers used the same dimensions.
Material RFID Tags
Many 3D printers are now able to automatically detect the exact type of material loaded into the machine by reading an embedded RFID tag. Unfortunately these tags are defined by each manufacturer and not available to third parties. This means to make full use of the 3D printer, you have to purchase material from the manufacturer. Instead, there should be a standard RFID tag naming scheme where any material provider can participate fully on any machine.
Print Profiles
Print profiles are essential to achieving quality results. 3D printer manufacturers often provide basic profiles, but inevitably they don’t provide the one you need for that unusual material. This leads to tedious filament calibration work and/or crappy print results. Some 3D printer manufacturers offer growing libraries of profiles, but only for their own equipment.
There is no reason there could not be a central database of machine-material profile pairs. Slicing software could simply pull the required profile for any machine attempting to print a specific material. That would be one way to standardize print profiles.
Filament Switching Unit Protocols
I’ve been testing several external filament switching systems, such as Bambu Lab’s AMS and AMS Lite, or Anycubic’s ACE PRO. These work pretty well, but can only be used by the manufacturer’s machines. Could you use an AMS on an Anycubic? Nope. That’s because the manufacturers have tied these accessories tightly to specific machines. Perhaps a better way would be to define a standard protocol for 3D printers to talk with switching units. This would allow mix-and-match filament swapping units, and perhaps even enable their use on older machines.
Special GCODE Operators
3D printer manufacturers like to add special GCODE operators to their firmware to enable new functions. That’s a good thing, but it also means that the generated GCODE can’t run on other machines — or worse, be interpreted as a different function. I’m wondering if there is a way to ensure greater GCODE compatibility by, say, registering new GCODE functions centrally. This would allow other manufacturers to eventually add similar functions in a more coordinated manner. However, those features would likely have to be licensed from the inventing manufacturer.
Interoperability Challenges
All of these would promote the idea of interoperability, which is something that most of the larger 3D printer manufacturers would not want. By reducing interoperability, they tend to maintain and increase their sales: a person or company invested in the ecosystem is less likely to switch to a competitor.
Because of this, I’m afraid these standardization ideas are very likely to never happen. There is too much money at stake for the larger companies to let that happen.
What other things should be standardized?