Dreamspace is an exploration of the collective unconscious through computational art. Over one hundred thousand online dream journal entries were compiled and processed using the Word2Vec machine-learning algorithm to create a vector space of one hundred dimensions. This was then projected in 3D and a dynamic planisphere map was created which represented the words used to describe people’s dreams as stars and the relationships between them as constellations.
produced by: Julian Burgess
During the early days of the coronavirus lockdown in the UK, many people reported having strange dreams. This led me to think about an idea which I have dwelt on since childhood as to the nature of consciousness and what separates one mind from another.
I discussed the idea with my crit group at Goldsmiths and felt it had good promise. The next morning a friend from undergrad days, who I hadn’t been in touch with for many years, contacted me out of the blue to say that I had appeared in his dream the night before. He is a practising Buddhist, and so we discussed my idea and forms of consciousness at some length. This event cemented in my mind that the project was the right choice.
Concept and background research
My ideas centred on showing our dreams as the product of one collective entity. I wanted the work to focus less on the specifics of any individual dream and instead to consider the environment of dreaming as a whole. Each night we all escape to the 'dreamspace' where our minds are released from the constraints of conscious thought. In our dreams, there is no work to be done.
Your vision will become clear only when you can look into your own heart. Who looks outside, dreams; who looks inside, awakes. — C. G. Jung
Talking through my idea with friends, the same book was independently recommended three times to me: The Hero with a Thousand Faces (Campbell, 1949) which explores the ideas of myths in society as a form of collective memory. It also looks at the role of symbols and archetypes informed by the ideas of Carl Jung. I wanted my work to draw on these ideas and to pose questions about consciousness and the environment of dreams.
In producing sketches, I often returned to node-based graphs of relationships and from here I felt that perhaps creating a map to the collective unconscious would be a great starting point for the journey.
A friend had recently seen Susan Hiller’s Dream Mapping (1973) in which the artist created thematic maps from the dream descriptions shared in the morning conversations of a group of seven dreamers and found shared features between the dreams. I intended to do something similar but on a larger scale of sampling and using just textual descriptions, where the words for entities would create the distances of the space.
Visually, I was inspired by the work of Joseph Cornell and in particular his reworkings of celestial planispheres and star charts. Cornell was himself interested in surrealism and the realm of dreams and was inspired by the novella Aurélia (Nerval, 1854) which features dreams and hallucinations of the author’s descent into madness at his infatuation with his muse.
The process of creating this work was divided into three parts: fetching and generating the data, displaying it on screen, and plotting and laser cutting the prints.
To gather the data, I decided to scrape around 20,000 dream journals from DreamBank's online collection. I later added around 30,000 more journal entries from the Sleep and Dream Database, and another 50,000 from the Dream Journal Ultimate app public feed. In the final version I had 100,140 dream journal entries, totalling 17,114,790 terms with a unique vocabulary of 118,730 terms. Unfortunately, it isn’t easy to estimate how many people contributed to this corpus since on the original websites some dreams are attributed to groups and some are anonymous.
Getting hold of these journal entries was relatively straightforward, as I have previous experience of scraping data, however cleaning the text was quite involved since the journals had been compiled from various surveys and had inconsistent formatting and metadata within the journal entries.
For analysis of the dreams I initially looked at Linguistic Inquiry and Word Count (LWIC) text analysis programme, after seeing it used in one of artist Lauren Lee McCarthy’s projects, but it’s only available under a proprietary license and didn’t seem that suited to my idea as it mostly focuses on classification of fragments of text.
I then started looking at other neuro-linguistic programming (NLP) algorithms and found Word2Vec and GloVe. I found there was an existing Node module for Word2Vec and it was quite easy to get the demo working. The Word2Vec algorithm is interesting because it uses two-layer neural networks that are trained to reconstruct linguistic contexts of words. I trained it on my initial set of dreams using 100 dimensions and then extracted those values.
My next problem was to reduce the 100 dimensions to three dimensions. I had previously seen t-distributed stochastic neighbor embedding (t-SNE) used in projects and thought it would be a great fit in this case as it would allow me to reveal the semantic relationships between the words. There were a lot of libraries which could do the calculations but I found most of them were either hard to get working or had a very slow runtime. I found the TensorFlow version worked really well and so I stuck to using that.
I found that projecting to lower dimensions is something that requires quite a lot of tuning, both of the parameters and the input values. It wasn’t really any advantage to project the full 10,000 values, as it tended to both look messy and cluster too tightly around certain very common terms. In the end I curated a set of 1,004 terms to project, I picked this number as it was the number of fixed stars identified by Tycho Brahe in his star table of 1598. I used a mix of heuristics to identify which terms to include, such as TF-IDF (Robertson, S. E., and K. Spärck Jones), a score of how common a word is to individual documents and to a corpus.
I then took the 3D projected coordinates and normalised them using Three.js vectors and fitted them to the World Geodetic System (WGS84) model to turn them into the GeoJSON format.
There is a lot of scope for future development of this work. One of the big advantages of the broad scope was that I could develop the project in a variety of different ways and then narrow down the scope as we got closer to the deadline and had more certainty about what form our degree show would take.
I looked at allowing direct user interaction, outside of Covid-19 issues. I would have probably allowed users to select dreams and perhaps words directly using a mouse and keyboard. I did do some user testing of allowing people to enter their own dreams, however I found this rarely led to a good interaction since people would usually type out dreams that were a single sentence of around 15 words which meant it had very limited scope to draw a pleasant constellation.
I would like to develop the plots further. I think small versions could have more appeal for people to buy for their homes, as I had a number of enquiries along this line and I would like to try plotting twelve views of Dreamspace rotated by 30° instead of just the two views which are 180° rotated.
I also worked on a 3D representation of Dreamspace. My plan was to project it onto a wall or ceiling near to the rest of the works, but I didn’t feel the space in which I was exhibiting was suitable for this, so I didn’t develop it further.
Overall, I was very pleased with the outcome of this project. The hardest problem was not knowing if and how our degree show would progress and how my work might be exhibited and what form would work best under those circumstances.
The core concept had many strands that could be explored and so I had several areas that I developed quite far which could have been used if the circumstances had been different.
I was pleased that I got the backlighting of the prints working, but it took a lot more time than I anticipated. I think it might have been better if I could have exhibited in a darker space as this would have both accentuated the backlighting and also reduced the reflection on the glass. I think it also could have worked well to have projected the Dreamspace spheres so that they were much larger, giving a different feel to the work.
reflections made it challenging to photograph the work
As I said previously, I found it didn't work well to allow users to directly enter their dreams to be visualised within Dreamspace. However, given more time, I would like to explore working with the Dream Journal Ultimate app team to be able to access their private API so that I could add timestamps to the latest dream journal entries to situate the work more in the present moment.
Materials and libraries
Svelte - https://svelte.dev
Node Word2Vec - https://github.com/Planeshifter/node-word2vec
D3.js - https://d3js.org
Canvas Sketch - https://github.com/mattdesl/canvas-sketch
Canvas Polyline - https://github.com/aubergene/canvas-polyline
Noto Serif - https://fonts.google.com/specimen/Noto+Serif
Big Shoulders Display https://fonts.google.com/specimen/Big+Shoulders+Display
“Astronomical Map - The Constellations and Other Sky Divisions.” Encyclopedia Britannica, www.britannica.com/science/astronomical-map/The-constellations-and-other-sky-divisions#ref510210. Accessed 25 Sept. 2020.
Campbell, Joseph. The Hero with a Thousand Faces. New York, Meridian, 1956.
Crary, Jonathan. 24/7 : Late Capitalism and the Ends of Sleep. New York, Verso, 2013.
Hiller, Susan. Www.Susanhiller.Org, www.susanhiller.org/otherworks/dream_mapping.html. Accessed 13 Aug. 2020.
Hoving, Kirsten A. Joseph Cornell and Astronomy : A Case for the Stars. Princeton, Princeton University Press, 2009.
Jung, Carl Gustav. “On the Relation of Analytical Psychology to Poetry.” 1966.
Kandinsky, Wassily. Point and Line to Plane. Mansfield Centre Martino Publ, 2013.
Marenko, Betti. “When Making Becomes Divination: Uncertainty and Contingency in Computational Glitch-Events.” Design Studies, 1 Sept. 2015, ualresearchonline.arts.ac.uk/id/eprint/8663/. Accessed 13 Aug. 2020.
Mikolov, Tomas, et al. “Efficient Estimation of Word Representations in Vector Space.” ArXiv.Org, 2013, arxiv.org/abs/1301.3781.
Radford, Alec, et al. Language Models Are Unsupervised Multitask Learners. 2019.
Robertson, S. E., and K. Spärck Jones. “Simple, Proven Approaches to Text Retrieval.” Www.Cl.Cam.Ac.Uk, 1994, www.cl.cam.ac.uk/techreports/UCAM-CL-TR-356.html. Accessed 13 Aug. 2020.
Rushkoff, Douglas. Program or Be Programmed : Ten Commands for a Digital Age. New York, Soft Skull Press, 2011.
Meulen, B.C., et al. “From Stroboscope to Dream Machine: A History of Flicker-Induced Hallucinations.” European Neurology, vol. 62, no. 5, 2009, pp. 316–320, 10.1159/000235945. Accessed 31 Mar. 2020.
Walter, W Grey. The Living Brain. Harmondsworth, Penguin Books, 1961.