Musings from Carbon’s Engineers


By the Carbon Platform Team, July 22, 2018

Architecture Banner.jpg

Our printers and washers communicate over a secure outbound tunnel to our cloud servers. Digital part models are generally stored on the printers themselves, behind the firewall, and they can optionally be secured by a user-selected password.

  • Better UX: Nontrivial local compute and storage helps with smooth rendering and manipulation of large 3D models.
  • Better security: For most operations, sensitive 3D models don’t have to leave the customer network.
  • On demand scaling: Leverage cloud when needed, such as for process and part performance simulations.

Here’s a summary of the different software components, languages, and operating systems we’re working on:

The entire software stack (from the browser-based UI all the way down to firmware) is structured as logical components that talk to each other using well defined protocol buffer interfaces. You can think of this as running several micro services even within a machine. There are several advantages of this approach, many well known but some surprising:

  • Team scaling: well defined interfaces allow different people to work in parallel
  • Freedom to use the best language for the task at hand
  • Better unit testing: even down to the firmware level
  • More readable code
  • Ability to use a “process per request” model; this is useful to isolate third-party code that may be buggy or leaks memory