Today I released version 1.2.1. It’s a quick bugfix release that fixes various stability issues that came with version 1.2. In the last version we did a lot of optimizations that proved not to be very clever in some places.

For those interested:
If you can’t optimized the work to be done by optimizing the algorithms you have to get more work done in the same amount of time. On Computers this is done by making use of the CPU power that is available which is often not the case. For example Copper has to generate and load hundreds of 3D models in more complex designs. Before version 1.2 this has been done one after the other. This is stable, as it’s easy to handle. Version 1.2 dispatched all these actions to the CPU at the same time. This introduces major speed gains, as every core of your CPU is running at max. But, this also introduces challenges combining the result at the end. And there are also problems with resources that are not enough, or GPU contexts that you cannot have in the same amount as CPU threads. And it’s very hard to debug as the situation is always a little different. Each launch and each board is different.

Well, version 1.2.1 fixes these issues by simply removing some optimizations and by fixing a serious bug that sometimes caused dead locks (Thread A waits for thread B, while thread B waits for thread A) and crashes. Stability is much improved, but load times are a bit longer now for 3D board generation. But I think that is a good compromise! I will reimplement various optimizations one after the other. But, I introduced a nice progress bar showing the progress of generating your 3D board which is a nice addition.

Thanks for your help fixing bugs. I am really sorry for the issues that came with 1.2. I thoroughly tested 1.2 but it’s so hard considering the near infinite combination of boards and machines Copper has to work flawlessly.

The “official” release notes:

Sorry for those of you that had a bit more trouble with stability in Version 1.2. Version 1.2 did a lot of optimizations but in some cases those were too much.

Version 1.2.1 fixes all (known) stability bugs and improves the overall experience.

  • Activating 3D view now shows a nice progress bar and gives nicer feedback. The actual 3D computation is now done in the background, meaning the app stays responsive.
  • 2D rendering is nicer (due to transparency of large copper areas) and handles the draw order better with various layers
  • Polygon calculation had a few issues. These are resolved now.

I hope you enjoy this release. If you have any issues, please let my know. Thanks for all of you who sent in boards for testing and resolving bugs and helping to find the bugs!