Concrete art

Concrete art

Max Bill, Continuity (Colossus of Frankfurt), 1986, collection: Deutsche Bank, Frankfurt am Main. Max Bill "was keen on creating works based on mathematical and geometric foundations—material manifestations of intellectual processes that resisted symbolism." The sculpture, of Sardinian granite, weighs 66 tons.[1]

Concrete art is an art movement with a strong emphasis on abstraction. The artist Theo van Doesburg, closely associated with the De Stijl art movement, coined the term "concrete art" as he in 1930 founded the group Art Concret and articulated its features in a manifesto titled "The Basis of Concrete Art", signed by four other artists of the group, including Otto G. Carlsund, Jean Hélion and Leon Tutundjian. The manifesto explained that the resultant art should be non-referential insofar as its components should not refer to, or allude to, the entities normally encountered in the natural, visible world. This is a distinction from abstraction generally. In a more general sense "abstract art" could and often does include the "abstraction of forms in nature".[2] But "concrete art" was intended to emanate "directly from the mind" and consequently to be more "cerebral"[2] than abstract art generally. Concrete art is often composed of basic visual features such as planes, colors, and forms.[3] "Sentiment" tends to be absent from concrete art.[2] The "hand" of the artist may be difficult to detect in finished works of concrete art; concrete art may appear, in some instances, to have been made by a machine.[3] Concrete art often has a core visual reference to geometry whereas more general abstract art may find its basis in the components of the natural world. A formulation of a description of concrete art might include a considerable reliance on the formal qualities of an artwork. Theo Van Doesburg's manifesto stated that art "should receive nothing from nature's formal properties or from sensuality or sentimentality. We want to exclude lyricism, dramaticism, symbolism, etc…."[4] In concrete art a mathematical equation can serve as a starting point. Concrete art can include painting and sculpture.[5]

The term was popularized by the artist [6]


International dimension

Concrete art, optical art, kinetic art and programmatic art bring together groups around the world characterized by similar concerns.[7]

City Group Year Artists
Buenos Aires Asociación Arte Concreto Invención 1945
Buenos Aires Movimento Madi 1946
Copenhagen Linien II 1947 Ib Geertsen, Bamse Kragh-Jacobsen, Niels Macholm, Albert Mertz, Richard Winther
Milan Movimento Arte Concreta (MAC) 1948 Atanasio Soldati, Gillo Dorfles, Bruno Munari, Gianni Monnet
Zagreb Group Exat 51 1951
Paris Group Espace 1951
Rio de Janeiro Grupo Frente 1952 Aluísio Carvão, Carlos Val, Décio Vieira, Ivan Serpa, João José da Silva Costa, Lygia Clark, Lygia Pape, Vicent Ibberson
São Paulo Grupo Ruptura 1952 Waldemar Cordeiro, Geraldo de Barros, Luis Sacilotto, Lothar Charroux, Kazmer Fejer, Anatol Wladslaw, Leopoldo Haar
Ulm Hochschule für Gestaltung 1953
Düsseldorf Gruppo Zero 1957 Otto Piene, Heinz Mack, Günther Uecker, Yves Klein, Piero Manzoni, Lucio Fontana, Jean Tinguely, Joseph Beuys, Piero Dorazio
Cordoba Equipo 57 1957
Padua Gruppo N 1959 Alberto Biasi, Ennio Chiggio, Toni Costa, Edoardo Landi, Manfredo Massironi.
Milan Gruppo T 1959 Giovanni Anceschi (1939), Davide Boriani (1936), Gabriele De Vecchi (1938), Gianni Colombo (1937-1993) e Grazia Varisco (1937)
Paris Motus/GRAV 1960 Hugo Demarco, Moyano, Horacio Garcia Rossi, Julio Le Parc, Francois Morellet, Francisco Sobrino, Yvaral (Jean Pierre Vasarely)
Cleveland Anonima Group 1960
Rome Gruppo Uno 1962 Gastone Biggi, Nicola Carrino, Nato Frascà, Achille Pace, Pasquale Santoro, Giuseppe Uncini. Palma Bucarelli
Moscow Group Dvizjenije 1962
Genoa Gruppo Tempo 3 1963
Praha Synthese 1964

Representative artists

References


-- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p
  1. ^ Monolith on the Water—Max Bill’s "Continuity" in a New Location; Deutsche Bank Art works
  2. ^ a b c
  3. ^ a b
  4. ^ Washington State University/Dr. Michael Delahoyde; commentary on Concrete art
  5. ^ ArtSpeak: A Guide to Contemporary Ideas, Movements, and Buzzwords, 1945 to the Present; Abbeville Press; ISBN 978-0789203656
  6. ^ Walker, John. "Concrete Art / Art Concret / Arte Concreta / Konkrete Kunst". Glossary of Art, Architecture & Design since 1945, 3rd. ed.
  7. ^ Alessandro Del Puppo, L'arte contemporanea: Il secondo novecento, Einaudi, 2013, table 3 page 238.

Bibliography

  • Museum am Kulturspeicher (ed.): Concrete Art in Europe after 1945 - The Peter C. Ruppert Collection. Ostfildern-Ruit: Hatje Cantz, 2002. ISBN 3-7757-1191-0
  • Concrete art definition reference in Danish that includes richard Winther as one of the main artists in the movement under the area of Linien II http://kunstonline.dk/diverse/ordbog/?id=155
  • Dempsey, Amy. Art in the Modern Era: A Guide to Styles, Schools & Movements. NY: Harry N. Abrams Inc., Pub., 2002

External links

  • Washington State University/Dr. Michael Delahoyde; commentary on Concrete art
  • Monolith on the Water—Max Bill’s "Continuity" in a New Location; Deutsche Bank Art works