X3DStudios

Frequently asked questions

Straight answers on price, turnaround, accepted files, materials, multi-colour, international shipping, failed prints, your files and the API.

The questions people actually ask before ordering, answered with the numbers the site runs on. If yours is not here, email [email protected] or use /contact.

Money and time#

What does a print cost?#

Weight times one all-in rate. PLA, PETG and ABS are $0.12 per gram, TPU is $0.13, ASA is $0.14, and that rate covers the filament and normal machine time together — there is no separate hourly line on an ordinary single-colour part. Premium 0.1mm layers cost 1.75 times the rate; standard 0.2mm is the base. Billable weight rounds up to the whole gram, the way postage does, so the quote agrees with the whole-gram figure Bambu Studio shows. There is a $1.00 minimum per part, 5% off at 5 or more of the same part and 10% off at 10 or more. A colour we do not keep on the shelf is $0.20 per gram whatever the material, because we have to buy a spool in for it. Full workings are on the pricing page at /docs/pricing.

How long does it take?#

We do not publish a fixed turnaround, because a farm that quotes one and misses it is worse than one that tells you the truth. Instead /farm shows a live lead time worked out from three real numbers: how many printers can take work today — the fleet minus anything offline, under maintenance or held by a customer reservation — the median grams per hour measured across the last 200 completed jobs, and how much work is already queued in front of you. One day is added for packing and handing the parcel over. You can set your own part weight to re-quote it, and it shows the answer for 1, 10, 100 and 1000 orders separately. Two things it does not model: weekends and holidays count as ordinary calendar days, and a print that fails and has to be run again is not in the figure.

Why is the Checkout button disabled on my cart?#

Because the slicer has not finished measuring one of your models yet, and we bill by weight. It usually takes 10 to 60 seconds. The cart holds checkout closed and the server refuses an unmeasured print rather than charging you a volume estimate, which undercounts thin parts badly — one plate that estimated at 12.9g came off the printer at 21g. Wait a moment and try again.

Files and materials#

What files do you take?#

Two kinds. A mesh we slice for you: STL or GLB, up to 100MB. Or a file you already sliced yourself in Bambu Studio or OrcaSlicer: .gcode or .gcode.3mf, up to 40MB, printed exactly as you exported it with its own weight and time becoming the quote. OBJ is not accepted on the print upload — the server has never accepted it, so it is not offered. Convert it to STL first. The free printability checker does read OBJ, and the studio can export a generated model as STL, OBJ or 3MF.

ExtensionWhat it isDo we slice it?Size limit
.stlTriangle mesh in millimetresYes100MB
.glbglTF binary meshYes100MB
.gcodeSliced for a Bambu machineNo — printed as exported40MB
.3mf / .gcode.3mfBambu Studio or OrcaSlicer export with the G-code insideNo — printed as exported40MB
How big can a part be?
340 x 320 x 340mm — the largest plate in the fleet, a Bambu Lab H2S. Your model is measured in its best orientation, so a long part that fits rotated is not rejected on one axis. Anything larger has to be scaled down or split, and the upload tells you its actual measured size when it refuses.

What materials can I choose?#

Five: PLA, PETG, ABS, ASA and flexible TPU. PLA for display pieces and prototypes, PETG when a part has to take some abuse, ABS for heat and impact, ASA when it lives outdoors and has to survive UV, TPU for anything that bends. Twelve stock colours print at the material rate — black, white, red, cyan, sakura pink, sunny orange, green, yellow, mint green, lavender, silver and brown. Ask for anything else and it prices at $0.20 per gram, because that spool has to be bought in and most of it will not be used on your order. Material detail is at /docs/materials.

Can you print in more than one colour?#

Only if you slice it yourself. Upload a plate you painted and exported from Bambu Studio or OrcaSlicer as .gcode.3mf and we print it as exported, up to the AMS's four filaments, with the operator mapping each one to a tray. What we cannot do is make a multi-colour plate for you: nothing in our pipeline assigns geometry to a filament, and a generated model reaches the slicer as an STL, which carries no colour at all. So a mesh you upload and a model you generate both print in the one filament you chose — the design page says so where the multi-colour option used to be, and you are charged the single-colour price with no tool-change surcharge on it. Ordering the same part in separate single colours and assembling it is the route that works today. See /docs/studio/multi-color.

Shipping, problems and privacy#

Do you ship internationally?#

Yes, to 22 countries: Canada, the UK, Ireland, Australia, New Zealand, Germany, France, the Netherlands, Spain, Italy, Portugal, Belgium, Austria, Switzerland, Sweden, Norway, Denmark, Finland, India, Singapore, Japan and the UAE. International postage is $30 flat and free over $500. Domestic US postage is $7 flat and free over $50. You pick international at checkout, which switches the address form to that country list. Duties and import taxes, where they apply, are yours.

What happens if the print fails?#

A print that fails on our machine is our cost, not yours. Your order does not advance to printed until parts are actually off a printer, so a failed plate is re-queued and run again — the operator can send it back to the queue and pick a different machine or spool for the second attempt. What you will notice is time, not money: a re-run is not in the lead-time estimate, so a failure pushes your ship date out. If something is wrong with the part when it arrives, email [email protected] with your order number. There is no self-service refund button — a person handles it, and a cancelled order is refunded in full.

What we do not claim
There is no automated inspection of finished parts. No vision model grades your print, and there is no pass/fail record in the system. A person takes the part off the plate and looks at it before it is packed. During the print the machine's own checks do run — every job we send has first-layer inspection on, and Bambu's spaghetti detector watches through the chamber camera — but we do not read their verdicts back or gate anything on them, so what actually catches a failure is the printer's fault reporting and a person watching the camera.

Do you keep my files?#

Your models are stored against your account so we can quote, slice and print them, and so they are still there if you reorder. Generated models sit in your history in the studio at /design, and you can delete one from there. Uploaded print files are kept with the order, because the operator has to be able to fetch the exact bytes that were validated and paid for. The work-order email that reaches the operator carries a signed download link that expires after seven days. Nothing you make is published anywhere unless you choose to post it to the community gallery, which is an explicit action. If you want a file removed, email [email protected].

Accounts and automation#

Do I need an account?#

Yes to upload or generate — the file and its quote are stored against your account, so the upload will not take a file without one. You do not need a card saved first; Stripe collects payment details at checkout. A card on file is only required for two other things: generating an API key, and reserving a printer by the hour.

Can I use X3D programmatically?#

Yes. Generate a key on your profile and POST a file plus a shipping address to https://x3dstudios.com/api/print/orders with an Authorization: Bearer x3d_live_... header, as multipart/form-data. The order is charged to the card on file and queued at the farm, and the response carries an order code and a status URL you can poll. Because it bills automatically, a key can only be generated on an account that has a card saved. The API section of these docs at /docs/api covers authentication, errors, rate limits and every endpoint.

Submit a print order
curl -X POST https://x3dstudios.com/api/print/orders \
  -H "Authorization: Bearer $X3D_API_KEY" \
  -F "[email protected]" \
  -F "material=pla" \
  -F "color=Black" \
  -F "quality=standard" \
  -F "quantity=1" \
  -F "recipientName=Ada Lovelace" \
  -F "street1=13359 N Highway 183 Ste 406" \
  -F "city=Austin" \
  -F "state=TX" \
  -F "zip=78750" \
  -F "country=US"

The quote endpoint is public and needs no key at all, so you can price a bounding box before you build anything else.

Price a part with no account
curl -X POST https://x3dstudios.com/api/price \
  -H "Content-Type: application/json" \
  -d '{"bboxMm":{"x":120,"y":80,"z":60},"material":"pla","quality":"standard","quantity":1}'
That quote is a coarse upper bound
/api/price works from the bounding box as if the part were a solid block, so it reads high on anything that is not one. The price you are actually charged comes from a real slice of the real mesh. Use it for a ballpark, not for a promise.