PyElastica: Simulation Visualization - Week 3 - 04/07/2022

Published: 07/28/2022

Week 3 Status Update - 04/07/2022

The third week of GSoC has now passed, and I feel as if the project is going well so far. With the first two weeks of GSoC mainly involving a lot of testing of different ways of approaching how to visualize PyElastica simulations, mainly what libraries to use, if any, and how to approach visualizing the simulations, this week was more focused on getting some visualisations up an running, and expanding the visualization code so it can be used in a more general plug-and-play fashion.

What I Did This Week

As mentioned above, most of this time this week was spent visualizing different PyElastica simulations, focusing on what and how data should be passed to the visualisation method, in order to eventually progress towards a general visualisation function. A lot of time was also spent on delving deeper into the workings of the visualisation library that I will be using for this project, VisPy, to work on two things; improving the speed and efficiency of the visualization, and adding more features.

Some of the key features that were implemented this week is the ability to save the visualization as a video, which is of course a crucial feature, and things like adding a timer to the visualization to show the simulation time and different camera modes to give greater interactivity during the visualization.

Here is a simple PyElastica simulation that has been visualised, it's not super interesting and quite basic but gives an idea for what the visualization looks like:

What I Plan To Do Next Week

Having made some good progress this week, the aim over the next week or two is to get the visualization code wrapped into a class that provides a good foundation to build the various planned features on. A key aim for this project is that the visualization function should be easy to use, easily integrable into existing PyElastica code, and able to work with any PyElastica simulation. Deciding on the design of the visualization class will be important to achieving these goals, so will need to be given consideration, and different methods tested.


What Issues I Faced

There were not any significant issues that came up this week. The main complications I would say was ensuring the visualization terminates properly during saving it as a video, and as more features were added, how best to update the different parts of the visualization between each frame so as to have it running as smoothly and efficiently as possible, These are not really issues, but just require some thought on how to tackle them and go about it.