According to the customer`s request, the legacy project must have been supported, and the new functionality must have been added. The main requirement was to implement the functionality to visualize different 3D models with an ability to change the display modes. The used models may consist of hundreds of thousands of elements, and all operations on the models should be displayed in real-time in a web browser. All model elements should have unique identifiers. Using this data, we should have created lists, trees with controls, and a filter for the content display.
Due to the browser calculations and as JavaScript is a single-threaded programming language, we decided to also use Web Workers API. It provided us with an opportunity to run several heavy processes simultaneously.
Unfortunately, that was not enough because we still had a low performance in other code parts. During the investigation and code review, we decided to make a refactoring and code optimization. It enabled us to significantly improve productivity, offload the mainstream, and simultaneously display different interface parts.
During logic and interface developing, we faced the following challenges
1Slow data processing of multielement 3D models
2Displaying of 3D models with delays;
3Slow response time of the UI;