A component represents a single .STL file. The file should only contain one single printable part.


To create a component, upload a .STL file as shown in the code example. You can make your component public or private by using the is_public property. Public components are accessible by all users and can be printed by anyone. You can also set your component’s default print settings for easy replication.


To get a component by it's ID simply use the tps.components.get(ComponentID).


You can update your compnent's name, description, print settings and image. To update your compnent, send an object of updated settimgs using the tps.components.update({}) method.


A component can be public or private, public components are accessible by all users and can be printed by anyone. If a component's visability is set to public it will also show-up in search results and the .STL files will be available for public download. Unauthenticated users will not have any access to your components, only users on the Ideea plaform.

Print Settings

There are just 5 print settings for a component; machine, material, layer height, infill and scale.


Stars are similar to likes on social media, it's simply a way for other users to endorse your work. When you star an component it will be added to your list of starred components.


A component can have many .STL files, in 3PS these are referred to as versions. By default we will always print the latest version, but you can also specify which version of a component you would like to print when you create a new job.


A licensed component has a royalty that gets charged to a user each time we print that component. For example, if you create a public component with a license fee of $5 and another user on the platfrom printed this component, the user would be charged for the cost of the print, plus an additional $5 which will be credited to your group's account.


An Object is just a group of components, the child-components of an object can have over-written print settings. Objects are useful when you want to print a complex item that is made of multiple differant 3D printed parts.


To create an object simply use the tps.objects.create() method. Just like components, objects can be public or private, public objects are accessible by all users and can be printed by anyone.

Child Components

You can add components to your object with the tps.objects.addComponent(objectID, {}) method.


To get an object by it's ID use the method tps.objects.get(objectID)


You can update an object in the same way you would update a component.


Stars are similar to likes on social media, it's simply a way for other users to endorse your work. When you star an object it will be added to your list of starred objects.


To make objects easier to find in search result there is a simple tagging system for objects. You can add up to 5 tags per object.


A job is a request to print one or more objects or components. Creation of a job is a billable action, you will be charged each time you create a job.


To create a job use the method{})

When you create a job you can specify which address you would like to use by adding the address id to the address_type property. If you omit this, your job wil be shipped to your default address. Alterantivly if you would like to ship an order directly to a customer you can set this property to {address_type: 'custom'}. You can then provide the shipping details using the fields address_line_1, address_line_2, city, state, zip, etc.


To get a job by ID use the method


If you accidentally send a print job or set the wrong print settings you have a brief window to cancel the job. You can cancel the job anytime before the job is added to our print queue, this is usually arround 30 minutes.


As your job is being printed we will notify you with events so you can track your print job through the manufacturing process. As soon as your job has been shipped we will create an event with the tracking number so you can follow the order from our factory directly to your door.


You can save multiple addresses to 3PS for easy shippping. This is useful for when you have multiple locations you regularly ship to.


To create a new address, use the code as shown in the example. Once you have craeted your address you can ship to this address by adding the new address ID to the address_id field when creating a new job.


If you do not specify an address when you create a job, your job will be shipped to your default address. To update your default address use the method tps.address.setDefault(AddressID)


To delete an address use the method tps.address.delete(AddressID)