So I made https://github.com/trathborne/guillot
It was also an exercise in learning Ruby, and it only depends on Ruby, *nix pipes and GraphicsMagick, the more-open way-faster descendant of ImageMagick.
Share and enjoy!
Laser cut nesting optimization is the opposite of guillotine cuts: irregular shapes with arbitrary rotations allowed.
This 2 years inactive, but still working open source tool is more likely to get you where you want to go: https://deepnest.io/ or the web version https://svgnest.com/
A few minutes of delay kinda negates the whole point I feel like. It'd be much faster to have an X server running on the backup server and VNC in or run a file manager over an X tunnel.
Browsing pictures is not the same as having a picture of pictures. I can mark up the picture of pictures. I can print a picture of pictures to get an idea of how each picture will print. Creating a picture of pictures means I am certain of seeing the same thing later as I see now.
To put it another way, back in the film days, someone might say "you can save several minutes by looking at the negatives instead of printing a contact sheet."
Besides, the file manager still has to scale the images (same work as the contact sheet process) and scrolling the view over VNC or X will push the same pixels over the pipe repeatedly so will be even slower.
At least, I'm assuming you're trying to generate images from something AWS Lambda-ish, which AFAIK allows you to run any code including native modules
With sheet film, there is a simple 1:1 relationship between the developed negative and the contact print.
However with roll film there are multiple images on a developed roll. A contact sheet is made by contact printing developed roll film and is typically used to catalog the images for future reference and/or evaluate images for enlarged printing.
Another way to think about it is a contact sheet is a set of thumbnails contact printed from 35mm or medium format roll film.