Mechanical Laser Show

by AdditiveTech, published

Mechanical Laser Show by AdditiveTech Jun 13, 2017
4 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps



Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

14889Views 1705Downloads Found in Mechanical Toys


The mechanical laser show is a device that projects a pattern by quickly moving a laser. It's
hand powered, 3d printed, open source, and free to print.

For more information and shots of it in motion, see this video:


Hackaday.io post with more info: https://hackaday.io/project/25447-mechanical-laser-show
Cam profile code: https://github.com/EvanStanford/cams

Print Settings


Monoprice Mini Select


Each part has different print settings:

Cams (2)
15% fill, supports, no build plate adhesion
I recommend increasing the "Support Distance X/Y" to 1mm or more

Crank gear
15% fill, supports, large brim

Back Plate
15% fill, supports, no build plate adhesion

Front Plate
15% fill, no supports, no build plate adhesion

Crank handle
100% fill, supports, large brim
Note- this piece has an arrow telling you which way to crank (clockwise). If you want it to look great, sand down with 100 grit sandpaper.

Fasteners (X axle + Y axle + 2*Bolt)
50% fill, no supports, large brim
Note- the X and Y axles are different parts. One is right hand threaded and the other is left hand.

Parts to buy:
Laser Pen

It is important to use light rubber bands. Normal bands can provide too much force.

Optional Parts:
Ring to hold down the power button on the laser: https://www.thingiverse.com/thing:2386839
Thanks Conmanrezac!

More from Mechanical Toys

view more

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

This is cool.
Thanks for sharing!

Great model and perfect video explanation. May I ask what software you were using for the CAM simulation?

Algodoo. It's a great physics sandbox. Highly recommended.

I just downloaded Algodoo, and it looks really promising. Would you mind posting the scene file to the Thing files section? I'd like to make some cams of my own, and that way everybody could have a look at what went into your creation. Thanks!

One more question. Could you provide the Algodoo Scene that you showed in the video? Thanks.

No sorry. If you want to create a cam do the following:

  1. create a circle
  2. right click -> add bearing to center
  3. right click on bearing -> motorize
  4. create the follower retainer, anchor to background
  5. create the follower and apply a spring to push it into the cam
  6. Add a lobe to the cam with the solid adding tool

That helps. Thanks! I'm using a spreadsheet to calculate the cam dimensions for any new cams. Looks like Algodoo will be good for visualization, but not the detailed design.

Make sure to take a look at the Go program I wrote for this purpose: https://github.com/EvanStanford/cams

Thank you so much! That response time was unreal!

do you have a degree in math?

No, just computer science.

Jun 20, 2017 - Modified Jun 20, 2017

Hi! The SKP file seems to be in a weird scale, also the golang script outputs everthing around 10.000 larger. Could you point out the right scale? Thanks!

That is correct- each of those output 1000X scale. The reason why is that Trimble Sketchup has tons of rounding bugs when working at real scale. I found the hard way that you should work at 1000X scale when in Sketchup. Just scale down before export.

I wish there was a way to customize this with a paint drawing of the shape we wanted it to output and it would come up with the shapes of the gears for us, that would be dope.

That is what I call a good Idea.

Thanks for the supercool work!!
Why did u choose for the star shape to have inside lines instead of just outline?

Fun project, and great video! I've been working on some project videos and now I really notice when folks have great project videos. Well done!

Jun 16, 2017 - Modified Jun 16, 2017

Very nice! Can't wait to do this project with my niece. One question: Was there a reason you designed the cams and gears as one piece? If you were to print them separately, I would think you could leave the gears in place (and only print them out once) and only swap out the cam parts. The gears could be permanently assembled. If you put an orientation feature in how the cams assemble to the X and Y gear shafts, you wouldn't have to worry about cam orientation during assembly.

I may want to tinker with this idea a bit and publish a remix, unless you want to take a stab at it first! All in all, great work, and I love the explanation of the math.

Saw on Hackaday. Kickass!

Awesome project! So happy I found your video :)

you have so many likes, collects and downloads already!!!!!!!!!!!!!!

Wouldn't the angle technically depend on the radius of the other cam at that point as well? (if the other cam has a larger radius, the pen is pushed up more, then the angle is greater for the calculated cam). I think this would probably make the problem much more difficult though. Did you consider this? Are the implications negligible?

Yes, you are very correct. I am taking account for that issue. Let me explain:
For my first prototype I just found a list of the radii to each of the target points. Then I created cams where those radii where all X degrees apart from each other (eg if there were 36 points, each would be 10 degrees apart). This prototype had the exact issue you are describing and it was significant.
I am now accounting for this by calculating the angle that each radius protrudes from the cam at. When calculating a given point on a cam, if the opposing cam has a very large radius, that will cause the cam to increase the angle at which it puts that radius. This is done indirectly through the angle math (the second half of the math on the slide).

cool idea dude. good video also.
you should consider creating a SCAD file for making custom cams.

Thank you.
Yes, SCAD would be the correct way of creating the custom cams. My motivating factor for using Golang instead was that I wanted an excuse to learn Golang.

YES! If you use openscad, then you could perhaps make a Thingiverse Customizer along with the drawing widget, see: http://customizer.makerbot.com/docs#draw_polygon or an example thing like: https://www.thingiverse.com/apps/customizer/run?thing_id=753352

I was just looking at the Golang code and having done some customizer stuff before it might be really tricky using the drawing widget. It might be easier to work with a series of coordinate data instead.

Or maybe make something in a web format that would allow the user to import SVG points... or leverage something like maker.js ?

Interesting... I'm adding it to my "I'll never have time to do this but... " project list.

Great! I Love it :-)