Double Buffering for Visualization
The core of Fatum is driven by an architecture based on double buffering for visualization. It is inspired by a common computer graphics technique called double buffering (see Wikipedia).
Two buffers for two states
The properties for the elements of the visualization in Fatum are stored in two buffers : a front buffer and a back buffer.
- The front buffer stores the current state of the visualization.
- The back buffer stores the next visualization state to animate to.
At first, values are changed in the back buffer only.
When you call animate()
, Fatum begins an animation using the linear interpolation between the values of the front and back buffers.
It is also possible to update the visualization state using swap()
. This will only exchange the buffers without any animation.
A write buffer
A third buffer is added to store your modifications. This avoids modifying the visualization states during animation. When the animation starts, the write buffer is copied to the back buffer.