Para Bellum

Para Bellum was launched on Monday, Feb. 7 on Art Blocks Curated.

Para Bellum* is about the conflict of emotion and gut instinct versus logic and reason.
Emotions are portrayed by color fields; logic is illustrated by words.
These two forces are fighting for dominance over a poster canvas.

Under the hood, ​​Para Bellum utilizes a thin language engine that was trained by reading dozens of books about rebellion and anarchy to generate (mostly) non-existent English phrases. An on-chain embedded font is used to render the familiar, readable letter shapes against the abstract fuzzy color fields.

* Para Bellum is half of the Latin phrase Si vis pacem, para bellum. If you want peace, prepare for war.

Please note, the examples shown here were produced at the testing stages of the system. When the project goes live, it may produce completely different results.




Color Fields

Color field painting is a style of abstract painting that emerged in New York City during the 1940s and 1950s (see the Wikipedia entry). If you’ve ever closely witnessed a Rothko painting, you’ll understand why I’ve chosen this style to convey the emotional part of the work.

Rothko’s canvases are huge, and meant to fill your entire visual field, and their color transitions are buzzing. Moving into the digital realm, I had to push the colors further into the buzzing realm to try to heighten the effect lost when giving up the physical.

To stay true to the digital nature of the work, sometimes the engine will completely forgo the brushed texture, and will choose instead to draw the fields from uniform plain colored rectangles.

The composition will start with a single color rectangle. This rectangle will now decide if it wants to split or grow. To maintain harmony, the split/grow ratios are chosen from a determined list, so it could be half/twice the size or by a golden ratio.

When the fields end their growing-splitting process, some of the rectangles can choose to shrink in size, to allow for some interesting negative space to appear.

Grow + shrink
Grow, no texture
Split + shrink
Split + shrink


For engaging with the more advanced Neocortex parts of the viewer’s brain, Para Bellum‘s second half is a language engine. For this purpose, I was looking for an infinite stream of words, that sound almost like (but not quite) English. Since the whole code is going to fit on-chain, I quickly skipped modern-day language generators that are simply too big to fit (and also, increasingly make too much sense, I wanted it to be more of a riddle) and opted instead to use a 1st-order Markov Chain.

Illustrated here is a Markov Chain for the letters a,b,c (the full chain has all the English letters plus space). We start with a random letter (let’s pick “a”), and we then throw a dice to figure out what the next letter in our word will be. In this particular chain, we have a 20% chance to get a “b” as our next letter, a 70% chance to get a “c”, and 10% for a double-a.

Anarchy, rebellion and mystical occurrences

To get the actual correct probabilities for rolling each letter, the chain has to be trained on a large corpus of English text. Since this work is about struggle, I carefully chose a nice selection of literature about Anarchy and Rebellion from around the net.

While, by design, it will seldom produce a meaningful word – and if it does produce one, do interpret it carefully as a mystical occurence – it is still influenced by the violent ideas it was fed, to give it a fighting chance against the color fields.

Rendering letters

To render the words consistently, and independent of the viewer’s display, Para Bellum uses a modified Inter font. Inter is, to quote its creator, the talented Rasmus Andersson “a workhorse of a typeface that is accessible to everyone in the world”. It resembles, and somewhat inspired by Helvetica, which give the whole output a Swiss poster vibe.

The font itself is embedded into Para Bellum’s p5.js code which is all residing on the Etherium Blockchain and cannot import external files. If there’s interest in the community (tweet me), I’d be happy to write a tutorial about converting fonts to p5.js code.


Mixing it all up

With the color fields and language engine in place, the code now pits them together on the canvas, in many different schemes and compositions. Here are some example from the Ropsten tests, and I hope the Gods of randomness will provide us with many pleasent surprises and intriguing struggles.