Live Texture➠Midterm Report

Following the capstone instruction, I adopt Gantt Chart which is really helpful in time and project management. Here I attach the latest version of my Gantt Chart
Design, Production and Prototyping
My capstone is compose of data visualization, machine knitting, and exhibition.
The user testing in the last 10 days concludes that the heat map or the stacked bar chart perform better at displaying the worldwide births and deaths than the stacked line chart. Users could obtain more information from the numbers and more sentimental feelings from the black-and-white contrast in these two data visualization.
In the Week of Mar 18, the focus of production moves from data visualization to machine knitting, as the machine had been delivered. The physical production could boil down to 3 stages: understanding how the machine works, hacking it with the open source, and automatization.
The machine Brother KH-930 was delivered with two thick books, one of which is an operation manual and the other is a pattern book. The good thing is that I scheduled enough time to understand the machine by tackling it. The learning curve takes as much time as I expected.
I successfully assembled the machine, following the manual. Nonetheless, I encountered a glitch on Mar 14, which took me a whole day to solve. When I tested out the plain knitting function of the machine, I stepped forward to turn on the machine to knit the built-in patterns that, in contrast to plain knitting, requires electronic control nor power. However, it kept blinking the number 888 on the screen. The manual does not list a solution to such problem. I googled and found an e-manual of another version on According to the e-manual the blinking signals a CPU error. The manual also provides a way to fix it with a warning that this step clears all the memories. It halted me because the manual does not point out clearly what kind of memories would be cleared. Inspecific, the memories of the 500 built-in patterns, or that of the user input patterns? As I could not risk losing the built-in patterns, I went to another round of searching with different key words. Finally, somewhere in a old forum said that the step does not have an effect on the built-in patterns. The problem was solved without risk, after rounds and rounds of googling. I narrated the encountering in this report because through this glitch-solving process, I realized that there would be much difficulty to gather the information of such a vintage machine whose production has been discontinued since 30 years ago. In contrast to most of nowadays documentation that are searchable, the e-manual is a scan version of a physical copy and the solution from a user’s answer written many years ago in an old forum.
Apart from tackling the machine, I also read a book The Knitting Technology in order to get familiar with the analog form — knitted fabrics. The book, published in 1980s, covers many related topics including knitting terminology and knitting machine, for which it is worth reading and conducive to my learning about knitting.
The Knitting Patterns
The machine supports a dozen of knitting stitches and up to 500 built-in patterns. For each type of stitch, it requires a set of configuration steps — to operate the buttons and rotary knobs to the right position on the carriage. Sometimes it needs two carriages to work together. It matters to me to understand not only what a type of stitch pattern looks like, but also what operation the machine requires for such type of knitting.
The goal is to explore the possibility of integrating the texture of knitted fabrics into data visualization, which entitles the output object a third dimensional of attributes. For example. the concave or convex surface could represent a dimension of data. Here I list in turn the stitches I have experimented. Tuck Stitch requires some needles to skip the knitting loop for a few rows, so that the tense of the yarns on the skipped needles causes the loops nearby to tuck together. Skip Stitch also requires some needles to skip, whereas the output pattern is composed of holes. Lace, Thread Lace and Fine Lace patterns look similar and are always remixed. It especially entangles one thinner yarn as the pattern and a thicker one as background so that the thickness of the yarns sharpens the contrast of the color. I have not tried the Fair Isle Pattern. According to the description it is simply a two-colored pattern without difference in stitches or texture. I would further experiment the Weaving Pattern and Intarsia Pattern.
At this stage, it is for sure that the output fabric would take black and white as the data visualization marks. In my data visualization design, the third color is mainly used as a background and border to be distinguished from black and white. Nonetheless, the project no longer considers to use more than 2 colors because it requires manual operation to change to a third color. Instead, the project seeks to implement a knitted texture so that viewers can tell the pattern from the background according to the texture. For example, the pattern is knitted to be convex and the background concave. The next step would be to figure out the right pattern, and hack the machine to take the user input images, while I am waiting for PCB board electronic components to be delivered.
The open source, AYAB, controls the knitting machine digitally through Arduino and an originally invented Arduino shield. It provides the schematics and the bill of materials to produce the shield. I was not worried at all about find a factory to produce the shield, aka a PCB board. However, when I sent the package that I downloaded from Github to a factory, they rejected with the reason that the files are not well organized. What is more, after I placed the order from another factory, it printed the wrong version of the Arduino. It turned out that I was confused about the PCB files and therefore sent the wrong version myself. It occurred to me that even I probably would not need to design a PCB board for this project, I should at least know the basic of PCB in order to communicate with the factory. Here I express my appreciation to Rudy and Nicholas who answered me a lot of questions with their expertise and patience. I ended up ordering again and got the PCB board of the right version
Even in the world’s factory, I failed to find some counterparts of the electronic components that are required in the bill of materials. Fortunately, one Taobao vender provides oversea purchasing of the electronic components. Therefore, the purchasing costed more time than I scheduled.

Final Project Documentation: Generated Poems –Moma Collection

See my proposal here.


It seems to me that artwork caption is a double sword for gallery persons and museum fans. A professional caption stresses highlight of the artwork, whereas some over-grandiloquent


The generated poems are a remix of artwork captions from the MOMA website. MOMA kindly provides a glossary of art terms. Click one term, it goes to the homepage of the term which writes a short introduction, i.e. this is the links of Abstract Expressionism. Below it are some representative artworks associated with the terms.

Given the rich source, I decide it better to generate one poem for one term, so that the outputs may different in the word choices and may reflect the concern and interest on the topic. For one term, the source text is the sum of all the introduction to the term and to all works.


  1. Save source text by scrapping with dynamic links.

1.1 Scrap the link for each term

1.2 In the homepage of a term, collect the introduction paragraph and save it to local files



1.3 Scrap the link for each representative artwork

1.4 In the page of the artwork, collect the paragraph of caption and save it to local files.

2. Analyze the source to figure out most frequent words and all possible rhymes.




W11_Response: Eliza — a computational program

The paper on Eliza—the very first chatbot based on Natural Language Communication reveals a detailed journey of building a chatbot. While chatbot is probably no longer a hit in this era packed with high-tech words like AI and Big data, it is imaginable that Eliza was revolutionary back in 1996, the year I was just born. In the paper, the author Joseph Weizenbaum explains the algorithm (i.e. the steps and data structures) that enables Eliza to respond to user input with regard to the context. To my surprise, some of the steps seem simple but smart (a.k.a. even I could kindof understand the instruction). One of the foundational steps is to specify the key word in the input and re-construct the sentence in another form with the context and then throw it back to users, which makes Eliza seem that it already understands what you are saying.

Two facts the paper mentioned are worth discussing. One is the difference of user’s trust in Eliza as a human caused by whether they are told about the truth of Eliza or not. The author states that back then some couldn’t believe that Eliza is not human. My experience of talking to Eliza, with the awareness that it is a chatbot in advance, consolidates my perception of its mechanical essence and leads me to give a fast judgement about its intelligence. With the generalization of the application of AI in servicing chatbot, people’s expectation of chatbot keeps growing. It is reasonable that what used to amaze people becomes normal and common.

The other is that the author precisely compares the nature of such conversation to the one with psychiatrists. Eliza is designed to throw back heuristic questions. Without my knowing its conversation pattern previously, the chatting pattern that Eliza keeps popping up questions tired me after a few rounds of conversation. However, some users might think Eliza intelligent just because these question it asks. In this case, it is user’s subjective perception of Eliza as a sympathetic listener that makes it look more intelligent, despite its limited analysis and reply pattern.

Week12: Wechat Public Account Bot

Scan the QR code with Wechat to follow my public account(the bot for this assignment)
The Wechat Public Account gives output according to whether users’s input is numeric or not.
If it is numeric and the number is between 1 and 12, the program returns your constellation’s horoscope today by scrapping the content from a website for astrology, just called
If you type in a word or sentence, the program goes through the grandiloquent dictionary with the input string, instead of giving you horoscope. In this case, the reply is a random word from grandiloquent dictionary that has the same initial letter with the first word you type in.
For this assignment I opened this public account and built a simple framework in Python. The background program is pushed to the SAE sever.  SAE is Sina weibo’s cloud service that provides a free solution to wechat public account development. Some advantages are that SAE has built-in python 2.7 and SAE is accessible to git, github.   I went through the tutorial (in Chinese) on how to do the background development for wechat public account with SAE. It took a lot of time to get adapted to the python framework although the tutorial is quite clear.

Week12C2: Response to For Spambots, Flattery Gets You Everywhere

The article points out an interesting fact that is often dismissed — while spambots are usually unwanted, they are the favorite of social media users whose follower and like numbers heavily depend on these bots. It is true that people hate bots if they spread litter messages. However if bots are well-programmed enough to feed you readable, if not interesting, posts, users express way less resentment on them. To make themselves survive on the Internet, bots are even added personalities that enable them to function as dynamic as real users.
As previous readings try to warn us, what makes me watch out is not the phenomenon as another proof of technology invasion, but of social privilege brought by such abuse of technology. What I see in frequent reports of bots is a increasing gap between two types of users —one that produces, regardless of the result of its product, and the other that merely consumes. According to long tail on the social media, the sum of the attention 99% users get might be less than half of those of top 1% users. Such comparison might incentivize the 1% to keep producing posts, photos and videos, whereas discouraging the rest and making them produce less. The role of bots in such a online society is an accelerator to grasp more attention for the users who can use them. Whether the intention of developer is malicious or not, the huge gap is much likely to reduce the equality regarding the right of speech which as a unique trait of early Internet is engrained in users’ perception. In other words, while some users without any basic background in bots may still consider these bot accounts as some weirdly interesting persons, others are able to manipulate more than 15% of users with bots.

Week11 Response: Politicians’s new favorite: Bots

The report How Twitter Bots are Shaping our Election reveals that politician these days invest heavily on social media bots to boost their popularity. It puts in doubt the significance of Social Media as a device to advocate democracy. Actually, manipulating social media is not the only case in which bots are applied into political activities. The evolvement of media evolvement is incentivized by growth of political propaganda needs.
Another article DONALD TRUMP’S TWITTER BOTS ARE A FAKE NEWS ARMY TAKING OVER FACTS confirms the seriousness of the fact. 
While the report ends with the concern that “These developments foreshadow a future where bots will be intimately interwoven with everyday social interaction online ”, such prediction has become reality. It reminds me of a hypothetical questions: what if most social media users are actually bots that keep posting tedious repetitive contents? The question was brought up in an info visualization class I took when the topic was about detecting abnormal user behavior based on average of big data. If bots occupied the social media environment, then ” the average user behavior” loses its meaning as it was greatly decided by abnormal behaviors. 
Nonetheless, as the report mentions that technology companies and dedicating to enhance user experience using bots. We shall not forget one advantage of bots that their features are able save labors from routine work such as FAQ and after-sale service.

Week11 Response

After chatting with all the 5 bots, I have to say that it is really an experience. Their intelligence wasn’t as high as I expected, but considering the year when they were created, it is impressive. Especially Eliza, created in 1950s, was marked as the first program able to do natural language processing.

The reasons they are probably not qualified enough to pass Turing test boil down to several points: 1. The lack of long term memory. Given a similar input twice, they might fail to recall your input before and instead ask you the same question.   2. Anticipation of repetition. Their replies start to repeat after several rounds of conversation. You kinda start to get the sense of what they would say in response to certain inputs.  3. Topic divergence. It is a symptom of lack of long-term memory as well. My input might trigger a totally irrelevant topic that might be preset in the bot’s database.

A screenshot for a creepy reply:


Response to Bots to punch up

Speaking of chatbots, it is  definitely associated with Artificial Intelligence. “Bots to punch up” raises an thought-provoking point about the situation of making robots as an extension of your ethic value. A best example the author illustrated is the difference between two twitter accounts @NeedaDebitCard and @CancelThatCard. They basically do the same thing — find out those who twitter the photo of their debit card. While the former expose the twitter owner to danger by retwitting the post, the later tries to protect these teenagers by replying them.

Regardless of legality of the bot @NeedaDebitCard, the author expressed his concern about the potential malice and improper joke of the bot’s owner when creating the bot. I would prefer a law system to judge the behavior of bots or any programs that might have significant influence on people.





Final Project Proposal


It seems to me that artwork caption is a double sword for gallery persons and museum fans. A professional caption stresses highlight of the artwork, whereas some over-grandiloquent captions try every means to brag about the profoundness that barely exists. may end up confusing and boring visitors.
My original idea is to generate spam-like grandiloquent artwork caption texts as a means of satire. But there is no good revenging on the society by filling it with more bullshits. So I decide to try the other way — to generate poems that reflect the indispensable kernel of artwork, either existing one or imaginative ones by users.


A poem as artwork caption with a certain template
Its content is decided by input keywords, such as “black strokes” “colorful squares”, doctrines, subject.
Its output should be able to describe the color, stroke, doctrine, emotion and other highlights of painting.
It rhymes every several rows.
Less than one page


Source text: Metropolitan Museum website

Analyze: Need more instruction, probably context-free grammar?

Rhyme: Python module to analyze syllables, pronunciation