<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Syntopia &#187; Generative Art</title>
	<atom:link href="http://blog.hvidtfeldts.net/index.php/category/generative-art/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.hvidtfeldts.net</link>
	<description>Art + Culture + Technology</description>
	<lastBuildDate>Tue, 01 Jun 2010 04:59:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Cinder &#8211; Creative Coding in C++</title>
		<link>http://blog.hvidtfeldts.net/index.php/2010/05/cinder-creative-coding-in-c/</link>
		<comments>http://blog.hvidtfeldts.net/index.php/2010/05/cinder-creative-coding-in-c/#comments</comments>
		<pubDate>Sat, 29 May 2010 19:54:28 +0000</pubDate>
		<dc:creator>Mikael Christensen</dc:creator>
				<category><![CDATA[Generative Art]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.hvidtfeldts.net/?p=508</guid>
		<description><![CDATA[Cinder is a new C++ library for creative applications. It is free, open-source, and cross-platform (Windows, Mac, iPhone/iPad, but no Linux).  Think of it as Processing, but in C++. 
Cinder offers classes for image processing, matrix, quaternion, spline and vector math, but also more general stuff like XML, HTTP, IO, and 2D Graphics. 
The [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://libcinder.org/">Cinder</a> is a new C++ library for <i>creative applications</i>. It is free, open-source, and cross-platform (Windows, Mac, iPhone/iPad, but no Linux).  Think of it as Processing, but in C++. </p>
<p>Cinder offers classes for image processing, matrix, quaternion, spline and vector math, but also more general stuff like XML, HTTP, IO, and 2D Graphics. </p>
<p>The more generic stuff is implemented via third-party libraries, such as TinyXML, Cairo, AntTweakBar (a simple GUI), Boost (smart pointers and threads) and system libraries (QuickTime, Cocoa, DirectAudio, OpenGL) &#8211; certainly an ambitious range of technologies and uses.</p>
<p>Their <a href="http://libcinder.org/gallery/">examples</a> are impressive, especially some of the demos by Robert Hodgin (flight404):</p>
<p><a href="http://roberthodgin.com/cymatic-ferrofluid/"><img src="http://blog.hvidtfeldts.net/media/ferroliquid.png" /></a><br />
<a href="http://roberthodgin.com/cymatic-ferrofluid/">Cymatic Ferrofluid</a> by flight404 (be sure to watch the videos).</p>
<p>Robert Hodgin has also created a very nice Cinder <a href="http://libcinder.org/docs/hello_cinder.html">tutorial</a>, which guides you through the creation of a quite spectacular particle effect.</p>
<p>Finally, it should be noted the <a href="http://www.openframeworks.cc/">openFrameworks</a> offers related functionality, also based on C++.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hvidtfeldts.net/index.php/2010/05/cinder-creative-coding-in-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Few Links</title>
		<link>http://blog.hvidtfeldts.net/index.php/2010/05/a-few-links/</link>
		<comments>http://blog.hvidtfeldts.net/index.php/2010/05/a-few-links/#comments</comments>
		<pubDate>Wed, 05 May 2010 21:12:49 +0000</pubDate>
		<dc:creator>Mikael Christensen</dc:creator>
				<category><![CDATA[Generative Art]]></category>
		<category><![CDATA[Mandelbulb]]></category>
		<category><![CDATA[Mathematical Art]]></category>

		<guid isPermaLink="false">http://blog.hvidtfeldts.net/?p=487</guid>
		<description><![CDATA[&#8230;some old, some new.
The Demoscene
It was only a matter of time, before a Mandelbox would show up on the Demoscene:

Hochenergiephysik by Still is a 4K demo, featuring the Mandelbox. If 4KB sounds bloated, Still has also created a 1K demo: Futurism by Still.
And while we are at it, may I suggest these as well: The [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230;some old, some new.</p>
<h2>The Demoscene</h2>
<p>It was only a matter of time, before a Mandelbox would show up on the Demoscene:</p>
<p><a href="http://www.pouet.net/prod.php?which=54917&#038;howmanycomments=-1"><img src="http://blog.hvidtfeldts.net/media/hoch.jpg" /></a></p>
<p><a href="http://www.pouet.net/prod.php?which=54917&#038;howmanycomments=-1">Hochenergiephysik</a> by Still is a 4K demo, featuring the Mandelbox. If 4KB sounds bloated, Still has also created a 1K demo: <a href="http://pouet.net/prod.php?which=54812">Futurism</a> by Still.</p>
<p>And while we are at it, may I suggest these as well: <a href="http://www.youtube.com/watch?v=lG-g1l0FtDM&#038;feature=channel">The Cube</a> by Farbrausch, <a href="http://www.youtube.com/watch?v=k_oTQd93eRI">Rove</a> by Farbraush, and <a href="http://www.youtube.com/watch?v=ON4N0yGz4n8">Agenda Circling Forth</a> by Fairlight &#038; Cncd.</p>
<h2>New software</h2>
<p>NodeBox 2.0 is out in a <a href="http://beta.nodebox.net/">beta version</a>. The big news is that it is now available for Windows. It also sports a graph-based GUI for patching nodes together.</p>
<p><a href="http://news.deviantart.com/article/105035/">Tacitus</a> is a GUI for creating per-pixel GPU effects. In concept it is similar to Pixel Bender. It has a very nice look and feel, but a big short-coming is that it is not possible to directly edit the GPU scripts in the GUI &#8211; you have to compile your script to a plugin via an included compiler. Another feature I miss, is the ability to directly navigate the camera using the mouse on the viewport, instead of using sliders (something Pixel Bender also doesn&#8217;t support). But Tacitus is still in beta, and it will be interesting to see where it is going. It comes with a single plugin, a port of Subblue&#8217;s Mandelbulb Pixel Bender plugin. Tacitus is Windows only.</p>
<p><a href="http://www.neuro-systems.net/documents/substance.html"><img src="http://blog.hvidtfeldts.net/media/substance.jpg" /></a></p>
<p>NeuroSystems <a href="http://www.neuro-systems.net/documents/substance.html">Substance</a> is an &#8216;Evolutionary and Organic Art Creator&#8217;. Some interesting concepts here, including a real-time global illumination raytracer (video <a href="http://www.youtube.com/watch?v=PA7bqh3hTwc&#038;feature=player_embedded">here</a>). Unfortunately, the raytracer is not part of the free viewer. Surprisingly, NeuroSystems impressive visualization technology seems to originate from <a href="http://www.neuro-systems.net/documents/simplant.html">SIMPLANT</a>, a real-time 3D breast implant simulator. Substance is Windows only, and the full (non-free) versions should be released very soon.</p>
<h2>Gifts for Geeks</h2>
<p><a href="http://scientificsonline.com/product.asp_Q_pn_E_3151544"><img src="http://blog.hvidtfeldts.net/media/calabi.jpg" /></a></p>
<p>A <a href="http://scientificsonline.com/product.asp_Q_pn_E_3151544">Calabi-Yau Manifold Crystal</a> sculpture.</p>
<p><center><a href="http://www.gomboc-shop.com/"><img src="http://blog.hvidtfeldts.net/media/gomboc.jpg" /></a></center><br />
<br />
A <a href="http://www.gomboc-shop.com/">Gömböc</a>. &#8220;The &#8216;Gömböc&#8217; is the first known homogenous object with one stable and one unstable equilibrium point, thus two equilibria altogether on a horizontal surface. It can be proven that no object with less than two equilibria exists.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hvidtfeldts.net/index.php/2010/05/a-few-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Reality of Fractals</title>
		<link>http://blog.hvidtfeldts.net/index.php/2010/04/the-reality-of-fractals/</link>
		<comments>http://blog.hvidtfeldts.net/index.php/2010/04/the-reality-of-fractals/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 20:49:02 +0000</pubDate>
		<dc:creator>Mikael Christensen</dc:creator>
				<category><![CDATA[Fractals]]></category>
		<category><![CDATA[Generative Art]]></category>
		<category><![CDATA[Mandelbulb]]></category>
		<category><![CDATA[Mathematical Art]]></category>

		<guid isPermaLink="false">http://blog.hvidtfeldts.net/?p=430</guid>
		<description><![CDATA[&#8220;&#8230; no one, not even Benoit Mandelbrot himself [...] had any real preconception of the set&#8217;s extraordinary richness. The Mandelbrot set was certainly no invention of any human mind. The set is just objectively there in the mathematics itself. If it has meaning to assign an actual existence to the Mandelbrot set, then that existence [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><i>&#8220;&#8230; no one, not even Benoit Mandelbrot himself [...] had any real preconception of the set&#8217;s extraordinary richness. The Mandelbrot set was certainly no invention of any human mind. The set is just objectively there in the mathematics itself. If it has meaning to assign an actual existence to the Mandelbrot set, then that existence is not within our mind, for no one can fully comprehend the set&#8217;s endless variety and unlimited complication.&#8221;</i></p>
<p>Roger Penrose (from The Road to Reality)
</p></blockquote>
<p>The recent proliferation of 3D fractals, in particular the Mandelbox and <a href="/index.php/category/mandelbulb/index.php/category/mandelbulb/">Mandelbulb</a>, got me thinking about the reality of these systems. The million dollar question is whether we <i>discover</i> or <i>construct</i> these entities. Surely these systems give the impression of exploring uncharted territory, perhaps even looking into another world. But the same can be said for many traditional man-made works of art.</p>
<p>I started out by citing Roger Penrose. He is a mathematical Platonist, and believes that both the fractals worlds (such as the Mandelbrot set) and the mathematical truths (such as Fermat&#8217;s last theorem) are discovered. In his view, the mathematical truths have an eternal, unchanging, objective existence in some kind of Platonic ideal world, independent of human observers. </p>
<p>In Penrose&#8217;s model, there are three distinct worlds: the physical world, the mental world (our perception of the physical world), and the cryptic Platonic world. Even Penrose himself admits that the connections and interactions between these worlds are mysterious. And personally I cannot see any kind of evidence pointing in favor of this third, metaphysical world.</p>
<p><a href="http://makinmagic.deviantart.com/art/Designer-World-158071809"><img src="http://blog.hvidtfeldts.net/media/makin.png" /></a><br />
<a href="http://makinmagic.deviantart.com/art/Designer-World-158071809">Designer World</a> by David Makin</p>
<p>Roger Penrose is a highly renowned mathematician and physicist, and I value his opinions and works highly. In fact, it was one of his earlier books, The Emperors New Mind, that in part motivated me to become a physicist myself. But even though he is probably one of the most talented mathematicians living today, I am not convinced by his Platonist belief. </p>
<p>Personally, I subscribe to the less exotic <i>formalist</i> view: that the mathematical truths are the theorems we can derive by applying a set of deduction rules to a set of mathematical axioms. The axioms are not completely arbitrary, though. For instance, a classic mathematical discipline, such as Euclidean geometry, was clearly motivated by empirical observations of the physical world. The same does not necessarily apply to modern mathematical areas. For instance, Lobachevsky&#8217;s non-Euclidean geometry, was conceived by exploring the consequences of modifying one of Euclid&#8217;s fundamental postulates (interestingly non-Euclidean geometry later turned out to be useful in describing the physical world through Einstein&#8217;s general theory of relativity). </p>
<p>But if modern mathematics has become detached from its empirical roots, what governs the evolution of modern mathematics? Are all formal systems thus equally interesting to study? My guess is that most mathematicians gain some kind of intuition about what directions to pursue, based on a mixture of trends, historical research, and feedback from applied mathematics.</p>
<p><a href="http://krzysztofmarczak.deviantart.com/art/Mandelballs-160925525"><img src="http://blog.hvidtfeldts.net/media/mandelballs.png" /></a><br />
<a href="http://krzysztofmarczak.deviantart.com/art/Mandelballs-160925525">Mandelballs </a> by Krzysztof Marczak [Mandelbox / Juliabulb mix]</p>
<p>Does my formalist position mean that I consider the Mandelbrot set to be a man-made creation, in the same category as a Picasso painting or a Bach concert? Not exactly. Because I do believe in a <i>physical</i> realism (in the sense that I believe in a objective, physical world independent of human existence), and since I do believe some parts of mathematics is inspired by this physical world and tries to model it, I believe some parts of mathematics can be attributed an objective status as well. But it is a weaker kind of objective existence: the mathematical models and structures used to describe reality are not persistent and ever-lasting, instead they may be refined and altered, as we progressively create models with greater predictive power. And I think this is the reason fractals often resemble natural structures and phenomena: because the mathematics used to produce the fractals was inspired by nature in the first place. Let me give another example:</p>
<p><a href="http://www.fractalforums.com/index.php?action=gallery;sa=view;id=1626"><img src="http://blog.hvidtfeldts.net/media/eggs.png" /></a><br />
<a href="http://www.fractalforums.com/index.php?action=gallery;sa=view;id=1626">Teeth</a> by Jesse</p>
<p>Would a distant alien civilization come up with the same Mandelbrot images as we see? I think it is very likely. Any advanced civilization studying nature, would most likely have created models such as the natural numbers, the real numbers, and eventually the complex numbers. The complex numbers are extremely useful when modeling many physical phenomena, such as waves or electrodynamics, and complex numbers are essential in the description of quantum mechanics. And if this hypothetical civilization had computational power available, eventually someone would investigate the convergence of a simple, iterated system like  <b>z = z<sup>2</sup> + c</b>. So there would probably be a lot of overlapping mathematical structures. But there would also be differences: for instance the construction of the slightly more complex Mandelbox set contains several human-made design decisions, making it less likely to be invented by our distant civilization.  </p>
<p>I think there is a connection to other areas of generative art as well. In the opening quote Penrose claims that no-one could have any real preconception of the Mandelbrot sets extraordinary richness. And the same applies to many generative systems: they are impossible to predict and often surprisingly complex and detailed. But this does not imply that they have a meta-physical Platonic origin. Many biological and physical systems share the same properties. And many of the most interesting generative systems are inspired by these physical or biological systems (for instance using models such as genetic algorithms, flocking behavior, cellular automata, reaction-diffusion systems, and L-systems). </p>
<p>Another point to consider is, that creating beautiful and interesting fractal images as the ones above, requires much more than a simple formula. It requires aesthetic intuition and skills to choose a proper palette, find an interesting camera location, and it takes many hours of formula parameter tweaking. I know this from my experiments with 3D fractals &#8211; I&#8217;m very rarely satisfied with my own results. </p>
<p>But to sum it all up: Even though fractals (and generative systems) may posses endless variety and unlimited complication, there is no need to call upon metaphysical worlds in order to explain them.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hvidtfeldts.net/index.php/2010/04/the-reality-of-fractals/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Shader Toy</title>
		<link>http://blog.hvidtfeldts.net/index.php/2010/02/shader-toy/</link>
		<comments>http://blog.hvidtfeldts.net/index.php/2010/02/shader-toy/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 21:39:47 +0000</pubDate>
		<dc:creator>Mikael Christensen</dc:creator>
				<category><![CDATA[GPU]]></category>
		<category><![CDATA[Generative Art]]></category>
		<category><![CDATA[Mandelbulb]]></category>
		<category><![CDATA[WebGL]]></category>

		<guid isPermaLink="false">http://blog.hvidtfeldts.net/?p=343</guid>
		<description><![CDATA[For some time I&#8217;ve been wanting to play around with pixel (fragment) shaders, but I couldn&#8217;t find a proper playground.
Then I stumbled upon Shader Toy, by Inigo Quilez (whom I&#8217;ve mentioned several times on this blog). A couple of things make Shader Toy stand out:

It runs inside your browser. It uses the emerging WebGL standard, [...]]]></description>
			<content:encoded><![CDATA[<p>For some time I&#8217;ve been wanting to play around with pixel (fragment) shaders, but I couldn&#8217;t find a proper playground.</p>
<p>Then I stumbled upon <a href="http://www.iquilezles.org/apps/shadertoy/">Shader Toy</a>, by Inigo Quilez (whom I&#8217;ve mentioned <a href="http://blog.hvidtfeldts.net/?s=inigo">several times</a> on this blog). A couple of things make Shader Toy stand out:</p>
<p><img src="/media/st1.jpg" /></p>
<p><i>It runs inside your browser</i>. It uses the emerging <a href="http://en.wikipedia.org/wiki/WebGL">WebGL</a> standard, which is JavaScript bindings for OpenGL (ES) 2.0. OpenGL can be used directly inside a Canvas HTML element, including support for custom shaders. As Shader Toy demonstrates, this makes it possible to do some very impressive stuff, such as real-time GPU-accelerated raytracing inside an element on a web page. </p>
<p><img src="/media/st2.jpg" /></p>
<p><i>The examples are great</i>. While Shader Toy itself is mostly a thin wrapper around the WebGL functionality, the great thing about it is the example shaders: 2D fractals and Demo Scene effects, but also complex examples like the <a href="http://blog.hvidtfeldts.net/index.php/2008/08/generative-art-in-4kb/">Slisesix</a> 4K demo, and examples of raytracing, and complex fractals, like the Quaternion Julia set, and the Mandelbulb.</p>
<p>The only problem with WebGL is, that it is not supported by the current generation of browsers. </p>
<p>The good news is that the nightly builds of Firefox, Safari (WebKit), and Chromium (Google Chrome) all support it, and are quite easy to install: <a href="http://www.khronos.org/webgl/wiki/Getting_a_WebGL_Implementation">this</a> is a good place for more information. If you use the Chromium builds, you don&#8217;t have to worry about messing up your existing browser configuration &#8211; the nightly builds are standalone versions and can be run without installation.</p>
<p>There are lots of complex shader tools out there: for instance, NVIDIAs <a href="http://developer.nvidia.com/object/fx_composer_home.html">FX Composer</a>, AMDs <a href="http://developer.amd.com/GPU/RENDERMONKEY/Pages/default.aspx">Rendermonkey</a>, TyphoonLabs OpenGL <a hreg="http://www.opengl.org/sdk/tools/ShaderDesigner/">Shader Designer</a>, and <a href="http://lumina.sourceforge.net/">Lumina</a>, but Shader Toy makes it very easy to get started with shaders. And it provides a rare insight into how those amazing 4K demos were made.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hvidtfeldts.net/index.php/2010/02/shader-toy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Generative Art Links &amp; Resources</title>
		<link>http://blog.hvidtfeldts.net/index.php/2010/01/generative-art-links-resources/</link>
		<comments>http://blog.hvidtfeldts.net/index.php/2010/01/generative-art-links-resources/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 20:48:55 +0000</pubDate>
		<dc:creator>Mikael Christensen</dc:creator>
				<category><![CDATA[Digital Art]]></category>
		<category><![CDATA[Generative Art]]></category>

		<guid isPermaLink="false">http://blog.hvidtfeldts.net/?p=326</guid>
		<description><![CDATA[I&#8217;ve started collecting links for Generative Art software, blogs, papers, websites and related stuff here:
Syntopia Generative Art Links


]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve started collecting links for Generative Art software, blogs, papers, websites and related stuff here:<br />
<a href="http://blog.hvidtfeldts.net/index.php/generative-art-links/">Syntopia Generative Art Links</a></p>
<p><a href="http://blog.hvidtfeldts.net/index.php/generative-art-links/"><br />
<img src="/media/big.jpg" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hvidtfeldts.net/index.php/2010/01/generative-art-links-resources/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Generative Art 2009 Conference (Milano)</title>
		<link>http://blog.hvidtfeldts.net/index.php/2009/12/generative-art-2009-conference-milano/</link>
		<comments>http://blog.hvidtfeldts.net/index.php/2009/12/generative-art-2009-conference-milano/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 21:56:52 +0000</pubDate>
		<dc:creator>Mikael Christensen</dc:creator>
				<category><![CDATA[Generative Art]]></category>
		<category><![CDATA[Science and Art]]></category>
		<category><![CDATA[Structure Synth]]></category>

		<guid isPermaLink="false">http://blog.hvidtfeldts.net/?p=183</guid>
		<description><![CDATA[This week (15-17 December) I attended the Generative Art 2009 conference in Milano, Italy. It is a conference with a quite broad and diverse focus attended by both artists and academics from many different fields. And, as far as I know, it is the only conference on Generative Art.
I do not think of myself as [...]]]></description>
			<content:encoded><![CDATA[<p>This week (15-17 December) I attended the <a href="http://www.generativeart.com/">Generative Art 2009 conference</a> in Milano, Italy. It is a conference with a quite broad and diverse focus attended by both artists and academics from many different fields. And, as far as I know, it is the only conference on Generative Art.</p>
<p>I do not think of myself as an artist, and neither do I work in the academia. So it was not at all obvious for me to attend the conference. But when I got a an email from Celestino Soddu (the chairman of the conference) asking me to consider participating in the conference, I became curious since the conference revolves around many of the concepts that interests me: genetic algorithms, swarms and flocking, multi-agent systems, sound synthesis, architecture, digital photography, etc&#8230;</p>
<p>So I went, and gave a short introduction to Structure Synth and its history (Chomsky&#8217;s formal grammars, Chris Coynes context-free design grammars, and the relation to Lindenmayer systems). </p>
<p>The paper is available here (PDF):<br />
<a href="http://www.hvidtfeldts.net/Structure-Synth-GA2009.pdf">Structural Synthesis using a Context-Free Grammar Approach</a>.</p>
<p><img src="/media/ss2.jpg" /><br />
<i>Structure Synth image</i>.</p>
<p>I will start out by saying that I enjoyed the conference a lot. People were very friendly and interesting, and I had a lot of good discussions. And I think the diverse mixture of different cultures, nationalities, fields and practices is exciting &#8211; even though it also meant that some of the presentations became too tangential to my interests &#8211; and some were even nearly incomprehensible to me. </p>
<p>Some of my personal highlights in the conference were <a href="http://www.sfu.ca/~eigenfel/">Arne Eigenfeldts</a> &#8220;In Equilibrio&#8221;, a multi-agent music system, <a href="http://www.ifi.uzh.ch/ailab/people/dbisig/index.html">Daniel Bisig</a> and <a href="http://www.intlab.soka.ac.jp/~unemi/">Tatsuo Unemis</a> &#8220;Swarms on Stage &#8211; Swarm Simulations for Dance Performance&#8221; and <a href="http://www.philipgalanter.com/">Philip Galanters</a> theoretical essay on &#8220;Fitness and Complexification in Evolutionary Art&#8221; &#8211; even though I do not agree with Philip here: I think the idea of establishing an aesthetic fitness function, which could be used by genetic algorithms, is a futile endeavor. The AI community seems to have had little progress with mimicking human behavior the last forty years (e.g. see my <a href="http://wiki.hvidtfeldts.net/doku.php?id=transcription">conversation</a> with last years Loebner prize contest winners), and surely aesthetic judgments require a lot beyond what is needed to pass a simple Turing test. </p>
<p><img src="/media/milano.jpg" /><br />
<i>Sculpture (found somewhere in Milano)</i>.</p>
<p>Another highlight was Celestino Soddu&#8217;s own introduction &#8211; it contained a slideshow with an enormous amount of his own generated architectural <a href="http://www.argenia.it/">works</a>, and I think it demonstrated an impressive and consistent approach to generative architecture. But it also made me wonder if we will ever see a skyscraper created by a generative system.</p>
<p>As a final note, I also think the academic community should try to establish some sort of communication to the vibrant generative art internet community and demo scene practitioners. I am not sure exactly how this could be accomplished, but many interesting projects seems to emerge from these settings.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hvidtfeldts.net/index.php/2009/12/generative-art-2009-conference-milano/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Assorted Links</title>
		<link>http://blog.hvidtfeldts.net/index.php/2009/11/assorted-links/</link>
		<comments>http://blog.hvidtfeldts.net/index.php/2009/11/assorted-links/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 20:40:46 +0000</pubDate>
		<dc:creator>Mikael Christensen</dc:creator>
				<category><![CDATA[Context Free]]></category>
		<category><![CDATA[Generative Art]]></category>
		<category><![CDATA[Live Coding]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.hvidtfeldts.net/?p=166</guid>
		<description><![CDATA[Generative Music Software
Adam M. Smith has begun working on cfml &#8211; a context-free music language. It is a Context-Free Design Grammar &#8211; for music. I&#8217;m very interested in how this develops. 

A graphical representation of cfml output (original here)
Cfml is implemented as an Impromptu library. Impromptu is a live coding environment, based on the Scheme [...]]]></description>
			<content:encoded><![CDATA[<h2>Generative Music Software</h2>
<p>Adam M. Smith has begun working on <a href="http://eis-blog.ucsc.edu/2009/11/cfml-the-context-free-music-language/">cfml</a> &#8211; a context-free music language. It is a Context-Free Design Grammar &#8211; for music. I&#8217;m very interested in how this develops. </p>
<p><img src="/media/cfml.jpg" /><br />
<i>A graphical representation of cfml output (original <a href="http://eis-blog.ucsc.edu/2009/11/cfml-the-context-free-music-language/">here</a>)</i></p>
<p>Cfml is implemented as an <a href="http://impromptu.moso.com.au/">Impromptu</a> library. Impromptu is a live coding environment, based on the Scheme language, and has existed since 2005. Andrew Sorensen, the developer of Impromptu, has created some of the most impressive <a href="http://impromptu.moso.com.au/gallery.html"> examples of live coding</a> I have seen. In particular, the last example, inspired by Keith Jarrett&#8217;s Sun Bear Concerts, is really impressive. (I might be slightly biased here, since I believe that Jarrett&#8217;s solo piano concerts &#8211; especially the Köln Concert and the Sun Bear Concerts &#8211; rank among the best music ever made).</p>
<p>Finally, <a href="http://thewire.co.uk/articles/3177/">Supercollider 140</a> is a selection of audio pieces all created in <a href="http://www.audiosynth.com/">Supercollider</a> in 140 characters or less. An interesting example of using restrictions to spur creativity. Another example is the <a href="http://www.openprocessing.org/collections/rhizome.php">200 char</a> Processing sketch contest.</p>
<h2>Free Indy Game Development</h2>
<p><img src="/media/unreal.jpg" /></p>
<p>This month also saw the release of the <a href="http://www.udk.com/">Unreal Development Kit</a>, basically a version of the Unreal Engine 3, that is free for non-commercial use. This is great news for amateur game developers, but for me, the big question was whether this could be used as a powerful platform for generative art or live demos. I downloaded the kit and played around with it for a while, but while the 3D engine is stunning, UDK seems very geared towards graphical development (I certainly do not want to do <a href="http://www.unrealtechnology.com/media/banners/ue3_kismet1.jpg">draw my programs</a>, and the built-in Unrealscript does not impress me either). </p>
<p><img src="/media/av.jpg" /></p>
<p>In related news, that basic version of <a href="http://unity3d.com">Unity 2.6</a> is now also free. The main focus of Unity is also game development, but from a generative art / live demo perspective it holds greater promise. Unity offers an advanced graphics engine with user-scriptable shaders, integrated PhysX physics engine, and 3D audio. </p>
<p>Unitys development architecture is also very solid: scripts are written in (JIT-compiled) JavaScript, and components can be written in C# (using Mono, the open-source .NET implementation). Using a dynamic scripting language such as JavaScript to control a more rigid body of classes written in a more strict, statically typed environment, such as C#, is a good way to manage complex software. All Mozilla software &#8211; including Firefox &#8211; is built using this model (JavaScript + XPCOM C++ components), and newer platforms, such as Microsoft&#8217;s Silverlight platform also use it (JavaScript + C# components).</p>
<p>I made a few tests with Unity, and it is simple to control and instance even pretty complex structures. I considered writing a simple Structure Synth viewer using Unity, but was unfortunately put a bit off, when I discovered that Screen Space Ambient Occlusion and Full Screen Post-Processing Effects are not part of the free basic edition. The iPhone version of the Unity engine is not free either, but that is probably as could be expected. </p>
<p>It will be interesting to see if Unity will be picked up by the Generative Art community.</p>
<h2>SIGGRAPH Asia</h2>
<p>Finally two papers presented at SIGGRAPH Asia 2009 should be noted:</p>
<p><img src="/media/warhol.jpg" /></p>
<p><a href="http://graphics.stanford.edu/~niloy/research/shadowArt/shadowArt_sigA_09.html">Shadow Art</a> creates objects which cast three different shadows.</p>
<p><img src="/media/sketch.jpg" /></p>
<p><a href="http://cg.cs.tsinghua.edu.cn/montage/main.htm">Sketch2Photo</a> creates realistic photo-montages from freehand sketches annotated with text labels.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hvidtfeldts.net/index.php/2009/11/assorted-links/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Generative Bots</title>
		<link>http://blog.hvidtfeldts.net/index.php/2009/08/generative-bots/</link>
		<comments>http://blog.hvidtfeldts.net/index.php/2009/08/generative-bots/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 21:28:18 +0000</pubDate>
		<dc:creator>Mikael Christensen</dc:creator>
				<category><![CDATA[Generative Art]]></category>
		<category><![CDATA[Mathematical Art]]></category>

		<guid isPermaLink="false">http://blog.hvidtfeldts.net/index.php/2009/08/generative-bots/</guid>
		<description><![CDATA[GroBoto is a commercial 3D modeling tool built around the concept of bots. Bots are small iterated systems, with a few selected variables that can be customized. Bots are selected from a list of presets &#8211; more than 100 are available. Some of the Bots are very similar to what can be accomplished in Structure [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.groboto.com">GroBoto</a> is a commercial 3D modeling tool built around the concept of <em>bots</em>. Bots are small iterated systems, with a few selected variables that can be customized. Bots are selected from a list of presets &#8211; more than 100 are available. Some of the Bots are very similar to what can be accomplished in Structure Synth.</p>
<p><a href="http://www.groboto.com/gallery-i-01/Webpages/detail.np/detail-04.html"><img src="/media/gb1.jpg" /></a></p>
<p>GroBoto is a very polished product. The GUI is slick, and there are loads of advanced visualization customizations: textures, lightning and animation. When moving and rotating objects an OpenGL view is used, but the scene is always automatically rendered using an internal raytracer, which is really amazingly fast (typically less than a second). </p>
<p><a href="http://www.groboto.com/gallery-i-01/Webpages/detail.np/detail-01.html"><img src="/media/gb2.jpg" /></a></p>
<p>My only complaint is that you are somewhat limited by the presets offered by GroBoto. It would be amazing to be able to completely script the objects. Yet again, that would make GroBoto a tough competitor to Structure Synth <img src='http://blog.hvidtfeldts.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>GroBoto is available for $59 (using the coupon offer) for Windows and Mac OS X.</p>
<p>Be sure to a look at their <a href="http://www.groboto.com/Galleries.html">gallery</a> for more images or try the <a href="http://www.groboto.com/Store_Downloads.html">demo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hvidtfeldts.net/index.php/2009/08/generative-bots/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Generative Invaders</title>
		<link>http://blog.hvidtfeldts.net/index.php/2009/07/generative-invaders/</link>
		<comments>http://blog.hvidtfeldts.net/index.php/2009/07/generative-invaders/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 19:22:55 +0000</pubDate>
		<dc:creator>Mikael Christensen</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Generative Art]]></category>
		<category><![CDATA[Retro]]></category>

		<guid isPermaLink="false">http://blog.hvidtfeldts.net/index.php/2009/07/generative-invaders/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href=http://www.kloonigames.com/blog/games/post_it">Post I.T. Shooter</a> is small indie game by Kloonigames (run by Petri Purho, a computer science student in Finland, who each month creates a new indy game in seven days). </p>
<p><img src="/media/invaders_small.png" /></p>
<p>Unique aesthetics combined with a nice soundtrack, and randomly generated invaders! </p>
<p>The invader generator was inspired by <a href="http://www.complexification.net/gallery/machines/invaderfractal/">Jared Tarbell&#8217;s Invader Fractal algorithm</a>. Be sure to also check out Dave Bollinger&#8217;s <a href="http://www.davebollinger.com/works/pixelrobots/">Pixel Robots</a> &#8211; also inspired by Tarbell&#8217;s work.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hvidtfeldts.net/index.php/2009/07/generative-invaders/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Grammars for Generative Art (Part III)</title>
		<link>http://blog.hvidtfeldts.net/index.php/2009/01/grammars-for-generative-art-part-iii/</link>
		<comments>http://blog.hvidtfeldts.net/index.php/2009/01/grammars-for-generative-art-part-iii/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 22:49:05 +0000</pubDate>
		<dc:creator>Mikael Christensen</dc:creator>
				<category><![CDATA[Generative Art]]></category>
		<category><![CDATA[Grammar]]></category>
		<category><![CDATA[Poetry]]></category>

		<guid isPermaLink="false">http://blog.hvidtfeldts.net/index.php/2009/01/grammars-for-generative-art-part-iii/</guid>
		<description><![CDATA[Part three of a mini-series on using grammars as generators:

Part I was about Context-Free Grammars and natural language parsing. 
Part II was about Lindenmeyer systems, Context Free design grammars, and Structure Synth.
This third part is about generative poetry and Tree-Adjoining Grammars.
Part IV will be about Style Grammars and Shape Grammars.
Issue 1: Fall 2008

(From Issue 1: [...]]]></description>
			<content:encoded><![CDATA[<p style="padding-bottom: 5px;">Part three of a mini-series on using grammars as generators:</p>
<ul style="padding-left:20px;margin-top:0px;">
<li><a href="http://blog.hvidtfeldts.net/index.php/2008/12/grammars-for-generative-art-part-i/">Part I</a> was about Context-Free Grammars and natural language parsing. </p>
<li><a href="http://blog.hvidtfeldts.net/index.php/2008/12/grammars-for-generative-art-part-ii/">Part II</a> was about Lindenmeyer systems, Context Free design grammars, and Structure Synth.
<li>This third part is about <i>generative poetry</i> and Tree-Adjoining Grammars.
<li>Part IV will be about Style Grammars and Shape Grammars.</ul>
<h2>Issue 1: Fall 2008</h2>
<p><img src="/media/poetry1.png" /><br />
(From Issue 1: Fall 2008)</p>
<p>In October 2008, Stephen McLaughlin and Jim Carpenter released &#8216;Issue 1: Fall 2008&#8242;, a 3785 page compilation of poems by more than 3000 contemporary American poets. (<a href="http://arsonism.org/issue1/Issue-1_Fall-2008.pdf">Download here</a>).</p>
<p>Besides the stunning size of the book, this would probably have gone relatively unnoticed, if it weren&#8217;t for the fact that the 3000+ authors had not submitted any poems to the editors. Neither were they able to recognize any of the poems as their own. This of course created <a href="http://saidwhatwesaid.com/">quite a stir</a>. </p>
<p>It turns out that the book was generated by <a href="http://etc.wharton.upenn.edu:8080/Etc3beta/">Erica T Carter</a>, which actually is the name of a computer program written by Jim Carpenter.</p>
<h2>Erica T Carter</h2>
<p>Erica T Carter (ETC3) uses <a href="http://en.wikipedia.org/wiki/Tree-adjoining_grammar">Tree-Adjoining Grammars</a> (TAGs) for generating poems. TAGs are related to formal grammars, but instead of production rules operating on symbolic sequences, TAGs operate on trees.</p>
<p><img src="/media/tag.png" /></p>
<p>Considering the example above, a tree may be inserted (substituted) into another tree, if its root node matches a terminal node (the a-2 and a-3 trees may be attached to the NP non-terminal). Besides the substitution operation, it is also possible to do <i>adjoining</i> operations, where a tree may be expanded by inserting another tree inside it (<a href="http://www1.cs.columbia.edu/~rambow/papers/joshi-rambow-2003.pdf">this paper</a> has a short introduction to TAGs). </p>
<p>&#8216;Erica T Carter&#8217; is open source and may be <a href="http://etc.wharton.upenn.edu:8080/Etc3beta/">downloaded (or tested) here</a>.</p>
<p>Judging from the source and comments, the phrase structures in the TAGs were handpicked by Jim Carpenter after analyzing works by Frank O&#8217;Hara, Sylvia Plath, Gary Snyder, and Rachel Blau DuPlessis (not that I have read anything by them). In the online version of Erica, the default grammar choice is the 166-trees &#8216;Mimetic&#8217; grammar, which is described as an <i>amalgam</i> of the rest of the grammars &#8211; I&#8217;m guessing that this is the one used for &#8216;Issue 1: Fall 2008&#8242;. </p>
<p>In addition to the trees, Erica uses a lot of extra information from a 30MB database (public available from the site too). The database contains lexicon tables with entries like &#8216;abashless = adj&#8217; and &#8216;abate = v&#8217; apparently based on Emily Dickinson Poems and Joseph Conrad&#8217;s Heart of Darkness (&#8217;Apocalypse Now&#8217;). The database also contains more exotic tables, like &#8216;pronunciation&#8217; (&#8217;anachronism = AH0 N AE1 K R AH0 N IH2 Z AH0 M&#8217;) which may be used to construct rhymes.</p>
<p>The auto-generated poems seems very impressive, but after skimming through the text some patterns emerge, which seems unlikely if the poems were to be written by different (human) authors: for instance 2205 lines start with &#8220;Like a &#8230;&#8221; (that is 4% of the 55685 total lines!).</p>
<p>On the other hand the poems impress by containing cross serial dependencies as in this example:</p>
<p><img src="/media/tag3.png" /></p>
<p>Where both the title and content of the poem refer to &#8216;background&#8217;. This particular feature &#8211; where different parts of the generated sentences correlate &#8211; is difficult to achieve with context free grammars, since the substitutions of symbols does not depend on how other symbols are expanded. </p>
<h2>Tree Adjoined Grammars and Context Sensitivity</h2>
<p>Tree Adjoined Grammars fits in between the Context Free and Context Sensitive classes in the Chomsky Hierarchy: they describe <a href="http://en.wikipedia.org/wiki/Mildly_context-sensitive_language">Mildly Context-sensitive languages</a>. </p>
<p>Where as Context Free grammars have the pleasant property of being parsable in polynomial space and time, they are not adequate for describing for example the natural languages (features such as cross serial dependencies and <a href="http://en.wikipedia.org/wiki/Agreement_(linguistics)">agreements</a> are difficult to capture: for instance a formal grammar for a natural language may contain &#8216;noun&#8217; and &#8216;verb&#8217; non-terminals. But nouns and verbs depend on each other &#8211; something which is not easily expressed in a context free grammar, leading to output such as &#8216;Words is funny&#8217;). </p>
<p>So the <i>Mildly</i> context-sensitive languages provide a middle ground &#8211; they are better at capturing the structure of natural languages, but still not as difficult to handle as a true context-sensitive language.</p>
<h2>Generative Art and the Freedom of Restrictions</h2>
<p>Now, why even care about the complexity of the grammars? After all we are not interested in analyzing syntax or deriving mathematical properties of the grammars, we are interested in <i>generating</i> structure. </p>
<p>For instance, why restrict Context Free Art and Structure Synth to context free systems? The cost of generating structures does not increase by switching to a more powerful grammar, only the cost of analyzing the systems. </p>
<p>I think the answer relates to the very essence of &#8216;generative art&#8217;. </p>
<p>For me, generative art is all about exploring systems, without being too much in control. When generating structures, it should not be possible to anticipate how a given structure turns out by looking at the rules. There should be a sense of indeterminism and surprise in the result. The system needs not to necessarily be driven by random choices in order to achieve this &#8211; for instance the Mandelbrot set is a good example of this: nobody would have been able to imagine how complex images a simple system like &#8220;z -> z^2+c&#8221; could create, yet there is nothing stochastic in the generation of the set.</p>
<p>Choosing to work within a restricted rule system is a way to give up some control and force yourself to think differently. You have to explore and work within the limitations of the system, which may lead to interesting and surprising results. </p>
<p>More generic languages, for instance the popular Java-based <a href="http://www.processing.org/">Processing</a>, have no limitations in expressiveness (Java, like all other general purpose programming languages, is <a href="http://en.wikipedia.org/wiki/Turing_complete">Turing complete</a>). Is Processing not suitable for generative art, because of its universal expressive power? Well, the answer is of course that Processing is very suitable and it is indeed widely used for producing generative art. In fact any Structure Synth or Context Free Art system could be emulated in Processing/Java because of this universal power. But Processing is also suitable for many other applications, like for instance <a href="http://www.amazon.com/Visualizing-Data-Explaining-Processing-Environment/dp/0596514557">Data Visualization</a> and other non-generative tasks. Context Free Art and Structure Synth on the other hand force you to explore generative systems.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.hvidtfeldts.net/index.php/2009/01/grammars-for-generative-art-part-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
