


This year marked my 7th consecutive year participating in the annual Acumatica Hackathon that launches Summit every year. We had a lot of fun with my friend, Vlad, by turning his photo into “mini-Vlad” or “tiny-Vlad” as seen above. We did the same for another friend, Jennifer, also shown. To demonstrate the before and after via a real example, the trophy photo was taken at the hackathon and turned into a 3D printout by uploading the 2D photo to a sales order and pressing a button. A few minutes later, the file had been deposited on the printer and ready for printing with the press of a button. Special thanks to my teammates, without whom this project would not have succeeded. Special thanks to Shawn for combining all the parts to make them actually work, including figuring out how to deposit the file onto the printer.
Elements of the Project
The process of turning a 2D photo into a 3D printout is rather complex. Typically, a photo is supplied to someone who loads it into a CAD system to convert into a 3D model. After a bit of highly skilled artistic work to create the model, the file is sliced into layers for the printer. This is needed because a 3D printer heats the material (a plastic filament in our case) and deposits it onto a sliding plate sort of like mounting a hot glue gun into a plotter. After each layer is plotted, the nozzle is raised, and the next layer is printed on top of the last.
To accomplish the goal of turning a 2D photo into a 3D printout, we needed several parts:
- Creality Ender-3 V3 3D Printer – $360 on Amazon
- Filament – $20 for a 2.2 pound spool on Amazon
- Public facing website to hold the picture to be processed (a teammate used a free demo account of S3 on Amazon)
- Paid monthly subscription to Meshy.ai
- Free tier provides generating a 2D photo into a 3D model
- Paid tiers provide converting the 3D model into a 3D file that is ready for the slicer software. (We tried the $20 tier and the $120 tier and found that the higher tier did not increase the speed of rendering the file.)
- PrusaSlicer by prusa3d.com (free) – Available in an installable download and on github (written in C++)
- Acumatica ERP
Optional for R&D:
- Postman
- Creality Print 6.0
Using Meshy.ai to Create the Model
After uploading the photo to a public facing website, meshy.ai was used in 4 parts to process the photo into a file ready for the slicer software. The meshy.ai website has documentation to the API, or you can find our application of it in the source code within the repository listed below.
- Submit the job to convert the photo into a 3D model – returns a task id.
- Monitor the job for completion – when complete, the URL to a thumbnail image is returned to see a representation of the rendered model.
- Submit the original task id to remesh into a file format used by slicer software (.stl in our case) – returns a new task id.
- Monitor the job for completion – when complete, the URL to the STL file is returned.
Slicing the STL file into .gcode
With PrusaSlicer installed on the server (or given a wrapper on another server to turn into an API call) execute a command line interface using the .stl file downloaded from meshy.ai. Also note that it is required to provide a configuration file for the printer.
prusa-slicer --load c:\{path to printer config}\ender-3v3.ini c:\{path to input file}\{input filename}.stl --scale-to-fit 25,25,25 --output c:\{path to output file}\{output file}.gcode --export-gcode
This command returns a .gcode file ready for the printer… in our case, specifically for the Ender-3 V3 printer.
Printing in 3D
Shawn tested sending a file to the printer using the website hosted on the printer via its wifi connected IP address. This was critical to simplify the user experience so that they just upload the image to a file, press a button to process the image, and go to the printer to print it. You will have to check out the project on GitHub to look for how he executed the upload to the printer! With the file pushed to the Ender-3 V3 printer, we simply had to select the file and then select print on the touchscreen. After a few minutes… MAGIC!
The Repository
Check out all the source code in the repository on GitHub at:
https://github.com/AcumaticaHackathons/Team14-2025
Feel free to check out the other projects posted by other teams by dropping Team14-2025 from the URL. Please note that the API keys in the project should not work for you, and you must install PrusaSlicer to be able to slice the .stl file into .gcode. Also, even if you have the same printer that we used, note that the IP address is highly unlikely to be the same. We wanted to get all the moving parts into a setup screen but didn’t have time. Still, the project worked successfully and was a ton of fun!
Happy Coding!