Inspiration

I had to print 3D files quite often during my project. Sometimes, I felt that bringing my entire laptop was cumbersome and tried to find ways to slice on my phone. Since there was no slicer app on the Play Store/Android, my classmate and I decided to build one. My friend decided to add a game to it as well.

What it does

It accepts a Stereolithography(STL) file, and processes it, outputting it into a gcode format that printers can understand. Users can save it using the file dialog, to their USB OTG thumbdrive, or an external card reader.

Technical overview

The app is written in Kotlin, and uses a library to render the 3D model in a View, which automatically pans the model. The user picks a file through the Storage Access Framework (SAF), and the file is uploaded to an Express/Node.js server via HTTP POST, which then uses a slicing software on the server-side to slice the file, which is then returned as the response.

How we built it

Tech stack:

  • Kotlin/Android XML (Android app)
  • android-3D-engine (renderer)
  • Express on Node.js (remote server, hosted on Oracle Cloud ARM Linux instances)
  • prusa-slicer, aarch64

Challenges we ran into

We ran into many challenges during the project

  • Initially, when trying to get prusa-slicer to work on the Linux server, many errors appeared, and I even tried to build it from source - which was time-consuming and didn't work. I managed to fix it afterwards by installing a dependency I installed wrongly previously.
  • When building the server-side code, I tried many ways to receive the data, e.g. express-file-upload, multer, but only body-parser worked.
  • The 3D renderer was a bit hard to implement, and it crashed in the initial stages due to an obscure bug. I managed to fix it (with the help of Stack Overflow) and it was working again.

Accomplishments that we're proud of

3D slicing on Android Getting a Node.js and Express server to accept and send files Building an Android app in a day, with some proper principles e.g. coroutines

What we learned

  • To ideate
  • Development skills

What's next for MobiSlic3

After the hackathon, we plan to fork prusa-slicer to create a modified version, and pack it natively in our Android app, calling it from there, similar to how programs on Termux work(execve).

Presentation slides

https://docs.google.com/presentation/d/1LwnRDuWAC4EubonM4mOpJFI4eM6UIYxjhF6PaYgTwmI/

Built With

Share this project:

Updates