My initial plan for warifuru was to lock up the UI during an actual laser cutting operation. There would be one floating control panel that controls the cut, and after the cut is started the only options for the operator is to stop/pause the cut.
Looking at the new lasersaur API and thinking about other jobs, I think I’m going to allow a little more interaction during a cut operation. Once the job is started on the lasersaur it’s easy for me to ignore it other than checking for status updates, doing that means I can then update a near-real-time animation of the cut in the status control panel.
I’m also thinking of going in to a multi-threaded world and allow background threads to run while a cut is in operation. If a 2d bin-fitting operation is going to take days of run-time to complete, why prevent someone from doing a laser cut while they wait? The bin-fitting will happen on the host computer, not the lasersaur, so I just need to keep the bin-fitting job from interfering with the UI for the control panel.