Last year I went right over the top for National Novel Generating Month and wrote a dynastic succession simulator and blogged about it at length. Where did I get the time for that, I find myself asking.

This year I made something simpler. Formations is a parody or homage to a certain style of abstract descriptive writing which one finds in both the French nouveau roman and science fiction, in which, for different reasons, the textual world is reduced to the interactions of geometric forms. The apotheosis of this style is the description of the planetary ocean in the original Polish-to-French-to-English translation of Stanslaw Lem's Solaris, which are somehow awe-inspiring and ridiculous at the same time.

Formations is just ridiculous. I wrote it using the same home-grown text generator library I used for Annales, and hacked on some extremely dodgy verb inflection at the last minute. The vocabulary lists were generated with - this is a script I've used for many of my Twitter bots. Given a general term like "shape", it returns all of that terms's hyponyms, or more specific instantiations (like "triangle" or "square") from the WordNet lexicon via the Python Natural Language Toolkit, NLTK.

The code itself is a simple event loop with a collection of objects which appear, do things to one another and disappear.

The source code is here and the TextGen library is available here. I really need to clean up and document TextGen (and add part-of-speeh tagging, and inflected vocab lists, and, and...)

The outside clinch

An ultramarine cleft decorated with azure powder emanates above a scarlet cloud. The ultramarine cleft withdraws. The outside clinch reveals many thousands of vert circles with maroon tiles.

The purpure outside clinch disappears. The vert circles dissipate.

The azure crystal ball

The azure crystal ball leaves. They dwindle.

The sinopis bases

An alabaster fairy ring flecked with vert slime comes behind a mauve cloud with argent crystals and bordered in ocher crenellations. The bases hold the fairy ring. The fairy ring disgorges thirty maroon crystal balls speckled with polychrome slime. From the fairy ring blossom nineteen argent sinuosities speckled with or powder. From the argent sinuosities develop fourteen sable mothballs crowded with or dust. The alabaster fairy ring repels the argent sinuosities. It nudges the sinuosities. The sinopis bases disappear. They twist the sable mothballs. From the maroon crystal balls grow ninety polychrome true anomalies with purpure sand. The mothballs dwindle. A verdigris hemisphere crowded with scarlet inlay comes above an ocher haze crowded with maroon iridescence and bordered in sepia curls. They leave. It abides.

The argent sinuosities reveal fourteen scarlet Star of Davids flecked with tan tiles. The argent sinuosities pulsate. From it grows a sable picture plane with or dots. From the sable picture plane develop nine anil zigzags decorated with mauve bumps. Nine quercitron tetrahedrons speckled with amber stipples grow within an alabaster fog with ultramarine slime and surrounded with sanguine dentelles. From them develops a vermillion longitude with quercitron jewels. From the fairy ring blossom seven vermillion major lobes bearing alabaster spots. The scarlet Star of Davids disappear.

The longitude obscures the tetrahedrons. The crystal balls penetrate the sable picture plane.

They withdraw. They influence the fairy ring. They withdraw.

From the picture plane develop five polychrome tangent planes with purpure lozenges. From the tangent planes extrudes an azure diastema bearing mauve ichor. It impales the polychrome tangent planes. The argent sinuosities vanish. The maroon crystal balls dwindle. The vermillion longitude attacks the polychrome tangent planes. The polychrome tangent planes produce an azure bolus bearing orange moire. The fairy ring dissipates.