-
Notifications
You must be signed in to change notification settings - Fork 0
kaosat-dev/slicerhub
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Slicerhub is a framework to power server based ('cloud!') slicing of 3D models for 3D printing. There will be a publicly addressable RESTful API up and running at Slicerhub.com soon. The project is fully open source under the BSD license. Slicerhub allows much lower powered machines to have models sliced on a much more powerful machine all over the web. Imagine having a raspberry pi or other small computer controlling your printer and able to slice large complicated files in the cloud and download the gcode. Or run Slicerhub on your more powerful server at home and keep everything on site. Currently Slicerhub is in early alpha. The core functionality to power the RESTful API is done and I've stubbed out how I want to build the web addressable API layer which I hope to do in the next few weeks (check out rest_api/slice_entry.py). The biggest chunks left to do are listed below and I welcome comments and help on them! Major tasks ahead. 0. Get rid of hard coded paths! Move all users, bin paths, writing paths, passwords for testing to a CONFIG file 1. Finish actual bottle.py methods for the service endpoints to handle receiving files and then addressing the Slicerhub internal API layer to write those files and queue up tasks (internal API layer is finished). 2. Write a lightweight client that simply posts jobs and serves gcode files 3. Get the lightweight HTML client up and running on Slicerhub.com so people can send jobs to be sliced over the web 4. Write an authentication layer (have a plan, just need more time) and start allowing applications to address a public queue for slicing. This will allow other developers to make calls against the internal API 5. Build more robust task queues and have a server image dedicated to grabbing tasks and slicing them. The basic flow of a call is laid out below. Slicerhub uses bottle.py, mongodb, and rabbit-mq to do what needs done. There is a install_help folder in the root of the repo with a pip-styled requirements.txt and two shell scripts to install mongodb and rabbit-mq. General documentation on the RESTful API is here and the README on github explains how to install and get the task queue up and running. https://docs.google.com/document/d/1Ht6sI_kT_7gZLRYHBQ9EmMfS-7OljsGs8b-6GoUeARE/edit?usp=sharing This has been a labor of love so it isn't pretty and shiny and right now there is a lot of room for improvement. I hope that over the next while I'll be able to keep working on this and that the community will find it useful. I decided to release this now in its functionally but not web-addressable state so I could start getting feedback and help from the community for how to integrate it with other projects. I'm looking at you CoffeSCAD and Octoprint. Keep being awesome! Ross Brief intro video to Slicerhub's functionality is located on youtube at http://www.youtube.com/watch?v=YUcKLBB-fpY INSTALL To get the project running on your local machine (able to run tests at least) there are a couple things you need to do. First 1. Install all the libraries included in install_help/requirements.txt pip install -r requirements.txt pymongo mongoengine Celery nose requests celery-with-mongodb 2. Install MongoDB take a look at install_help/mongo_install.sh if you like what you see, chmod +x it and fire it off as sudo 3. Install rabbit-mq take a look at install_help/rabbit-mq_install.sh Change the user, user_pass, vhost to whatever you want to make sure it sets it up chmod +x the script and fire it off as sudo. 4. in rest_api/slicebase/celerystalk/celeryconfig.py you need to change some things 1. you need to make sure that your BROKER related variables match what you just set up. SETUP RIGHT NOW - WILL CHANGE SOON You need to change inside of /rest_api/slicebase/slicers/slic3rwrap.py you need to change the path on line 24 to point to where YOU have slicer 0.9.7 installed (the bin folder). RIGHT NOW - WILL CHANGE SOON Just a reminder, the slices folder used to actually hold stls and inis and gcode will be relative to the current working directory. RUN TESTS 1. from the rest_api of the repo fire up ./tools/celery/start_test.sh in one terminal 2. from another terminal (also in rest_api) fire nosetests /slicebase/tests/ You should see about 15 tests run and your other terminal window running the messaging queue should be going nuts. RIGHT NOW the tests don't clean up after themselves very well but I'm working on that. You'll have lots of files in your slices folder that don't get cleaned up and the testing database on mongodb will just keep getting bigger and bigger. QUESTIONS - help I'm often on #reprap in the evenings as savorywatt. I'm also very available through G+ Search for Ross Hendrickson and find the guy who talks about 3D printing stuff all the time.
About
Home for the engine that powers slicerhub.com
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published