Category: Uncategorized

  • About Shareable Readymades

    balloon-dog-at-ff

    (Image by Furtherfield Gallery, Licensed Creative Commons Attribution-NonCommercial)

    The formerly transgressive gesture of the readymade and the assisted readymade – nominating or recreating a non-art object as art – has long since been recuperated by the artworld. The junkyard urinals and joke shop balloons of the early 20th Century have been replaced with expensive limited edition sculptures of them created by anonymous artisans, their status policed by lawyers and writers.

    The reputational dynamics of the artworld mean that non-art objects transformed into art objects by artists become part of their ouvre, or in contemporary art terms their brand. This represents a form of semantic enclosure, both of the potential of the object for alternative representations and of the artist’s particular take on the object. Academic reinforcement of this enclosure in terms of originality and reputation (through inclusion in positive or negative critical canons) causes a chilling effect on artistic potential. Legal enforcement of this enclosure becomes censorship. Art must be free to refer to and depict the world, including culture and including other art. This is a rare example of an artistic imperative being complementarily moral and aesthetic.

    Originality and the artist’s hand are valid subjects of critique within art – the fetish of the touch of the master as resource for and product of the art market and academia. But the returns on the reputational capital gained from being the creator of such a critique can exceed that of a previously historically conventional practice over time. And this critique of the artisanal production of art can also be an uncritical validation of managerialism.

    Both artisanal mastery and neoconceptual managerialism derive much of their increasing value over time from externalities. Artists do not (and should not) pay for audience, critical or market attention to their work that increases their reputational and economic value. But both artisanal studios and neoconceptual outsourcing rely on reputationally disenfranchised skilled labour to produce the art that accrues value in and to the artist’s name. The labour and reputational dynamics of the production of art are also valid subjects of critique within art, including that involved in the production art that critiques artistic originality. Is paying these workers enough, or should we hack the art historical firewall of the artists signature? Who are the artisans, studio assistants and engineers who instantiate contemporary art? What is the aesthetic and social impact of considering them?

    “Shareable Readymades” puts these critiques into tension with the hype and legal uncertainty around 3D printing. A decade ago I said “Now make art with it”. What’s emerged from making these particular objects is that they are a good resource for experiencing and thinking through the experience and implications of 3D printing if you’re familiar with art history. “You wouldn’t steal a car”, argue the old anti-copying warnings on DVDs that try and persuade you not to copy an infinitely copyable resource. Copyright on autographic artworks is a category error, on assisted readymades it is doubly so. But where it exists we can ironise it with Copyleft to ensure rather than frustrate people’s freedom to deal in common imagery and culture. This returns objects to the artistic commons in physically instantiable virtual form.

    Each Shareable Readymade was commissioned from a digital 3D modelling artist, who retains copyright on the results of their labour (Chris Webber for the Urinal and Pipe, Bassam Kurdali for the Ballon Dog, myself for #arthistory and the Soup Can). The objects are made available to the commisioning “artist” (Dr. Charlotte Frost for #arthistory, myself for the others) on the same terms they are made available to the public, the Creative Commons Attribution-Sharealike license. The “artist” is credited with commissioning the artwork using the Attribution part of the license. The rights-holding relations in the artwork are more just, the reputational ones are more open to question. As more people have incorporated the objects into their own art, fulfilling the ambition that they support the artistic commons, these questions have only grown. It is not clear how attribution for 3D printed works should function, should attribution conventions for art or for the license trump this? If so, which?

    The art historical, technical, and socioeconomic tensions that make up the Shareable Readymades are not intended to be simple or didactic. Each one has a different history and positioning in relationship to its referent. I hope that they are fun physically and conceptually and that they are useful objects for thought.

  • Shareable Readymades Watch

    pipe-at-ff

    (Image by Paul Ros, Licensed Creative Commons Attribution-NonCommercial)

    Here’s Pipe in Furtherfield‘s show “The Human Face of Economics“, along with Urinal and Balloon Dog. You can buy one from them along with a certificate of inauthenticity.

    3d-additivist-manifesto-video

    The 3D Additivist Manifesto video features the Urinal in its teaser image.

    modern-times-ballon-dog

    Here’s an animated GIF by Alan Butler featuring a rare credited appearance of Balloon Dog.

    melting-balloon-dog

    And this melting Balloon Dog is from Michael Green’s luxury.obj

    If you see any Shareable Readymades in the wild, let me know!

  • Shareable Readymades For Bitcoin

    SR-Urinal-01

    http://www.furtherfield.org/artdatamoney/shareablereadymades/

    Furtherfield present the Art Data Money special edition range of Shareable Readymades available to buy for Bitcoin or fiat currency (such as pounds sterling).

    Supplied with Certificate of Inauthenticity, signed by the artist (me).

  • Three.js Glitches

    I’m learning the three.js JavaScript 3D Graphics library. One of the projects I’m going to apply this to is Blockchain Aesthetics. Here are some of the more aesthetic failures and successes so far at visualising Bitcoin transaction hashes.

  • Essay Corpse – Accelerate Aesthetics

    (This essay wouldn’t gel and I abandoned it. “XXXX…” means “do more here in the next writing or edit pass.”
    Do get “Speculative Aesthetics” and “Class Wargames”, they are both wonderful books.)

    Urbanomic’s “Speculative Aesthetics” is a freshly mined block of well-contextualised ideas, including some insightful discussion of Accelerationism’s relationship to aesthetics. That relationship is one I’ve been thinking and writing about in ignorant parallel.

     

    I do not understand (I mean that literally: I’ve tried to parse the arguments and failed) the idea of overdetermined adherence to a teleological ideology as “freedom”. Whether the eschaton is religious, political/economic or technological, I don’t regard submission to its inevitability as freedom so much as a kind of Dice-Mannish false blamelessness. The fruit fly that buzzes in an endless repeating pattern through a featureless space is neither free nor showing free will. But then nor is the liberal consumer or subject of history in any absolute sense, however right Popper was about totalitarianism.

     

    Abstraction is a word that describes many different phenomena, XXXXXXXX

     

    At the same time as reading (or “reading“) “Speculative Aesthetics” I’ve been reading Richard Barbrook’s excellent”Class Wargames” book. Barbrook’s history of Guy Debord’s “Game of War” casts the game convincingly as a pedagogical tool for inoculating the political Left against the temptations of vanguard politics. Debord’s game represents the field and forces of battle at the time of the Napoleonic wars at a high level of abstraction compared to the average SPI/GDW-style wargame , making them a general representation of armed conflict. In order to win, one must recapitulate the tactics of Napoleon or Trotsky, with their attendant sacrifice and bloodshed. Having played at being Napoleon, players can both defeat them and will understand why they wouldn’t want to become or follow such a leader in real life.

    This indicates the value of Acceleration’s strategy of abstraction, from specifics to generalities and back. Failing cloning, there will not literally be another Napoleon. But there will be scenarios in which another clever general might need to be defeated, either on the battlefield or in politics. There’s nothing Accelerationist about a board game, but there is about its use to create a distributed clever general. And it’s in distribution that Accelerationism can avoid vanguardism.

     

    The legacy of CCRU can easily be painted as sitting uncomfortably with Accelerationism’s emphasis on rationality. But the irrational, imaginative, mystical, fictional nature of much CCRU/Orphan Drift/Nick Land output is rational – it can be rational to use irrationality when there is no rational means of achieving a rational end. This is instrumental irrationality, and it’s a standard part of creativity. Creativity theory tells us why – if thinking sensibly is leaving you stuck in a rut then thinking irrationally may get you out of it. Whether surrealist games, Edward de Bono’s “lateral thinking” or chemically assisted imaginings, XXXXXXXXX.

     

    This is a very different kind of abstraction from the Real Abstraction of Marxism, or the representational simplifications and distillations of Data Visualization. Accelerationist aesthetics must achieve a new kind of abstraction via either a CCRUian instrumental irrationality as a mythological attractor and search space exploder, a Debordian detournement and redemption (rather than gentrification) of data visualization , or a remix of both.

  • WordNet

    We can use NLTK’s support for WordNet to help generate and classify text.

    from nltk.corpus import wordnet as wn
    from nltk.corpus import sentiwordnet as swn
    
    def make_synset(word, category='n', number='01'):
        """Conveniently make a synset"""
        number = int(number)
        return wn.synset('%s.%s.%02i' % (word, category, number))
    
    >>> dog = make_synset('dog')
    >>> dog.definition
    'a member of the genus Canis (probably descended from the common wolf) that has been domesticated by man since prehistoric times; occurs in many breeds'

    A synset is WordNet’s representation of a word/concept. Looking at the definition confirms that we have the synset for canis familiaris rather than persecution or undesirability.

    >>> dog.hypernyms()
    [Synset('domestic_animal.n.01'), Synset('canine.n.02')]

    Hypernyms are more general concepts. ‘dog’ has two of them, which shows that WordNet is not arranged in a simple tree of concepts. This makes checking for common ancestors slightly more complex but represents concepts more realistically.

    >>> dog.hyponyms()
    [Synset('puppy.n.01'), Synset('great_pyrenees.n.01'), Synset('basenji.n.01'), Synset('newfoundland.n.01'), Synset('lapdog.n.01'), Synset('poodle.n.01'), Synset('leonberg.n.01'), Synset('toy_dog.n.01'), Synset('spitz.n.01'), Synset('pooch.n.01'), Synset('cur.n.01'), Synset('mexican_hairless.n.01'), Synset('hunting_dog.n.01'), Synset('working_dog.n.01'), Synset('dalmatian.n.02'), Synset('pug.n.01'), Synset('corgi.n.01'), Synset('griffon.n.02')]

    Hyponyms are more specific concepts. ‘dog’ has several. These may have hypernyms other than ‘dog’, and may have several hyponyms themselves.

    def _recurse_all_hypernyms(synset, all_hypernyms):
        synset_hypernyms = synset.hypernyms()
        if synset_hypernyms:
            all_hypernyms += synset_hypernyms
            for hypernym in synset_hypernyms:
                _recurse_all_hypernyms(hypernym, all_hypernyms)
    
    def all_hypernyms(synset):
        """Get the set of hypernyms of the hypernym of the synset etc.
           Nouns can have multiple hypernyms, so we can't just create a depth-sorted
           list."""
        hypernyms = []
        _recurse_all_hypernyms(synset, hypernyms)
        return set(hypernyms)
    
    >>> all_hypernyms(dog)
    >>> set([Synset('chordate.n.01'), Synset('living_thing.n.01'), Synset('physical_entity.n.01'), Synset('animal.n.01'), Synset('mammal.n.01'), Synset('object.n.01'), Synset('vertebrate.n.01'), Synset('entity.n.01'), Synset('carnivore.n.01'), Synset('domestic_animal.n.01'), Synset('canine.n.02'), Synset('placental.n.01'), Synset('organism.n.01'), Synset('whole.n.02')])
    

    We can recursively fetch the hypernyms of a synset. since ‘dog’ has two hypernyms this isn’t a single list of hypernyms.
    We can use this to find how similar different words are by searching for common ancestors.
    The Python WordNet library can find common hypernyms for us though.

    >>> cat = make_synset('cat')
    >>> cat.common_hypernyms(dog)
    [Synset('chordate.n.01'), Synset('living_thing.n.01'), Synset('physical_entity.n.01'), Synset('animal.n.01'), Synset('mammal.n.01'), Synset('vertebrate.n.01'), Synset('entity.n.01'), Synset('carnivore.n.01'), Synset('object.n.01'), Synset('placental.n.01'), Synset('organism.n.01'), Synset('whole.n.02')]
    >>> steel = make_synset('steel')
    >>> steel.common_hypernyms(dog)
    [Synset('physical_entity.n.01'), Synset('entity.n.01')]
    >>> sunset = make_synset('sunset')
    >>> sunset.common_hypernyms(dog)
    [Synset('entity.n.01')]

    As might be expected, cats and dogs are more similar than steel or sunsets.
    We can recursively fetch the hyponyms of a synset. This gives us the set of objects or concepts with a kind-of relationship to the word.

    def _recurse_all_hyponyms(synset, all_hyponyms):
        synset_hyponyms = synset.hyponyms()
        if synset_hyponyms:
            all_hyponyms += synset_hyponyms
            for hyponym in synset_hyponyms:
                _recurse_all_hyponyms(hyponym, all_hyponyms)
    
    def all_hyponyms(synset):
        """Get the set of the tree of hyponyms under the synset"""
        hyponyms = []
        _recurse_all_hyponyms(synset, hyponyms)
        return set(hyponyms)
    
    >>> all_hyponyms(dog)
    set([Synset('harrier.n.02'), Synset('water_spaniel.n.01'), Synset('standard_poodle.n.01'), Synset('dandie_dinmont.n.01'), Synset('wirehair.n.01'), Synset('toy_manchester.n.01'), Synset('puppy.n.01'), Synset('briard.n.01'), Synset('beagle.n.01'), Synset('siberian_husky.n.01'), Synset('manchester_terrier.n.01'), Synset('bloodhound.n.01'), ...
    

    WordNet has some support for synonyms and antonyms via lemmas.

    def synset_synonyms(synset):
        """Get the synonyms for the synset"""
        return set([lemma.synset for lemma in synset.lemmas])
    
    def synset_antonyms(synset):
        """Get the antonyms for [the first lemma of] the synset"""
        return set([lemma.synset for lemma in synset.lemmas[0].antonyms()])
    
    >>> synset_synonyms(sunset)
    set([Synset('sunset.n.01')])
    >>> synset_antonyms(sunset)
    set([Synset('dawn.n.01')])

    And we can find related concepts by getting all the hyponyms of a word’s hypernynms.

    def all_peers(synset):
        """Get the set of all peers of the synset (including the synset).
           If the synset has multiple hypernyms then the peers will be hyponyms of
           multiple synsets."""
        hypernyms = synset.hypernyms()
        peers = []
        for hypernym in hypernyms:
            peers += hypernym.hyponyms()
        return set(peers)
    
    >>> all_peers(sunset)
    set([Synset('zero_hour.n.01'), Synset('rush_hour.n.01'), Synset('early-morning_hour.n.01'), Synset('none.n.01'), Synset('midnight.n.01'), Synset('happy_hour.n.01'), Synset('dawn.n.01'), Synset('bedtime.n.01'), Synset('late-night_hour.n.01'), Synset('small_hours.n.01'), Synset('noon.n.01'), Synset('sunset.n.01'), Synset('twilight.n.01'), Synset('mealtime.n.01'), Synset('canonical_hour.n.01'), Synset('closing_time.n.01')])

    We use sets here so that common ancestors and children appear only once, and to allow for boolean set operations on concepts.
    It’s trivial to get the the word (or words) for a synset.

    def synsets_words(synsets):
        """Get the set of strings for the words represented by the synsets"""
        return set([synset_word(synset) for synset in synsets])
    
    >>> synsets_words(all_hyponyms(dog))
    set(['rottweiler', 'bull mastiff', 'belgian sheepdog', 'courser', 'brabancon griffon', 'toy terrier', 'fox terrier', 'sennenhunde', 'standard poodle', 'saluki', 'pointer', 'toy spaniel', 'setter', 'giant schnauzer', 'housedog', 'papillon', 'american foxhound', 'weimaraner', 'cocker spaniel', 'basenji', 'beagle', ...

    WordNet has part/whole, group and substance relationships.

    >>> body = make_synset('body')
    >>> body.part_meronyms()
    [Synset('arm.n.01'), Synset('articulatory_system.n.01'), Synset('body_substance.n.01'), Synset('cavity.n.04'), Synset('circulatory_system.n.01'), Synset('crotch.n.02'), Synset('digestive_system.n.01'), Synset('endocrine_system.n.01'), Synset('head.n.01'), Synset('leg.n.01'), Synset('lymphatic_system.n.01'), Synset('musculoskeletal_system.n.01'), Synset('neck.n.01'), Synset('nervous_system.n.01'), Synset('pressure_point.n.01'), Synset('respiratory_system.n.01'), Synset('sensory_system.n.02'), Synset('torso.n.01'), Synset('vascular_system.n.01')]
    
    >>> dog.member_holonyms()
    [Synset('canis.n.01'), Synset('pack.n.06')]
    
    >>> wood = make_synset('wood')
    >>> wood.substance_holonyms()
    [Synset('beam.n.02'), Synset('chopping_block.n.01'), Synset('lumber.n.01'), Synset('spindle.n.02')]
    >>> wood.substance_meronyms()
    [Synset('lignin.n.01')]

    We can use hypernyms to classify words into domains using WordNet, but there’s an existing domain classification system in the form of WordNet Domains. It can be downloaded here. Code for using this can be found on Stack Overflow. But it doesn’t seem to work with nltk 3.0 (the synset numbers don’t match).

    And there’s a sentiment score system for WordNet in the form of SentiWordNet. There’s an interface for it in WordNet 3.0.

    def make_senti_synset(word, category='n', number='01'):
        """Conveniently make a senti_synset"""
        number = int(number)
        return swn.senti_synset('%s.%s.%02i' % (word, category, number))
    
    def synsets_sentiments(synsets):
        """Return the objs, pos, neg and pos - neg score sums for the synsets"""
        pos = 0.0
        obj = 0.0
        neg = 0.0
        for synset in synsets:
            try:
                pos += synset.pos_score()
                obj += synset.obj_score()
                neg += synset.neg_score()
            except AttributeError, e:
                pass
        return obj, pos, neg, pos - neg
    
    >>> happy = make_senti_synset('happy', 'a')
    >>> happy.pos_score()
    0.875
    >>> happy.neg_score()
    0.0
    >>> happy.obj_score()
    0.125
    
    synsets_sentiments([make_senti_synset(word, 'a') for word in 'happy sad angry heavy light depressing'.split()])
    (2.5, 1.5, 2.0, -0.5)

    Not every word has a sentiment score, hence the try/except block in synsets_sentiments.

    WordNet is sensitive to senses and it’s hard to automatically resolve senses when processing arbitrary text. When generating text and using WordNet to find words, it’s important (and easier) to set the correct sense for the synset.

    >>> colour = make_synset('colour', 'n', 6)
    >>> all_hyponyms(colour)
    set([Synset('chrome_red.n.01'), Synset('primary_color.n.01'), Synset('light_brown.n.01'), Synset('sallowness.n.01'), Synset('hazel.n.04'), Synset('iron-grey.n.01'), Synset('olive_green.n.01'), Synset('tan.n.02'), Synset('pastel.n.01'), Synset('coal_black.n.01'), Synset('pinkness.n.01'), Synset('vandyke_brown.n.01'), Synset('beige.n.01'), Synset('blue.n.01'), Synset('shade.n.02'), Synset('achromatic_color.n.01'), Synset('whiteness.n.03'), Synset('coral.n.01'), Synset('chromatism.n.02'), Synset('apatetic_coloration.n.01'), ...

    This gives concepts on different levels. Maybe if we try the peers of a colour.

    >>> all_peers(make_synset('red'))
    set([Synset('red.n.01'), Synset('pastel.n.01'), Synset('purple.n.01'), Synset('green.n.01'), Synset('olive.n.05'), Synset('complementary_color.n.01'), Synset('brown.n.01'), Synset('blue.n.01'), Synset('blond.n.02'), Synset('yellow.n.01'), Synset('orange.n.02'), Synset('pink.n.01'), Synset('salmon.n.04')])

    OK maybe if we try the children of a concept.

    >>> all_hyponyms(make_synset('chromatic_color'))
    set([Synset('chrome_red.n.01'), Synset('light_brown.n.01'), Synset('hazel.n.04'), Synset('olive_green.n.01'), Synset('tan.n.02'), Synset('pastel.n.01'), Synset('pinkness.n.01')

    Perhaps the leaf nodes.

    def _recurse_leaf_hyponyms(synset, leaf_hyponyms):
        synset_hyponyms = synset.hyponyms()
        if synset_hyponyms:
            for hyponym in synset_hyponyms:
                _recurse_all_hyponyms(hyponym, leaf_hyponyms)
        else:
            leaf_hyponyms += synset
    
    def leaf_hyponyms(synset):
        """Get the set of leaf nodes from the tree of hyponyms under the synset"""
        hyponyms = []
        _recurse_leaf_hyponyms(synset, hyponyms)
        return set(hyponyms)
    
    >>> leaf_hyponyms(make_synset('chromatic_color'))
    set([Synset('taupe.n.01'), Synset('snuff-color.n.01'), Synset('chrome_red.n.01'), Synset('light_brown.n.01'), Synset('hazel.n.04'), Synset('olive_drab.n.01'), Synset('old_gold.n.01'), Synset('chocolate.n.03'), Synset('yellowish_pink.n.01'), Synset('yellowish_brown.n.01'), Synset('tyrian_purple.n.02'), ...

    That looks good. All colours, no intermediate concepts.

    We can use this set of words to choose colours, or to categorize words as colours.

    I hope this demonstrates that WordNet can be a very useful resource for Generative Art and Digital Humanities projects.

  • Agoric Aesthetics & Philosophy

    Agorizing aesthetics and philosophy means producing them using market pricing mechanisms. The model for this is the market-based software of agoric computing. The advantage of such a system is that it incentivises both production and efficiency. By internalizing market forces, the perverse incentives of gamified systems such as academic research points can be avoided.

    An agoric system needs a currency, for efficiency’s sake we will use a cryptocurrency. There are several ways of implementing a currency for an agoric system using cryptocurrency systems. We can use coloured coins, nxt or Counterparty assets, or Ethereum contracts similar to the Token System example in the Ethereum White Paper to create coins, tokens, or other quantifiable valences. For simplicity’s sake I will call all of these “tokens”. Different implementations allow different capabilities: fungibility, revocation, transferrability.

    An artist group or artistic movement can use a store of tokens allocated by vote or other mechanism to artists or artworks that they deem part of the movement and its output. The Cypherfunks project is an existing example of such a system. Such a system combines the nominative practices of Dadaist, Conceptual and some Pop/Post-Pop art with the social and aesthetic function of materially identifying in and out groups. A single-artist token could be used to create an oeuvre in the style of Duchamp or Kostabi.

    Art critics can use tokens to embody critique. A single-value token can be used to embody critical approval, a pair of oppositely valanced tokens to represent approval/opprobrium (and to revise critical opinion should it later change), a family of tokens with different star rankings can be used to implement a star system at the cost of fungibility. The critic sends tokens either to the artist’s address in the cryptocurrency system or to an address representing the hash or proxy hash of the artwork. The artist or artwork’s standing can be found by counting the number and kind of critical tokens associated with it.

    Philosophical treatises can be constructed agorically. Axioms and citations, logical and rhetorical moves can be assigned point costs either as classes (premise, objection, rebuttal) or individually (Derrida, Arendt, Meillassoux). Each usage increases the price of the essay. Point costs and budgets can be assigned per hundred words or for a given form (short essay, review, thesis, journal article etc.) or context (particular journals, web sites, or educational institutions). Essays are then written to the budget. Or price essays according to the system and then let publishers (and readers) choose which to consume on that basis. For a more dynamic system prices can be set using a PageRank-style system as a product of the cost of cited works.

    Pricing this essay is left as an exercise for the reader…

  • Hack Circus

    Hack Circus

    Run, don’t walk, to get a subscription to the new quarterly art/technology/weirdness journal Hack Circus. It’s like the Fortean Times as published by Make Magazine, or Mondo 2000 by Strange Attractor Journal. Issue 2 is just out and contains articles on the nature of reality, choreography as code & vice versa, and personality mimicking bots on Twitter amongst other things. I can’t recommend it highly enough.

  • What is Art History Made of?

    man-on-phone

    (#arthistory hashtag held in front of a man walking down a street in New York describing the work of Taryn Simon, 2013, Charlotte Frost)

    http://digitalcritic.org/2013/07/what-is-art-history-made-of/

    “I wanted to draw attention to the physicality of art historical statements whether they are made in print or online. I wanted to look at art historical writing as an object.”

    I was very flattered to be asked by Dr. Charlotte Frost to become involved in the 3D printing side of her “Art History Hashtag” project. My “shareable readymades” project was in part a reaction to the treatment of artisans by post-conceptual artists such as Jeff Koons, so reversing the artist/artisan relationship from that project and becoming the person modelling the artwork appealed to me. Charlotte’s writing about the physicality of art history media touched on something I have thought since I was at art school. And I love typography and hashtags, with varying degrees of irony.

    Charlotte has now written about her inspiration for the project, providing a context not just for her immediate work but for any classical or digital humanities that wish to cross over with Maker Culture and/or to engage productively in a critique of the ways that their own medium specificity and physicality are implicated in their production. It’s an informative and valuable insight into the production of art and art history. I highly recommend it.

  • The work of art in the age of 3D printed reproduction

    pipe-blend1-580x456

    An excellent article on 3D printing art at MakeTank starts with my shareable readymads:

    http://blog.maketank.it/2013/07/dadaist-warhol-3d-printing/

    “While Myers’ work has yet to be displayed in a major museum – and that is not his point – a recent installation at the Andy Warhol Museum in Pittsburgh (PA), in collaboration with Materialise, adds to the question of what it looks like when you mix 3D printing with work intended to question the value of the multiple. The installation, Factory 2.0, with Warhol-inspired multiples, was put on in conjunction with the opening of RAPID 2013 Additive Manufacturing Conference & Expo. At the same time, there were exhibited five finalists from the i.materialise Andy Warhol Contest.”

    They also quote Charlotte Frost and mention the Art History Hashtag project, about which more next…