Making cool time lapses

This one is a bit unusual, but I’ve recently seen a few time lapses made by 3D printers with some kind of camera control software integrated into them, such that the print head seems not to move, and the part just kind of rises up. Very cool.

They are obviously just taking the pictures when the print head returns to its start point.

It got me wondering if such a thing might be possible with a CNC.

Two not very good possibilities occur to me. One is that you add retractions after every path, and then somehow setup a camera to take a photo at the top of each retraction. Perhaps with just a mechanical trigger or something.

The other idea would be to do some fancy image processing to remove the spindle, probably by cropping and merging photos together. I could create an action in photoshop to do it, but I still expect many hours of tedium, fixing all the ones it misses.

Both of these methods seem daunting and inefficient in their own ways.

Anyone have a clever idea to achieve this? I don’t suppose GRBL can control a camera…

1 Like

You should be able to use a relay to trigger a shutter.

Alternately, it should be possible to monitor the code sent to the machine, and take the photo whenever it’s at a particular position (might need to manually edit the code to insert a movement to that position?)

Alternately mount a remote shutter button on the machine and insert code to have it move there after each Z-axis move?


IF you have a Raspberry Pi controlling your CNC through CNCJS, you could look into:|-Recording-Triggered-by-Events

I’m not sure but it seems quite promising, if you can set up the CNCJS events correctly. I haven’t looked much into setting up Events, but maybe @neilferreri could chime in if he is familiar? This could make for some pretty cool videos!


This is funny as I was just talking to some students about this earlier this morning. The thing with 3D printing that makes it easier is

  1. The slicers are pretty sophisticated
  2. They have ONE Z change per layer
  3. Slicers can be asked to insert a macro ON_NEW_LAYER

I was setting up a finishing toolpath for a wavy piece and thought it would be perfect to have the machine trigger a shutter each pass, mechanically or photoelectric or the like. There aren’t too many times when my machine makes consistent passes like that, though. No one wants to see a timelapse of me surfacing a workpiece.

I appreciate the confidence @dakyleman, but I’m not much help here. I’ll be following the thread though. I haven’t played with the triggers in CNCjs much.


Yeah Octoprint is what I was thinking of, which also is nice and integrated for capturing 3D printing with layer changes on the Pi. Too bad we don’t have designated CNC-subtractive layers, there’s just too much fun variety with machining!


How would you monitor the code sent to the machine? I think you could probably do this most simply by not setting Fusion 360 to keep the spindle down, and then just snap a photo every time it retracts.

Definitely this would only work for certain toolpaths.

But I’m pretty sure something like this:

Could be even cooler if the spindle didn’t seem to move.

1 Like

@Jorge can tell you more about the IO we have on the boards but you could use the M7/M8 coolant commands to trigger an external shutter but you’d have to modify the code to drop those in every time you want a snapshot.


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.