Automating 2D-to-3D artworks of your K-1 students

Automating 2D-to-3D artworks of your K-1 students

There never seems to be enough time, right? How can you automate some of the work and maximize the efficiency of the education process? Here are some practical tips by Mark Peeters to help you achieve more with your 3D classes!

I want to share a process that my team and I developed at Comstock Public Schools for automating some of the time-consuming and mind-numbing steps that it takes to convert students' 2D artwork into glorious 3D-printed keepsakes.

Designs and their prints
LIthopanes in action

My hope in sharing our process is twofold. First, that other educators will introduce their youngest students to 3D printing in a practical and meaningful way. And, second, that everyone can benefit from improvements and refinements that the larger collective might add to the process presented here. Everything we use is free and open source so you can adapt this to whatever OS and network environment you have available to you. If you are not a techie, then don’t panic. Just get one of your tech staff or a parent volunteer who knows a tiny bit of tech to help. In my experience techies love the chance to help with student projects especially if they get to see the kids doing the artwork and to see their faces when the final objects show up in class.

Copy of IMG_2786

The why and what of the classroom activity

Just like crayons, modeling clay, or any other creative tool, 3D printing technology can be introduced at age 5 (Kindergarten) very easily and effectively. At this age, my goals are that kids know that 3D printing is a real thing in the world and that it’s not that hard. They also get some valuable practice with the technology standards for their age level like mouse use, writing their name, spelling colors, and other basic computer use skills. We have students design sun catchers as gifts for Mother’s Day and ornaments for the holidays, but you can adapt this process to anything.

For this project, students use a simple 2D art program that they already use in the class called Tux Paint. I have created several templates. First, students choose one of the basic shapes for their object. Then they create artwork and words inside the shape. Finally, to a side area on the screen (that will not be printed) they add their name and the PLA color they want to use. At this point, the kids are done. We have a computer lab so making sun catchers is usually a single 30-45 minute whole class activity, but if you only have a few computer stations in activity centers, then you should be able to cycle students through the project in 10-15 minutes each. Using some behind-the-scenes automation we turn their saved image files into printable files. Then students take home their creation as a gift to their mom or family. Their projects are incredibly cute and help 3D printing become a reality for them and how they think about the world.


Automation tools

Below is a list of the tools we use for this project and how we use them. All tools are open source, so you can adapt to your environment (PC, Mac, Linux) as needed.

  • Tux Paint (We run this on a PC.)

    • Image files saved to a network folder for easy access by the teacher.
    • Paired template files (front and back) sized for the screen size. These template files (front and back) allow you to make sure the students cannot design outside of the shape, which could detract from the printed object.
    • Note 1:  I made these templates for our screen size, 1228x760.  If your screen size is not 1228x760, then you might need to adjust the script to work with your image files. Small changes like cropping your template image, resizing the image, and modifying the openSCAD file are easy if you know a few simple rules to follow. In my next article, I will cover this in more detail.
    • Note 2:  You can just use Tux Paint and manually make the model by hand cropping the image and loading into Cura. The automation tools listed below are only needed if you want to make the computer do a lot of that work. You can skip all the bullets that have “Ubuntu” in the description.

  • Ubuntu (This is where we run the automation scripts.)

    • We choose the server edition since it has less bloat which allows more RAM and CPU to be available for our processes
    • We have VMware so that’s where we set up our server. We could give it more RAM and CPU when needed (openSCAD uses a lot of resources to calculate)

  • ImageMagick (We run this on a Ubuntu VM called by the script.)

    • Custom script
    • Resize & crop image (max 400x400 so openSCAD does not choke CPU)
    • Invert colors (makes a negative for lithophane pass light)
    • Convert to PGM file (basically RGB to grayscale)

  • Python (We run this on a Ubuntu VM called by the script.)

    • Modified
    • Script to change PGM to DAT file (0-255 grey to 0-1 height)

  • OpenSCAD command line (We run this on a Ubuntu VM called by the script.)

    • Change the DAT files into STL files
    • Custom OpenSCAD file called by script (command line openSCAD, use custom file)

  • Ultimaker Cura (on a PC)

    • Group STL files for printing 4-8 per print job

In-class process

Here is a step-by-step walkthrough of how we implement the sun catchers art project in the classroom.

  • Students open Tux Paint.
  • Students choose one of the templates for the shape of the object they are making.
  • Students are given instructions about design limitations

    • Design - Add features to the existing design such as letters and lines. No need for filling in or colors.
    • Colors - Use black and gray lines only. (Grey lines will print at a lower thickness and allow for shading in the lithophane. The difference is slight so we usually advise students to use only two colors, or sometimes for simplicity, we say black only.)
    • Paint brush - Lines can’t be too thin; use medium thickness.
    • Stamps - Fine details are lost in printing. Basic shapes like circles and stars work well.

  • Students are shown PLA color samples so they can choose which color plastic they want to print their object. The template has a box for them to write the color and their name too. (I have several sets of color samples on a ring and pass it around. I usually limit this choice to 2 or 3 colors to make production simpler)
  • Students have teacher check design for printability and boxes filled in listing color for printing and student’s name.
  • Students click Save (a PNG file is saved to the network in a class/date folder).

Using the template

After-class process

Here is a step-by-step walkthrough of the behind-the-scenes work, in particular how teachers can use the automation scripts as an efficient method for turning student submissions into 3D printed art and returning each piece to the correct student.

  • Teacher opens the network folder with all of the student PNG files, double-checking that there is one file per student and ignoring any duplicates from kids accidently clicking save more than once.
  • Copy PNG files to a folder where the scripts will be run, renaming files for easy organization. (I typically end up naming them simply with color name and a digit for each student’s file, such as color##.png. For example, the red PNG files would be red01.png, red02.png, and so on, along with blue PNG files blue01.png, blue02.png...etc files all in the same folder.)
  • Script to change the PNG files into STL files. This takes a while, so leave it to run. Depending on RAM and CPU a class of 25 files can take up to 4-6 hours to process.
  • (Optional) Teacher prints student’s original PNG files on paper, half a page each, black and white is fine. These half pages help organize the printed objects and allow students and parents to see both the digital 2D art and resulting 3D print.
  • Teacher uses Cura and groups STL files into print jobs. You can group as many objects as possible on the print bed to reduce the time spent to start and remove print jobs. I like to do all the Cura work at once so my SD cards have print jobs like red1.gcode, red2.gcode,... blue1.gcode, blue2.gcode, and so on.
  • Print g-code files using the corresponding PLA colors chosen. We have a simple tally sheet by the printer to help coordinate what to print next. This is especially helpful if you have multiple people helping to run jobs.
  • (If printing half sheets of paper) Put printed objects on half sheets of paper to be sure everyone gets their object. When you’re all done printing, the students can have their objects. Yeah!

Prints on halfsheets

Links and next steps

You can download all the files I am currently using from these YouMagine links:

In a later article, I’ll share details for those who want to make your own templates, including how to choose the correct colors for the background and how to make the front and back template files.