Since informing you all of the big changes in Shapeways pricing, we’ve had a lot of questions about how and why we price the way we do. Raphael, a product manager on our materials team, has led this project, and can explain the thought process behind our pricing, and the complex and intriguing analysis that’s gone into building the pricing structure we announced a few days ago. For more on the Selective Laser Sintering process for printing nylon plastic please read Pete’s blog post here.
This blog post is about showing you how we got here, and why these prices are the most accurate reflection of reality we ever been able to build. The way we calculate pricing isn’t about random transformations or math tricks, but is a model built to reflect the years of experience we have in producing millions of 3D printed parts.
An example of a 3D printer machine tray containing 100s of parts
There are several components to pricing, but by far the most difficult to calculate is machine space. Machine space is a huge portion of the manufacturing cost of a model, more than 50% on average. Interestingly, machine space isn’t actually just the cost of the the 3D printer. It has two components: the cost of the machine itself, and the cost of the powder that is in the machine and can’t be recycled after running the machine.
The reason that calculating the machine space cost of your part is difficult is because we don’t print each part individually. Every time we run a printer we are printing hundreds of parts in a “build.” We use a lot of software to pack all those parts as closely together as possible, leaving the necessary space to keep parts from fusing. The geometries of the exact parts in that tray dramatically change how efficiently we can nest them together, and therefore how many parts we can fit in any given tray. Sometimes we can print a part one day, and then print it again the next day, and the second print takes 5 times as much space in the machine simply because of the mix of parts around it. It’s an interesting problem, but at the end of the day when you order a part, you don’t know what other people are ordering. We need a way to price your part based on the average space it will take up in the machine regardless of what other parts are in the machine. That way we can quote the price ahead, and you get the same price every time you order.
How much space does your model take up in a printer?
How do you do that? First, you need to control for all the chaos happening around your part. There’s two ways to think about that: 1) you simulate every single possible combination of trays, and then you average the space your part takes up, or 2) you build a model of how much space your model would take up in the machine if you had a huge set of parts to pack around it and you could pack them perfectly. Since the first option is impossibly complex to calculate, we went with option two. We established the basic rules for the tightest we would ever be able to pack parts based on manufacturing and part mix constraints, and we built a set of model transformations that estimate the least amount of space a part can ever take up in a tray using these rules. The rules that dictate the smallest space that your part will ever take in a printer are surprisingly simple:
- Every part is packed separately to allow each part to be oriented individually to maximize part quality, and to allow flexibility in allocation across machines
- Holes in objects that are below a certain size can’t have objects packed into them
- Parts can be packed no closer together than 1mm to prevent fusing during printing
These rules are then translated into 3 transformations that are performed on each model:
- All non-interlocking and unsprued parts are exploded and each is individually analyzed. The model machine space is the sum of the individual part machine space.
- The surface of the model is expanded and then contracted in order to smooth it and close holes of less than 1.5” (38.1mm). This size was chosen because parts smaller than this are generally put into protective cages to prevent loss, and because after a series of tests it best matched our real-world ability to pack parts.
- The resulting surface is then offset outwards 0.5mm to capture the share of the spacing between parts attributable to that part.
An example of a model and the space it takes up in a printing tray
The volume of the shape we produce with this operation (or the sum of them in the case of multi-part) is the machine space of that part. What this means is that machine CCs (Cubic Centimeters) aren’t actually the number of CCs used in the machine today, but instead the least CCs that could theoretically be used in a machine in the future. Today, unfortunately, we manage to fill up less than 15% of the volume of the tray with these machine CCs. In other words, we’re at less than 15% of theoretical maximum packing density. Even though we’re not yet able to pack that densely because of limitations on computing power and available part mix, allocating machine cost based on perfect packing is by far the fairest option. Common alternatives such convex hulls and bounding box, do not accurately reflect space in the machine and disadvantage L-shaped and U-shaped models, respectively. Concretely, our average part is about 100 machine CCs or 500 bounding box CCs, and has about 720 CCs of space inside a printer allocated to it.
Comparison of different methods to calculate space in the printing tray
What are the different cost components of producing a part?
Alright, so if this is the best way of measuring how much space a part takes up in a machine, then how exactly do we turn that measurement into a useful price? How much does one of these machine CCs cost? Conceptually, it’s important to separate the cost of running the empty printer, including the cost of the powder that can’t be recycled after cycling through the printer, from the marginal cost of sintering a CC of powder in that printer. In other words, we need to calculate two things: how much would the space your part used in the machine cost if your part was empty, and then how much additional cost is there because of each CC of solid part that is added to this empty space. Thinking about the components in this way allows us to accurately capture the complex interaction between space in the printer and model volume in two very simple components.
How much does it cost to run an empty printer?
Focusing on machine space, the first thing to note is that running a printer with no parts in it actually has two costs: the time it takes the machine to lay down the layers of powder, and the cost of the portion of the powder that can’t be recycled. Powder that’s been heated and cooled has been slightly damaged by this process and will make less consistent prints. To save costs but maintain quality, we mix together 60% recycled and 40% fresh powder and use this to fill our printers. The recycled powder is itself 60% recycled, and that recycled portion is 60% twice recycled, and so on. This makes the math a bit tricky, but it can be calculated. After calculating the effective amount of fresh powder in the printer, and the price of raw powder, you can figure out how much the powder in the empty machine effectively costs. And based on the machine lease you can determine the direct machine cost for the time used to print the empty tray. Finally, you add the labor, utilities, rent and other overhead required to run the empty machine. Now you’ve got the complete cost of running an empty machine.
So how much does one of our machine CCs cost? Using the methodology above, we calculate the cost of running every single machine tray that we’ve printed in the last year, as if those trays were empty. Then for each tray, we assign the cost of running that tray across the machine cc’s of the parts in the tray. Now you’ve got the price of a machine CC taking into account model mix, packing density, machine mix, and all other relevant factors.
If you sinter one additional CC in a tray of parts, how much does it cost?
So we now know how much powder goes into each tray if it was empty, and we know how much powder we’ve used. By looking at each tray individually, we can then figure out the amount of powder that was used in the tray because the parts in it were sintered – this includes both the models themselves, which are much denser than surrounding powder, and the powder directly adjacent to the parts that is damaged and can’t be recycled. This gives us the marginal cost of sintering the parts in the tray, for each tray. Since we have thousands of trays and data on the individual models in every tray we can then use a regression to establish the marginal powder usage per CC of model volume, and therefore the cost.
How much does it costs to plan, clean, sort, polish and dye your part?
The other component, Labor, is less conceptually difficult, but just as hard to accurately calculate and measure. The labor the problem comes down to data. To start with, we knew how many people work at the factory… and not much else. To properly price labor we had to work from the ground up. We built up a team in each factory that took hundreds of measurements of every single step in the SLS process from orienting through dyeing, and after in-depth analysis used this data to build a model of exactly how long a part takes at each step based on key attributes such as model volume, model size, surface area and complexity. How do we define a part? An object that can be picked up, sorted, or polished on its own. If your model was sitting in front of you, think of how many times you would have to pick up different pieces to put it into a bag and make sure it was all there. Thats exactly what we do when we sort your part, and we have to re-sort it after every post-processing step.
Using these additional variables allowed us to much more precisely fit our labor models, and then to use the millions of data points of model sales we have to accurately attribute labor cost to different materials and models. You would think that this would mean that labor price is impacted by many model attributes, but it turns out that after all of this analysis we found out that the vast majority (~ 90%) is directly attributable to part count. With this in mind we made one, very careful sacrifice in accuracy. Instead of building a pricing structure with labor spread through all the components, we choose to average that last 10% across model mix, and standardize on simple, clear labor prices per part per material. Yes, this means that you model may be over or underpriced on labor by up to 10% of the labor cost, or $0.15 per in WSF. Other than that, every bit of this new pricing structure is a direct reflection of the most comprehensive and thorough model of SLS production costs we’ve ever built, and to our knowledge the most advanced in the industry.
The last step: we add a (small) margin
One last thing: Our margin. Yes, we add a margin, but we keep it as slim as possible. We’re a business, we need to grow, this is the only part of our business where we have a margin. The 3.5% that you see on marketplace sales are the credit card fees we pay.
Machine space and material have the same margin, meaning that absolutely any size and shape of model has the exact same margin. Simply put, it’s as fair as we can possible be. Here, again, we made an exception with labor. We know that part count pricing is a painful transition, and we chose to take a much lower margin, and even a negative margin in some materials, on the labor / part component of the pricing. In our old pricing structure we lost money on models with more than a few parts. With the new one we almost never lose money on an individual part, but we have carefully and critically choose to take a lower margin as part count increases to lessen the impact on you, our community.
Developing this pricing model has been a long, exciting, and intellectually challenging endeavour. I hope that this explanation helps to clarify how we think about pricing, and why we’ve built the structure we have. Please, comment and ask questions, and I’ll do my best to keep up.