**Cargo** is a series of abstract paintings created with animated pixels that are constantly moving without ever repeating. It is painting new patterns on the fly in between macro and micro compositions with a duality of different rhythms and continuous synchronicity. The focus is alternately drawn to detail, then distracted by movement elsewhere and caught up in the overall picture. This rhythm turns the visual complexity into an active experience.
ASDF: “My work should offer individual ways of interpretation, or even allow one to find some self in it. It wants to inspire some thoughts about dynamics and systemics and also just mesmerize the audience, capture them in a little fantasy, or just for a brief moment in a state of satisfaction.”
Cargo is the latest work in Kim Asendorf’s ongoing work series of pixel pattern animations. Starting with [monogrid](https://monogrid.xyz) in 2021, and [Sabotage](https://sabotage.kim) in 2022, both highly conceptual series, therefore visually very raw and unimaginable. Asendorf discovered various interesting details in these works, which eventually became fundamental in his artistic expression.
Cargo is a real time WebGL software written in JavaScript and GLSL. At its core is a flip-flop render buffer, also known as feedback buffer. That means the animation is alternately rendered in two different frame buffers. This technique allows the usage of the previous frame of the animation as an asset in the current rendering, which allows for a series of reactive animation strategies.
An initial image with variable structures and patterns is rendered and subsequently loaded into the frame buffer. A fragment shader is used to apply a set of animation algorithms that make the pixel move and a set of reset algorithms that constantly try to recreate the initial image. The final animation happens in selected containers and is always a combination of two algorithms, one from each set. By regularly animating and partially resetting the pixels, a wide range of movement patterns appear.
Cargo is a responsive and pixel exact artwork and it will fill the screen on any display size, thus changing the total amount of used pixels accordingly. This results in the fact that the detail level in the artwork is changing depending on the dimensions. The overall structure is consistently stretching the x and y axis independently. Single containers scale along the dimensions and offer more pixels to render the patterns at a larger representation compared to a smaller representation. This behavior leads to a brilliance, perfect pixels, a crisp rendering with nothing like compression artifacts.
This software includes the [simplex noise](https://github.com/jwagner/simplex-noise.js) JavaScript implementation by Jonas Wagner and the [cellular noise](https://github.com/stegu/webgl-noise) GLSL code by Stefan Gustavson.