This project is an implementation of Physarum (slime mold) simulation which concerns improving the user experience. The project is hosted on glitch.
Slime mold simulation has a few simple rules, but the resulting behavior is quite complex. As a result, it's difficult to make the simulation show intended pattern, specially for the users who lack a deep technical knowledge. We aim to achieve 3 goals with this implementation:
- We want to give the user the ability to predict the effects changing a property has on the future frames, making it possible for the users to make informed changes and to not stuck in an undesirable simulation state.
- We aim to create a close functionality to undoing an operation. Because the simulation is running at all times, every change has an effect on the final pattern. The existing tools provide the user with no return option, and once a change has been made there is no turning back other than restarting the simulation.
- Make the simulation reproducible. Because the simulation keeps on running, the users must create the exact same operations on the exact same moments in the simulation to get the same result. This makes reproducing a pattern almost impossible.
We added a timeline which shows the future frames of the simulation. By looking at timeline the user can quickly see how the future patterns will change based on the changes they're applying to this frame. It makes it possible to see the relationship between the parameters and the produced shapes more clearly. Additionally, users also have the ability to pause the simulation at will, so they can pause on one frame, change the properties, and see how these changes affect the future states of the simulation almost immediately. By giving this ability to the users, they can think about the changes they want and make informed decisions. As a result, the users can work with the system even if they're inexperienced or lack the technical knowledge on the properties they can change.
We intend to add a change log on the timeline system. Having a timeline change log grants users the ability to view changes they made on each frame, and to change or undo them. By viewing the simulation not as the current state, but as a flow of states influenced by the changes the user made on each frame, these changes can be reviewed or reverted. Not only this gives the user the ability to revert any changes in any order, it also provides an overview of the changes and how they're affecting each part of the simulation, making it easier for the user to understand how the system works.
Additionally, we aim to add a recording system to this implementation. The recording system is intended to solve the problems arising from the users' inability to reproduce the results. It also makes makes it possible for the users to export, expand or share their simulations. While one image can be viewed as the final generated pattern, it is important to let the users save the simulation in a way that they can expand or change later. As stated above, because in the current implementations the simulation keeps running at all times, it is almost impossible to reproduce the result. So, we solve this problem by adding a way to save the whole simulation instead of the final result. Using this in combination with the timeline feature, not only the users can share their creations, but also they can look at how other users create these results.
In this implementation, the system first simulates the whole timeline of 100 frames. Each frame contains the trail map (which shows the values of each pixel in that frame, showing particles and their trails) and a list of particles with a heading direction and a position. From this data, the timeline shows a number of trail maps in a smaller scale. Upon changing any of the parameters, the frames are calculated again and the timeline changes after a small pause. Additionally, user can pause the simulation in this version. As explained above, this is important because the user can now change parameters, see the results, and revert them. We also added a "Start Over" button, just because two of the parameters (changing the simulation canvas size and the number of particles) can't be modified in the middle of simulation.
The easiest way to run the simulation is to just use the glitch page. You can view the source code in glitch too. Using the remix button, you can change the source code and see the results.
These are all the results created by the system. This section will be updated to include the recording files when we add the recording feature.