The GraphicWord

by Norman T. Thornton
April 24, 2008

presented by

Abstract   Introduction   Instructions   Options    Share  


A geometric graph for input words is generated under various options using the GraphicWord Tool by Norman T. Thornton presented by Use the tool to explore visual language geometries for artistic or linguistic purposes, gaining a geometrized vocabulary per 3-space. For instance, automatically investigate poetry geometrically.


contact us


The GraphicWord Tool versions the Geometric Plane Sort and the Geometric Line Sort functions of Word Transformation Poetics. The geometric point, line and plane are graphed for input words per various options using the GraphicWord Tool. To explore graphic language, one can simply enter text and press the "create" button to begin to gain a geometrized vocabulary or one can become more expressive using various items in the "Options" section.

Consider words as compacted geometry this program unpacks --- to spacial coordinates, as if sorting lettered music notes to a music staff -- every letter assigned to vertical and horizontal position on the staff (cooridinate system). Yet, this program goes further since instead of the 2-space of a sheet music staff, the program applies in the 3-space of a virtual environment to create point (character), line and plane forms.

Consider each letter is a point. The point coordinates equate to the letter's relative alphabetic position and relative position within a particular word relative to a string of text. The alphabetic value is plotted on the y-axis (with "a" at the bottom of the write line and "z" at the top). The sequential value is plotted as the x-axis (the leftmost letter the least of the x-axis and the rightmost letter the greatest of the x-axis). The z-axis is used to relegate word separation. The more distant a word is from the beginning of the word string, the more distant the word is on the z-axis. Typically, the points, if connected, are then rendered as either a line or as a plane. If rendered and not connected, the points are rendered as letters. In other words, related to a coordinate system, the words become figures (lines, planes or labeled points) as a consequence of the characters they contain and the placement of the figures is a consequence of character placement sequentially within the word. Seeing it is understanding it. See the examples below.

Although in geometry the minimum case for a line segment is 2 points and the minimum case for a plane is 3 points, in this program's implementation the required number of points (letters in a word) is 3. Any word less than 3 letters will not display. Further, non-letter characters (the hyphen and the apostrophe) are word components treated as letters except special characters can have their y-axis values assigned as equivalent to a particular letter. For instance, the letter "z" is the highest y-axis point. Assigning the apostrophe height attribute to "z" means every apostrophe will also exist at the highest point on the y-axis. All words are normalized to lowercase.

Input text is rendered as either letters, lines, planes or some combination referenced as the Figure Style. As of  at least Cortona 6 (in the year 2011), the rendering does not have Background Urls for assigning a Front Image (frontUrl), Back Image, etc.. However, there is an option for assigning an image to all word planes. Further, sound is assignable as a Background Url "Option". Thus, you can assign pictures and music from the internet to your rendering. In addition, the Figure Style allows selecting the figure's line and plane opacity with a Transparency option.

You can navigate through your rendered text by pressing "PgUp" and "PgDn" on your keyboard. Rapidly doing so will zoom you through the text. If you right-mouse click on the scene, you will see a menu listing "Viewpoint" as an option. Select Viewpoint for a rendered word listing. You will likely find using fewer words makes a stronger impression. However, simply pouring in many words from nearly any source will quickly broaden your geometrized vocabulary. With practice, you will become versed in the visual, able to picture the geometry before you use a word and thus enable yourself to write expressive text with immediacy, with or without the tool.

Keep in mind, although this tool allows rendering art works (poetic and otherwise), you are invited to use it as one tool among many in your tool array for producing works. For instance, consider using the "PrtSc" key to snapshot the screen, save each snapshot to a paint program, and create a sequence animation. Aside from art, those with linguistic interest might find the tool useful for lexical study.

Examine these examples:

Example 1:

Example 1 was  achieved by combining the words "zoom moon noon" as "zoomoonoon", setting the frontUrl to an image from the internet, and the word plane to an image from the internet. Though you won't want to make excessively long words (perhaps interferring with the Viewpoint), you can makeup words. To understand the y-axis placement of letters, note that "z" is high on the y-axis whereas "m" is lower on the y-axis and all the "o" letters are on the same level of the y-axis.  Update note: As of  at least Cortona 6 (in the year 2011), the rendering does not have Background Urls.  Alternatively,  to create background coloration, you can use a GradientBackground node as found in the User Script section of Options.  The default gradient is from blue (0 0 1) to red (1 0 0), that is RGB format thus light blue is 0 0 0.01 and full blue is 0 0 1 whereas light red is 0.01 0 0 and full red is 1 0 0.

Example 2:

Example 2 might well be entitled The Silent Echo. The effect was achieved by entering the text "tomorrow tomorrow tomorrow", selecting "randomize letters, planes, lines" as the Figure Style and repeating the creation until occuring one I wanted to keep. To understand placements on the z-axis , note each word is on a differnt place on the z-axis and the further the word in the word sequence, the further the word on the z-axis.

Example 3:

Example 3 demonstrates that palindromes are useful material for symetric effect. However, you can simply write any word backwards. Predict this graph "alcoholism msilohocla".

Example 4:

Example 4, among other things, demonstrates simplicity. Instead of "say yes", can you visualize it as "sayes"? Using the tool, test your prediction. Thus, the tool is usable as a game. Either guess the word of a non-labeled (no letter showing) figure or guess the shape of a figure the tool will render as a particular word.

Example 5.1: Example 5.2: Example 5.3: Example 5.4:

Example 5 demonstrates a series suggesting animation. It was achieved by randomizing the Figure Style.

Example 6:

Example 6 is a twisted sense of humor, demonstrates word play particularly emphasised by the geometry.

Example 7:

Example 7 is obviously graphic language. And, just as obvious each letter is placed on the x-axis relative to its position in the strung words.

Of course, yours will exhibit better than any of these!



Of vowels, it is evident half are at the y-axis bottom and half at the top. Thus, in English, "aei" are the bottom vowels , "ouy" are the top vowels and "eiou" are the middle vowels. This suggest some figure strategy. Since

then clearly vowels are a primary control for apportioning a word within a particular triadic (bottom, middle or top) section of the y-axis. Thus, words with consonants

Consequently, consider the anagrams for any word W in a particular triadic T as a means to keep words within T. An anagram (such as "now" and "won") has the additonal benifit of providing harmony (shape similarity) and variation (commonality yet differencing) However, an anagram such as "message" and "sea gems" has common letters, stays within the same triadic and, yet, is highly differentiated as to the geometric figure especially as planes.

Repeatedly crossing a triadic boundary tends to cause erratic or large oscillation. For instance, input a panagram (a sentence that has all the letters of the alphebet).

It is a bit like learning to play a musical instrument. With practice, you begin to learn chords and pick out melodies. Eventually, one can learn to compose instaneniously or appreciate the compositions of others.

(Back to tool bar)

Character Filter Inclusive
Given word group G where g1 to gn are the ordered set of G elements (words) and filter F where f1 to fm  are the elements (characters) of F, let the set R equal the result where filter F eliminates any g that does not have all the F elements and only the F elements.   Thus,
Let F be the Character Filter Inclusive.  Use the Character Filter Inclusive to confine words to graph regions of the y-axis.

Character Filter Exclusive

Given word group G where g1 to gn are the ordered set of G elements (words) and filter F where f1 to fm are the elements (characters) of F, let the set R equal the result where filter F eliminates any g that has any of the F elements. Thus,

  • if G{ man in air} and F{ a, n, m} then R{ } --- since every word has at least one of the forbidden characters of the filter the result R is empty
  • if G{how many in air} and F{a, n, m} then R{ how } --- since only "how" has none of the forbidden characters of the filter only "how" qualifies for R

Let F be the Character Filter Exclusive (CFE), alias Forbidden Character Filter. Use the Character Filter Exclusive to confine words to graph regions of the y-axis of a GraphicWord Poetic. See the Character Filter Inclusive for a CFI to CFE comparision .

Distance Filter
Essentially, one specifies the exact distance required between any two characters and the sequence of the distances.
Given word group G where g1 to gn are the ordered set of G elements (characters for a word) and filter F where f1 to fm  are the ordered set of elements (distances for letter pairs represented by a distance prototype) of F, let the set R equal the result where filter F eliminates any g that does not have all the F elements and only the F elements.   Thus,
Let F be the Distance Filter.  Use the Distance Filter to discover words that create the same pattern, yet with different spellings.  Since only the distance is measured and not whether the difference between the two measures provides a slope up or down, the Distance Filter also discovers words that are inverted patterns of each other.  For example, say word X1 is comprised of two characters, p and q in that order and say word X2 is comprised of the same two characters, yet in reverse order.  The distance between p and q remains the same, yet if p q is an upward slope, q p is the inverse, a downward slope and therefore X1 and X2 are the inverse of each other.
Slope Filter
The Slope Filter specifies the slope between any two characters.
Motif Development
Use a combination of Character, Distance and Slope filters to manage motif selection and motif placement from an otherwise unsorted word array (input text) where the Character Filter manages the motif's domain on the y-axis, the Distance Filter manages the motif's curvature (hills and dells) and the Slope Filter manages the motif's slope direction.  Thus, the artist gains control of unsorted text, discovers graphic word language for new works.

(Back to tool bar)


Mountain Language
The "Mountain" of Mountain Language Poetics references  the forming of mountain shapes via the GraphicWord Tool of GrapicWord Poetics.
Given the string "aza" as a GraphicWord Tool input, a triangle would form with "z" as the peak and each "a" as opposite points on the base. Thus given two letters L1 and L2, L1 < L2 if L1 is not further along on the alphabet than L2. Given a region R1 and R2, R1 < R2 if all L of R1< all L of R2.  Then, to form a mountain, Rx < Ry> Rz.  Where L of R are identical, R is level. 
Region length is the letter quantity for the region.   A region of two letters is length 2. The string "aza" is a region of length 3.  The string "aazaa" is a region of length 5.  To form a square wave,  Rx < Ry> Rz  where each R is the same  length, >= 2.  To form a triangle wave,  Rx < Ry> Rz  where each R is the same length, = 1.  In general, the structure Rx < Ry> Rz  is termed a peak set.
We can use these basic equalities to form word abstractions that specify mountain ranges.  For example,   R1 < R2 > R3  <  R4 < R5 > R6  (an inter-regional equality relation) specifies a mountain range where the peaks within the peak sets are R2 and R5 and the letters of all regions must conform to the inter-regional equality relation.    Note that we say "the peaks within the peak sets" as the peaks within the peak set are not necessarily the tallest peaks in the mountain range since if  alphabetic letter positions evaluate to:
         R1 = 5, R2  = 6, R3 = 3, R4 = 4,   R5 =  8,  R6  = 7
then R1 < R2 > R3  <  R4 < R5 > R6  is:
5 < 6 > 3 < 4 < 8 > 7
makes it certain that R2 of peak set R1 < R2 > R3 is less than R5 of peak set R4 < R5 > R6  and less than R6 of peak set R4 < R5 > R6.  Thus,
        ( R1 < R2 > R3  ) < ( R4 < R5 > R6  )
                            is not equal to
            R1 < R2 > R3  <  R4 < R5 > R6 
since ( R1 < R2 > R3  ) < ( R4 < R5 > R6  )  declares that all members of  ( R1 < R2 > R3  )  are greater than all members of ( R4 < R5 > R6  ).
An inter-regional relation can be found by analyzing a string or can be used as a template to generate or otherwise marshal a string.  When generating a string the specific values of the string are unimportant, only the equality relations matter, leading to later substituting values for other values as long as the equality relationships hold.  For example, "aza" is the equality relationship Rx < Ry> Rz .   The string "bzb" satisfies the equality relationship as does "xzy", "bca",  "abczxfm" and "abzzzfm".
Examine the case "abczxf":
    L1 = a
    L2 = b
    L3 = c
    L4 = z
    L5 = x
    L6 = f
    Rx = L1, L2, L3
    Ry = L4
    Rz = L5, L6
    Rx < Ry> Rz
Whereas the string "abczxf" is  a non-sense word, we shall find a real word that satisfies the Rx < Ry> Rz structure. For example, "ale":
    L1 = a
    L2 = l
    L3 = e
    Rx = L1
    Ry = L2
    Rz = L3
    Rx < Ry> Rz

Or, for another example, "able":

    L1 = a
    L2 = b
    L3 = l
    L4 = e
    Rx = L1, L2
    Ry = L3
    Rz = L4
    Rx < Ry> Rz

For "ale", Rx length is 2, Ry length is 1 and Rz length is 1.  And, thus, "ale" is symetrical about the primary peak (Ry) since Rx and Rz are of equal length.  For "able", Rx length is 2, Ry lenght is 1 and Rz length is 1.  Thus, "able" is asymetrical about the primary peak (Ry) since Rx and Rare of unequal length.

Using relations and length it is possible to construct complex abstract mountain ranges leaving the details (letter substitutions) for later.  One implementaton method is to construct the abstract mountain or mountain range and use it as a filter on a text stream.  Feed the output to the GraphicWord Tool, and voila:  mountain topography.  Different text streams change the topographic detail yet retains the basic equality relations.

For a demonstration of Mountain Poetics, see the MountainPoetics Tool by Norman T. Thornton of

(Back to tool bar)



-- Browser consideration

To get started, you will need a 3D browser, specifically the free one provided by ParallelGraphics:

Install Cortona VRML Client!

If you do not have the browser or have an older version, the application will attempt to install the most recent version for you, automatically.

Troubleshooting: Per application update, as of June 14, 2008, "Trusted" status is no longer required under XP and Vista as indicated by our testing. However, if you are using Internet Explorer 6 or above and are having trouble, you might need to make both and trusted sites

-- Memory consideration.

Run no more than one VRML application at a time to conserve memeory.

-- Input

From the "Options", select your desires. Use the URL fields to acquire internet files such as images or music.

In the text field, enter words. Only words of lenght 3 or more characters will be graphed. Hyphenated and contracted words are okay. For the purpose of best view and navigation, use words of say less than 20 characters. If using more than 20 characters or if for some reason you wish the rendered viewing closer or further away from a word, you can make adjustments to the word distance by using the "View Depth Offset" choice under the "Options" section.

Click the "create!" button to view your masterpiece.


External links

Add to Add to Digg Add to Facebook Add to Google Share on LinkedIn Add to Live Add to MySpace Add to reddit Add to Slashdot Add to StumbleUpon Add to Technorati Add to Twitter Add to Yahoo Bookmarks

Submit your creation to the PoeticWrites Poetry Wiki.

Poetry API --  Poetry Application Program Interface -- PAPI

The Hard Way -- by hand:  A direct RESTful API is available via the GraphicWord Tool per a GET version:

configured as a query:

with the following parameters after the  question mark "?":

Parameter Description
textArea text to graph
yScale integer
viewDepthOffset integer
figureStyle see "Options" tab
figureTransparency >=1
hyphenVertMapping see "Instructions" tab
apostropheVertMapping see "Instructions" tab
figureImage url of.jpg  .png  .bmp .gif
soundUrl url of .mp3  .wma
vrmlPreProc VRML code

A less labor intensive indirect version is available per an HTML interface GET version:
allowing you to simply copy the encoded parameters from the address bar after the application runs.  You can then use the copied query to create a link for web page or email to run the application.

This method is presented tutorially, to make the pertinent parametrics obvious for those seeking hardcore programming.

The Easy Way -- by automation:  A less labor intensive indirect RESTful API version is available per an HTML interface as a GET version: Get.htm
    allowing you to simply copy the encoded parameters from the address bar after the application runs.  You can then use the copied query to create a link for web page or email to run the application with all parameters (except the "displayVrmlCode") account for and HTTP encoded.  This method allows you to both encode and test your code simultaneously.


Author First Name
Author Last Name
Title for the work
Display VRML code and not the VRML world True False


Hyphen Vertical Mapping   - on the y-axis equal to   
Apostrophe Vertical Mapping   ' on the y-axis equal to   
View Depth Offset
Image for geometric planes; URL, for example:
  • art/Faces and Wings (stained) by Norman T Thornton.png
  • reflections 100_0824 by Norman T Thornton
  • art/salvidor dali landscape photo and rendition by Norman T Thornton.png
  • 100_1177 by Norman T Thornton.JPG
Background URLs (*= deprecated as of Cortonia 6)
(internet files might slow loading)
*Front image (.jpg, .jpeg, .png, .gif); for example:
  • 100_1177 by Norman T Thornton.JPG
  • art/salvidor dali as boxscape photo by Norman T Thornton.png
  • art/penetralia by Norman T Thornton.png
  • art/salvidor dali landscape photo and rendition by Norman T Thornton.png
*Back image
*Left image
*Right image
*Top image
*Bottom image
Sound (.mid, .wav, .mp3) For example,
  • in Funk by Norman T Thornton.mp3
  • Scheme Conditioning by Norman T Thornton.mp3
User Script
(for advanced users)

You can create VRML code, for examples:

... that you can paste or directly write here:

(Back to tool bar)


For interesting results AND to save the source code of your work, see "Options".
Then, enter text of at least 3 contiguous letters and hopefully something more creative than "abcdefg", "test" or "hello":