X3DStudios

The print farm

The machines your part is printed on, who picks which one runs it, what is watched while it runs, and which steps are a person rather than a program.

This page describes the machines your part is printed on, who decides which one runs it, and what is watched while it runs. It is the farm as it actually works today, including the steps that are a person rather than a program. For throughput and lead time, read /docs/farm/capacity instead.

Where it is#

One site, in Austin, Texas. The printers belong to us. The person who slices your plate is the person who takes the part off it and packs the box, and no part of the job is handed to another farm. That is why this page can tell you which machine model ran your part.

The machines#

Every printer in the farm is a Bambu Lab machine, and the fleet is H2S and P2S. The build volumes below are the ones the plate validator measures a plate against, for the machine a job is queued on.

ModelBuild volumeRole
Bambu Lab H2S350 x 320 x 325 mmThe large-format machine. Most farm work runs here.
Bambu Lab P2S256 x 256 x 256 mmStandard-format machine for smaller plates.
Build volumes in millimetres, as the plate validator compares a plate against. The comparison warns; it does not block. See /docs/farm/quality.

The validator also recognises H2D, X1C, X1E, P1S, P1P, A1 and A1 Mini, because a G-code file you upload may have been sliced for any of them. A plate sliced for a different Bambu model than the machine it is queued on is a hard failure: the file is refused before it reaches the printer rather than after the first layer.

The upload size check is slightly looser than the plate
The quote and upload check at /print measures your part sorted longest-side-first against 340 x 340 x 320mm. The H2S plate sorted the same way is 350 x 325 x 320mm. So a part whose second-longest side falls between 325 and 340mm passes the upload check and will not fit the machine. If any dimension is over 320mm, ask at /contact before you order.

Every machine carries a 4-tray AMS, which is also the ceiling on colours in one part: four. More than that would need a mid-print spool swap, which we do not offer. A model we slice for you is cut as a single colour; the only multi-colour route that reaches a printer today is a plate you painted and sliced yourself. Ordering multi-colour is covered on /docs/studio/multi-color.

The live fleet count is deliberately not written down here, because it changes. GET /api/farm/capacity returns fleet.total along with how many machines are printing, idle, offline or in maintenance right now, and that endpoint is public.

What cuts the plate#

Plates are sliced by OrcaSlicer running headless in our own service, using Bambu's own machine, process and filament presets rather than hand-written settings. The presets carry the real flush volumes and tool-change behaviour, which is what multi-colour pricing is computed from. Default nozzle 0.4mm, default plate a textured PEI sheet - which is what is physically on the machines. This is why your quote is a weight rather than an estimate: where a slice succeeds, the grams you are charged for are the grams the slicer says will leave the nozzle, rounded up to the whole gram.

How a job reaches a printer#

  1. 1
    The order is paid

    An order record only exists after Stripe confirms payment, and it is created at the placed stage. Nothing is queued before that.

  2. 2
    An operator picks the machine and the trays

    The operator opens the order in the console and chooses the printer and the AMS tray for each filament in a dialog. The server would have to guess which machine is free and which spool was meant, and a wrong guess is a wasted plate. The person is standing in front of the fleet; the server is not.

  3. 3
    The record is checked against the metal

    Before slicing, the printer's own reported model is compared with what our database says it is. If they disagree the record is corrected and the plate is cut for the model the machine says it is. A plate cut for another machine's acceleration limits is how prints lose steps.

  4. 4
    The model is sliced for that machine and that plastic

    The plate is specific to the printer it was assigned to. It is not a generic file dropped on whichever machine happens to be free.

  5. 5
    The plate is validated

    The G-code is scanned for dangerous commands, temperatures outside hardware and material limits, and a printer-model mismatch. Detail on /docs/farm/quality.

  6. 6
    It joins the queue, and a person starts it

    The job waits at QUEUED or READY until an operator starts it. No scheduled task starts prints. If the AMS trays changed since the job was queued, the start dialog reopens with a warning naming the change rather than running on the wrong spool.

What is watched while it runs#

Printers connect over the local network to a gateway box in the farm, which forwards their telemetry to the application. The operator console streams it live.

  • Nozzle, bed and chamber temperature, where the model reports one.
  • Progress, current layer, and the printer's own G-code state.
  • AMS tray contents: the material and colour each tray reports.
  • Fault codes, normalised into described faults with a remedy each, raised as work items and swept on a schedule. Advisory faults do not page anyone unless the printer has parked itself in a paused state.
  • Whether the telemetry is fresh. The gateway serves a cached snapshot after its link to a printer dies, so readable state proves nothing on its own; staleness is tracked by watching the timestamp change, and a printer whose serial does not match its record has its readings withheld.
  • A live camera, with a WebRTC, MSE and MJPEG fallback chain.
Monitoring is operator-facing
The telemetry stream and camera feeds live behind the farm console at /farm/dashboard and need a signed-in farm account. The only fleet data published without an account is the count-level capacity endpoint, and the panel on /farm that renders it: no printer IDs, no camera, no job names.

After the plate finishes#

A finished print is not a collectable print. Parts release from a PEI plate when the bed contracts on cooling, so a part pulled warm either will not come off or deforms. The job is marked complete when the printer finishes, but it is not called ready to collect until the machine has cooled to a removal temperature.

MaterialBed must reachChamber must reach
PLA, PETG, TPU, PVA35 C or belowNot gated
ABS, ASA45 C or below40 C or below
PA / Nylon, PC50 C or below45 C or below
Anything unrecognised45 C or below40 C or below
Chamber only gates on machines that report a chamber temperature. A 45-minute timeout releases the job anyway, flagged as still warm.

Owning the farm versus subcontracting it#

QuestionHereWhere printing is subcontracted
Who chooses the machineOur operator, standing in front of the fleetWhichever partner accepts the job
What model printed your partWe can tell you, because we assigned itSet by the partner, if they disclose it
Live fleet numbersPublished at /api/farm/capacity, no account neededNot usually published
Where lead time comes fromMeasured from our own last 200 completed jobsQuoted by the partner
A plate that fails halfwayRe-run at our cost; your order has not advancedGoverned by the partner's terms
Who you email when it is wrong[email protected], and the operator reads itThe reseller, who forwards it on

The practical difference is that every number on /docs/farm/capacity is measured from the machines that will print your part, rather than promised on someone else's behalf.

What we do not claim
There is no automatic printer assignment - a person picks the machine. No scheduled task starts prints unattended. No vision model grades finished parts, and there is no pass or fail record in the system. Failure detection during a print is the printer's own fault reporting plus a live camera a human watches, and the inspection before packing is a person looking at the part.