A standalone desktop application to convert SVG files into Kodama Trinus laser engraver compatible GCode.


About the project

It started with a Kickstarter project about this modular 3D printer that could print and even has laser engraving capabilities — so I pulled the trigger and backed it. Fast forward almost a year or so and the printer arrived. Since it's the first product for this startup it is a bit rough around the edges, especially software wise. They teamed up with this Chinese manufacturer that also happens to provide a closed software/firmware package with the hardware. It's great for saving money and cutting corners, but in reality, it left the community with a closed environment and a ton of proprietary solutions that none of us would have access to. 

The software the machine came with does basic stuff but when it comes to the laser engraving side of things, it flat out proves to be mostly useless. I was trying to figure out how to get around it, looked into other solutions out there, but nothing seemed to be compatible with the machine. So I decided to write a piece of software that would be able to convert SVG files into paths that the printer can understand.


The first iteration (v.0) of the project was a command line tool that would parse the SVG file, turn it into standard GCode then apply all the necessary modifications to make it compatible with the Trinus. This worked well for my own use but I wanted to create a tool that others could utilize with ease as well. 

The second iteration (v.1) was a Processing application which worked as a downloadable desktop app. However, it had a lot of limitations and I ended up looking for other solutions. Enter the third iteration — a standalone desktop application for Windows and Mac based on the command line tool and powered by Electron. For this, I finally was able to leverage some of my interface and framework knowledge so it was a lot of fun to develop once I started seeing results. I customized a proper GCode simulator that actually allows previewing what the printer would see. 

For future development, I'd like to create a version that could handle rasterization as well.


  • multiplatform standalone application
  • speed adjustments for movements and burns
  • laser head height setting
  • interpolation resolution adjustment
  • fills generation (experimental - needs further performance enhancements)
  • GCode preview with movements and step sliders
  • responsive interface


[unex_ce_button id="content_mllvhm4s5,column_content_e12c5ftyt" button_text_color="#ffffff" button_font="bold" button_font_size="15px" button_width="full_width" button_alignment="center" button_text_spacing="1px" button_bg_color="#000000" button_padding="15px 20px 15px 20px" button_border_width="0px" button_border_color="#000000" button_border_radius="100px" button_text_hover_color="#ffee27" button_text_spacing_hover="1px" button_bg_hover_color="#000000" button_border_hover_color="#000000" button_link="" button_link_type="url" button_link_target="_blank" has_container="" in_column="1"]Visit project page[/ce_button]