MahaPrinting: Manage a multi-user print queue and dispatch prints to multiple printers

Hey there! I'm pleased to announce the first public release of a little project I've been working on in the last few months on and off.


MahaPrinting lets you manage user-uploaded prints in a print queue, and dispatch those prints to multiple printers managed by OctoPrint, all from a single UI.

Origin Story

MahaPrinting was designed for a convention/hackathon where the participants can request 3D prints for their projects.
That causes some headache prioritizing and tracking prints, and coordinating available printers.
MahaPrinting attempts to solve these problems.

Among the features:

  • GCODE/STL support:

    • STL files can be downloaded, sliced and re-uploaded as GCODE by the manager

    • GCODE files can be sent directly to the printers

  • A user can upload prints and view the status (in queue, printing, done...) of the prints he uploaded in a mobile-friendly web page

  • The manager can see the list of uploaded user prints, look at a preview of the STL/GCODE and decide to which printer this print should be sent:

For more info and pictures you can visit MahaPrinting's GitHub page:

I hope this project will help some of you :smiley:


1 Like

Hi Yarin,
Looks great! Would I be able to use something like this to create a marketplace similar to thingiverse, where users can upload their 3d objects, and then other users can print those 3d objects directly from our websites to their individual 3d printer?


Are you describing a Thingiverse alternative where users can directly send 3D objects to their own printer? If so, the answer is no. MahaPrinting is designed in a way that allows users to send prints to a centralized printing farm/service. The users can't connect their own printers, only the service's manager(s) can connect new printers.

Yeah, thats what I'm trying to do. Do you think it would be possible for users to connect their own printers to a service like thingiverse?

It'll be tough, mostly because thingiverse usually hosts .stl files, and the user has to do the slicing by himself. Slicing is not something that can be easily automated, people who upload things don't always fill the slicing parameters, sometimes those aren't enough and I didn't come across any decent slicing library.

But, if you find a solution to the slicing problem, I can definitely imagine a browser extension that automatically slices the STL and sends it to an OctoPrint instance (i.e prints it).

Thanks Yarin, Im thinking worst case scenario, I can upload the sliced version to the site manualy, instead of hosting an stl like thingiverse. I'm mostly worried about the part where I send the sliced file from the website to the users printer. Do you think this would be possible to scale? So that any user with a 3d printer can just visit the site, hit PRINT and get the file to start printing on their computer. Or would each individual user have to install an octoprint instance?

I've been told by some people its not possible, and heard from other that it could be doable with an octoprint plugin. For several printers to access a single octoprint instance.

I can tell you with 100% certainty this is not possible. An OctoPrint instance can only connect and control one printer at a time.

So I would need to create an individual octoprint instance for each user that visits the site.

You wouldn't be able to create it, the user would have to have OctoPrint installed & setup with their printer first, before you could send it a print job.

Thanks Charlie, thats what I was trying to figure out. Guess im just a bit confused on how Octoprint works, thought the idea was that it ran in your browse, so I was hoping you would be able to install it in some cloud hosting instead of a rasberi pi and access it through there by a website.without having to install it localy and tie it to one specific printer.

I thought something like what this video talks about would be the solution

Yeah, you don't understand how OctoPrint works. If you watched his first video on this series he shows you he's setting up a pi to connect to this printer. This second video is just how to access that web interface running on the pi that is connected to the printer.

The other larger issue is that it seems you don't understand how slicing models and 3d printing works either. You can't just provide a universal gcode file that will work with every printer out their. Things have to be tuned for a printer and filament combination for varying heat requirements, etc.

I don't. I'm trying to learn here guys. Dont gotta be so harsh.

Another project I ran into that gave me hope this would be possible was this one

Plus jneillii, in the other thread you said this might be possible with a custom plugin.

OctoFarm is a client for OctoPrint, just for more than one install.

Install OctoPrint, play around with it, maybe read the forums, the documentation, the website, look on the github page and find out what it does. There's also many YouTube videos about OctoPrint, and even more guides can be found on the internet.

You are trying to run before you can walk. Before asking if your specific problem can be solved by OctoPrint, you need to know what OctoPrint does. And if you are looking at creating a business service (or something similar) then I suggest employing someone who understands what they are looking at and can suggest a suitable solution for your ideas.

Thats what im trying to do Charlie. This isn't my project, I've been tasked by a client to find a solution to their problem. I just ran into octoprint, and thought it might be a viable solution. Now im at the stage of trying to find a developer who is familiar with octoprint and see if I might be able to to use it as a starting point so we dont have to resort to building something from scratch, when octoprint already comes with a large community, and selection of plugins to expand it.

So to give you some context, there is a service that is similar to what you are describing called Autodrop3D. It currently does not run in conjunction with OctoPrint but that will be changing soon. It allows for online slicing, and has a job queue that downloads sliced gcode files and remove those files on print job completion.

Thanks Jneilliii, I'll look into that one.