Running complex simulations requires the intense power of computers. As the simulation software generally runs locally as a desktop application, it, therefore, relies strongly on the computational power of the user.
To reduce this dependence and improve the performance of their customers (users), our client wanted to create an independent and remote system (broker, server instance) capable of performing molding simulations.
The user keeps working with the injection molding simulation desktop app. Instead of performing simulations locally, they can now submit tasks to the server instance for the execution of the simulation. During the execution, the user can continue to work independently without interruptions.
The system was supposed to be capable of receiving multiple requests simultaneously and executing them one after the other, regardless of the user.
Solution and Technologies
We created a scalable system consisting of brokers (server instances) and agents (users) who execute simulations depending on previously defined conditions – software version, license, and other simulation parameters.
Multiple agents are allowed to work on separate machines to execute more simulations simultaneously.
We started working on the new system using .NET 5. In the meantime, we switched to .NET 6 since it provides more capabilities. We used the MS SQL Express to create a database and Dapper to interact with the database.
We developed the frontend side using Blazor technology. MQTT Broker protocol handled all asynchronous communication.
A delivery manager, a technical lead, and three full-stack developers played vital roles in this project from our side.
.NET 5, .NET 6, ASP NET Core, EntityFramework Core, MS SQL Express, MQTT Broker
As we had already successfully completed other projects with this client, the collaboration was smooth. We applied the agile software development principles as we had done it before. Together with our client, we decided to stay with three-week iterative sprints.
Before each sprint, we had a backlog grooming in which we discussed with our client what exactly needed to be prioritized. As the team members from our client are tech-savvy, we could also discuss the technical details quickly and effectively.
At the end of each sprint, we reviewed all the user stories we had done. The review helped us determine what we did well and what needed improvement. After discussing it with the client, we were ready to proceed to the next step.
Overall, our team was accountable for performing the following tasks:
- Filling the backlog of work
- Writing user stories in coordination with our client
- Delegating tasks among our team members
- Estimating the amount of work and time
- Developing the software solution and testing it thoroughly
2021 – in progres
“We had excellent and very constructive communication with our client! I had the pleasure of working on different projects with them, and it has always been a great experience!“
Miljko Miljković, Technical Lead and Software Architect at Creen
Results and Major Learnings
Working closely with the client, we developed a solution capable of performing the following tasks:
- Sending simulation tasks and running model simulations without interrupting the local user
- Running several simulations simultaneously
- Comparing the simulation results and making model changes
- Increasing the overall speed of developing 3D models
Developing new and complex solutions such as this brought our team a unique experience. We gained more skills in creating and implementing complex, scalable systems during the project.
Automated molding simulation remote system
Running simulations smoother through the power of the cloud
Start a project with creen
Have an idea? Let's discuss it!
Want to see more ?
Explore our case studies and find out how Creen’s team of proficient engineers has helped companies take advantage of our superb services. Feel free to explore all our projects and find out why great companies partnered with us.