3D printing, the technology that promises to make objects of any shape you dream up, has a dirty secret: most additively manufactured (3D printed)parts underperform their traditionally manufactured counterparts. How can this possibly be, you might rightly ask, when esteemed publications like the Economist point to 3D printing as powering the third industrial revolution?

The answer, as it turns out, is fundamentally one of software. Most objects printed today are produced using CAD software inspired by traditional manufacturing techniques; users of Solidworks, AutoCAD and CATIA will extrude, shave, drill, round, etc. until an object is shaped appropriately. Such operations have a real-world analog and are thus typically manufacturable with traditional means. 3D printing, however, has a different set of constraints very few and material properties typically inferior. Creating a traditionally manufactured part with a 3D printer will nearly always produce an inferior product. Only by rethinking the design can benefits be realized.

Spectacular results can follow. Redesigning a machined titanium part for additive manufacturing often results in a 40-60 percent weight savings while meeting the same stringent performance requirements. Coming up with an optimal design requires a new paradigm, whereby the designer expresses the constraints to the computer, which then robustly iterates and evaluates until a topographically optimized design is produced.

New software approaches to designing objects is not limited to industrial applications. Consumers are starting to benefit as well from increased complexity and mass customization. Interlocking parts or even those with hinges can be built with no assembly labor required. The jewelry industry has begun to embrace the prospect of directly 3D printing pieces that show off previously impossible geometries.

Now that more than 100k consumers have a 3D printer, shortcomings of current design programs are more evident than ever. Simply put, designing is too hard and takes too long. New software is needed that quickly lets a consumer create the replacement part needed to fix a latch for the couch, or design the perfect cover for an aquarium, or craft a striking clip-on bowtie. Naturally, generality is the key here as consumers flock to long tail applications to solve problems only they have.

Deep in the long tail is a particularly lucrative product type: that of constrained customization. Align Technology, the company that produces the popular Invisalign braces, is perhaps the best example to date. Every year, the company produces tens of millions of plastic braces that must precisely fit a patient’s mouth to carry out the appropriate correction. Each of these braces is molded off of a digitally-designed 3D print. With every patient’s mouth slightly different, the company must customize each braces produced.

Constrained customization becomes increasingly important as wearables go mainstream. Companies like WiivvWearables are pioneering approaches to leveraging constrained customization to make perfect in-soles based on photos of a customer’s feet. Each product is customized to ensure a consistent experience across different bodies.

Although the body is a natural inspiration for algorithmically designing custom products, further opportunities are available for user-directed customization.

Crucially, a good experience allows for a consumer to be a co-creator without excessfreedom thatcan destroy the design intention.

Of course, the role for software to improve 3D printing does not stop at creating better designs. The machines themselves could benefit from machine learning that learns to correct mistakes or optimize machine parameters based on closed-loop feedback or even computer vision. The generation of machine tool-paths (“Gcode”) could be done in a more robust fashion to better leverage hardware capability. The user experience of printing something could be made into a truly one-click process rather than the several hurdles currently in place.

As Marc Andreessen famously articulated, software is eating the world. Parametric software like Open S-CAD allows programmers to create objects like they would write computer code (“cube([2,3,4]”). It may take a few hours, but that code can be manifested into a real, physical cube sitting on your desk without any manufacturing know-how. Such is the power of software when physical construction becomes just another layer of abstraction.

3D printing, without software, would be an exercise in frustration akin to building a chair using only a hot-glue gun. With software, the technology is a magical marvel, translating digital ideas into tangible goods. We are now in the era where NASA can email a wrench to an astronaut on the International Space Station for on-demand manufacture. It may be hard to predict the basket of goods that 3D printers will produce a decade from now, but it’s clear that many of these goods will be designed and fabricated with software yet to be written. Please, come join the 3D printing revolution and program the physical world around us.