Over a million developers have joined DZone.

How to Buy a 3D Printer

3D printing promises to be the shape of things to come, and its ground floor is being deposited right now, in the form of consumer-grade devices. But if you want to get into 3Dp, with which should you start?

· IoT Zone

Access the survey results 'State of Industrial Internet Application Development' to learn about latest challenges, trends and opportunities with Industrial IoT, brought to you in partnership with GE Digital.

Not all 3d printers, and 3D printing experiences, are created equal. The variation in cost, amount of required maintenance, and ease-of-use is large. Read this guide to get a bird's eye view of the burgeoning field of consumer devices.

Buying and Owning

3D printers come in three varieties: small, appliance-like machines; large, elaborate mini-foundries; and, the third way, from scratch. What you buy will be dictated by cost, how much you want to tinker, and the kinds of objects you want to build. The cheapest (complete kit) consumer-grade printer I could find was XYZ Printing’s Da Vinci for $499.00. The highest was the high-volume offering from MakerBot, the Z18, at $6499.00.Equipment in this grade is often referred to as “pro-sumer” (a portmanteau of professional and consumer).

Although initial cost varies greatly, the Da Vinci is not cheap per-se. It was designed to be a bare-bones printer, and it has neither the same amount of building space (or “build envelope”) nor the advanced capabilities that other printers do. It’s offered as a pre-assembled unit only. On the other hand, the Da Vinci does succeed as a simple appliance: it prints things reliably, and the objects obtained look a lot like the objects specified. The lack of an enclosed case is a safety concern, as hot elements are left exposed, and the fumes created don’t dissipate quickly in still air.

The opposite end of the spectrum is best examined by returning to the MakerBot Z18. Regarded as best in class for craftsmanship and ease of use, the MakerBot brand has reigned supreme for years. Users get end-to-end support and access to plenty of models. In particular, this printer is the tallest, fully enclosed, and benefits from patented and proprietary technology from MakerBot’s parent company Stratasys, a pioneer in additive manufacturing for 30 years.

The third option, between low-barrier, off-the-shelf simplicity and robust, elaborate mini-foundries: Do-It-Yourself. The first of these efforts is a project that continues now, called RepRap for replicating rapid prototyper. Building a printer holds a definite advantage: cost drops by an average of $500 if you build a machine instead of purchasing one with similar capabilities. For $800.00, you can buy kits pre-packaged with most or all the parts to create some of the best 3D printers around, e.g., a Mendel90.

To build a printer is surprisingly easy today; after years, the process is extremely-well documented. Be prepared for comparison shopping (a little easier with this list of vendors from the RepRap wiki), followed by several hours or even days of building and testing. But for some makers, the ability to hand-configure every aspect means you can take your printer—and experimentation—to new levels.

Along with lower initial cost, cost of owning will fall for a from-scratch machine compared to a MakerBot or 3DSystems printer. Those two manufactures now design printers that don’t work with generic filament. Instead, the owner will have to buy filament, often at high cost, from the manufacturer.

By design, RepRap doesn’t handle materials or intellectual property like a marketplace. Instead, you’ll be more likely to find a collaborative forum. But all that comes with a trade-off: using open-source software and hardware means some of the ease-of-use perks that MakerBot and others provide won’t be as straightforward to replicate, and many high-grade printers require little maintenance and have warranties when all else fails.


This section is about usability in terms of finding or creating, preparing, and printing an object. In many ways, the trade-off between amenities and versatility is strongest here. The manufacturers of both the low- and high-cost 3D printers have an interest in supplying their users with ways to easily get models and start printing them.

To that end, MakerBot and 3DSystems, among many others, have created online marketplaces for 3D-printable content. The streamlined software tools and controlled ecosystem can make the process of printing painless. A significant disadvantage of this ecosystem is that it’s limited in scope, and support for aging machines isn’t guaranteed.

On the other end of the spectrum, you'll find RepRaps which, while versatile, won't supply you with many of the solutions or the "best" way up-front. Below, the CAD/CAM process and tools (Figure 1) implicated in that process, as opposed to the streamlined experience of the MakerBot kith and kin. 

Figure 1: (from RepRap.org) The CAD/CAM process

The first choice you’ll make is among the modelling tools. The two most powerful and versatile are Blender and OpenSCAD. Blender and OpenSCAD take different approaches to modelling. In OpenSCAD, the user creates shapes via mathematical expression. It’s light-weight, but powerful. Blender is an unified suite for creating models, scenes, games, and more. It covers everything. Both create parametric models, which is the ideal way to store your work as it progresses. Later, you’ll create an .stl file for final printing—which is usually the only choice available in the marketplace.

Second, you'll need to slice that .stl; this means to create instructions for deposition into a model by the printer. Below, a table of some of the more historically popular slicers.

Jonathan DummerKISSlicer$0 or $42.00Users can pay for more features; only slices .stl
Enrique PerezSkeinforgeFreeUsability tricky, but a standard slicer included in many packages. Skeinforge also includes send.py, a phython script that can drive the printer. However, this doesn't reach the same level as the full-featured controller clients .
Alessandro RanellucciSlic3rFree

The most popular in class, with an easy-to-use wizard. Like Skeinforge, included with many bundled packages.

The last phase in printing is controlling the printer itself. Because 3D printers vary greatly in their capabilities, materials in their qualities, and models in their complexity, having a strong ability to manipulate settings, such as layer height and nozzle temperature, in a granular fashion becomes very important.

AfiniaAfinia 3DFreeAfinia and Up! Printers only.
Gina HauBgeOctoprintFreeWeb-based print interface.
Hot World Media GmbHRepetier-HostFreeLikely the most well-known client, for good reason. Includes support for popular slicers Skeinforge and Slic3r. Repetier also writes custom firmware for modern RepRaps that offer enhanced capabilities.
MakerBotReplicatorGFreeDated, separate client for MakerBots that still is capable of driving some older RepRaps.
Kliment YanevPronterfaceFree

Also known as printrun, this Python application will work in many environments. Like Repetier-Host in its support for different slicers. Check for bundles that include the necessary libraries on the author's website.


The broad strokes of the choice are clear: if you want something that can be fun and demonstrate the technology, then you'll consider the streamlined experiences. 

But for the full-stack developer and maker in you, go for RepRap and you'll be well rewarded by the knowledge you gain of modelling, device construction, controller firmware, computer-aided drafting and additive manufacturing.

The IoT Zone is brought to you in partnership with GE Digital.  Discover how IoT developers are using Predix to disrupt traditional industrial development models.

3d printing

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}