May 5, 2018No Comments

An Exhibition of Lost Paintings

An Exhibition of Lost Paintings is a continuation of week2's Artwork Label Generator.



In Artwork Label Generator, I wrote different vocabulary lists for objects and expressions by my own. This time, I actively use existing sets in Corpora, in order to create more diverse and unpredictable descriptions than previous ones.

At the same time, I brought minimum amount of lists written by me to add bit more control over the description; limiting the type of outcome to only paintings was also for the same reason.

Similar with the previous artwork label generator, An exhibition of Lost Paintings also involves many random choices. However, this time it will try to make reasonable storyline using synonyms and “fixed” random choices in certain parts.

The “fixed” random choice will be used to generate something that must be consistent over a painting. For example, if it’s a portrait painting: the main character in the painting should be mentioned consistently in the description. If the character has synonyms to refer, they will be fully used as well. However, such aspects as adjectives, verbs, and events don’t have to be repeated, and rather encouraged to be randomized every moment.

Therefore, those “fixed” random choices only run once in every painting, while many other random choices run in every sentence and word. In this way, it can make a coherent shape of art description without losing surprise of unexpected randomness.

  • Codes for generating main title, introduction, and 6 random paintings. The painting can be either still life, landscape, or portrait.

  • Codes for description and chained words (followed by main character).

  • Codes for still life painting.

  • Codes for landscape painting.

  • Codes for portrait painting.

  • Display everything in string, with goodbye message.

The following slides are one set of generated text into a presentation format. They're bit more elaborated along with some use of imagery.

GitHub link


May 5, 2018No Comments

Makeup Guru

A makeup tutorial generator using xkcd color vectors. Original text is from one of the tutorials in Deck of Scarlet.

In order to generate makeup tutorial, I used two data resources from Corpora: xkcd color data for shadow colors, and Pokemon name list for the brand name of shadow brush.

Because the part that is most actively using color vocabulary in many makeup tutorials is where the person applies shadow, I'll pick the part that she introduces this awesome shadow product - and collect 6 similar colors to it (there's some integer typo in the screenshots; it should be 6, not 10).

Here is the output:

Another output:


So, I’m going to start off the eyeshadow called, Soft blue.
It’s this lavender blue shade right here.
And using a flat brush, I will apply it all over my eyelid area.
Next, I’m switching to a smaller blending brush.
This is the Pansage 708 brush, and I’ll use it to blend out the edges of that periwinkle shade into the crease and, you know, make it look really nice and seamless.
And see how that eyeshadow kind of blended into more of like a cornflower blue shade?
When it’s fading, it looks more perrywinkle rather than dodger blue. It’s really nice.
It looks like I used many different colors when I just used one single eyeshadow.


April 8, 20181 Comment

Letter from the Trial

A rewriting generator of the letter from Alice in Wonderland, Chapter 12. The original letter itself is a poem full of pronouns, plays again with the ambiguity of pronouns. In the story, it was used as an item that proves the king's unjust and poor reasoning. Using that ambiguity, the generator will realign the original poem with shmarkov and create new ones.

To make them in similar structure, I put indent in every line with even order.

... and put empty line between every stanza.

During the modification, I tried to figure out a natural way to adjust special characters, but ended up being not so successful. Furthermore, I came to a conclusion that only controlling special characters won't make the poem more natural. Probably just removing them all might be a better idea?


March 9, 2018No Comments

And Our Faces, My Heart, Brief As Photos

An acrostic poem generator using some existing peoms from And our faces, my heart, brief as photos by John Berger.

Inporting 4 different poems: Leaving, Waterfront, A Forest I Knew, and Factory by John Berger; then combine them as one list. Initially I started with only a single poem, but soon I realized that an acrostic generator requires an adequate amount of source text, especially because I'm collecting lines, not words.

Now the list contains all lines from four different poems. The following code checks the first letter [0] in each line, and creates a dictionary of lines in alphabetical order.

The dictionary is completed, although it's still missing some letters (those ones won't be available to form the poem). Then, set up a word that will be the seed: first letters of each line. Once the seed word is decided, the next step is going through initials{} dictionary and check if it contains any sentence starting with the same letter. Then, it will choose randomly among the list of sentences, if there are more than one.




March 9, 2018No Comments

Affix in Medical Terminology

Some experiment with lists and lines with affix in medical terminology. The original list and description are from List of medical roots, suffixes and prefixes in Wikipedia.

First Experiment


Second Experiment



February 9, 2018No Comments

Artwork Label Generator

This generator creates fake titles and descriptions for non-existing work of art. Its built based on Love Letter Generator in the Implementations of early and well-known poetry generators by Allison Parrish.


  • The vocabulary list is based on words that I frequently found in general artwork titles and descriptions.
  • It will be even more interesting if I build the vocabulary list based on actually calculated frequency of using certain words.
  • My least favorite part was repeating words in different sentences despite of its randomness.
  • Its code is not very different from the original Love Letter Generator code I based on, and I think that's what makes it problematic because the repetition of words are rather natural in form of letter, while it's not in formal description.