Tennis balls in the EggBot

We recently found out about a project to make custom printed tennis balls for an event in Sweden last year.

The first challenge was finding a way to print on round surfaces. Luckily, in our previous R&D experiments, we had played the with quirky EggBot, a printer that lets you print on eggs (yeah, you read that right). We knew that, with some work, it was possible to use that mechanism to print on a “normal” round object too. The Eggbot producers did not agree, stating on their official wiki:

“No matter what you do, EggBot will never produce good results on a tennis ball. Golf balls are okay, though.”

But those words only fueled our creativity and made us move forward.

They 3D printed some custom couplers to hold the tennis balls and wrote some custom software to streamline the printing process, and then printed on hundreds of tennis balls.

Tennis balls in the EggBot Pro

We’ve since updated the wiki.

6 thoughts on “Tennis balls in the EggBot

  1. So I’m curious what the workflow was like – it looks in the video like all four EBs are driven in parallel. What new software did they create? What does it do? How ‘custom’ is each ball?

    1. I think they made it so that the folks at the print station could easily select a portrait and click print. They may have created some automated image processing to convert to vector output and optimize. The video implies it was set up with a photobooth, but it looks like most of the balls they showed were of tennis players.

  2. It would be nice if they could share the tools they used, I think my local YMCA would love to be able to do this for the kids or at fund raisers for the Tennis program.

    Spend $10 and get a ball with your face on it! Spend $20 and get a ball with someone else’s face to beat on! Spend $50 and get the YMCA director’s face on there!

    Or something silly like that…

  3. Hey, I was the technical director of this project and wrote all the software involved.

    In short what it is:
    – An iPad app that takes a photo and send it to a computer via a local network
    – That computer runs the image by an image processing software (made with OpenFrameworks) that generates a few high-contrast BW versions of the image that are then sent back to the app so the users can select the best variation (due to extreme differences in skin tone / facial features, it was impossible to come up with a single parameters set that works for everyone)
    – The selected image is then run by another Openframeworks application that converts the raster image to vector lines (with a lot of empirical tweaks on how the lines are arranged so the eggbot has to move as little as possible, also the line are dotted-ish so the ink penetrates better in the balls)
    – When all this is done, all the data is stored in a local database, and through a web app, the staff can select which portraits should be printed first (or which should be excluded).
    – A node.js application running in the background manages the state of the 4 printers and automatically starts a print as soon as there is a free printer. All that is done by issuing Python commands in the command line.

    Unfortunately I cannot share much code at this stage since this is a comercial project that is still actively being used by Tretorn (they are on tour with the booth on tennis events in Europe).

    (I am on vacations right now, but I can check with the client what are the real sharing terms when I am back to the office – it is very possible that it will be ok to share at least parts of the software stack)

    Here is the post were I talk a bit about the project on the agency blog:

Comments are closed.