<?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>blog.thomashourdel &#187; art</title>
	<atom:link href="http://blog.thomashourdel.com/category/art/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.thomashourdel.com</link>
	<description>Un blog... comme les autres.</description>
	<lastBuildDate>Mon, 18 May 2009 16:37:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Sténopé</title>
		<link>http://blog.thomashourdel.com/2009/04/19/stenope/</link>
		<comments>http://blog.thomashourdel.com/2009/04/19/stenope/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 20:51:59 +0000</pubDate>
		<dc:creator>Chman</dc:creator>
				<category><![CDATA[art]]></category>

		<guid isPermaLink="false">http://blog.thomashourdel.com/?p=242</guid>
		<description><![CDATA[Depuis quelques temps j&#8217;avais dans l&#8217;idée de me procurer un Polaroid, un vrai. C&#8217;est alors qu&#8217;un collègue de boulot mentionna le nom de Sténopé&#8230; Pour faire court, parce que je ne me sens pas l&#8217;ame d&#8217;écrire un pavé explicatif, j&#8217;ai fabriqué mes premiers appareils ce week end et installé ma chambre noir au sein de [...]]]></description>
			<content:encoded><![CDATA[<p>Depuis quelques temps j&#8217;avais dans l&#8217;idée de me procurer un Polaroid, un vrai. C&#8217;est alors qu&#8217;un collègue de boulot mentionna le nom de <a href="http://fr.wikipedia.org/wiki/Sténopé">Sténopé</a>&#8230; Pour faire court, parce que je ne me sens pas l&#8217;ame d&#8217;écrire un pavé explicatif, j&#8217;ai fabriqué mes premiers appareils ce week end et installé ma chambre noir au sein de mes toilettes.</p>
<p>Voici donc quelques uns de mes premiers résultats&#8230;</p>
<p style="text-align: center;"><a href="http://blog.thomashourdel.com/wp-content/uploads/2009/04/steno_2p.jpg"><img class="alignnone size-thumbnail wp-image-246" title="steno_2p" src="http://blog.thomashourdel.com/wp-content/uploads/2009/04/steno_2p-150x97.jpg" alt="steno_2p" width="150" height="97" /></a> <a href="http://blog.thomashourdel.com/wp-content/uploads/2009/04/steno_4p.jpg"><img class="alignnone size-thumbnail wp-image-247" title="steno_4p" src="http://blog.thomashourdel.com/wp-content/uploads/2009/04/steno_4p-150x97.jpg" alt="steno_4p" width="150" height="97" /></a></p>
<p style="text-align: center;"><a href="http://blog.thomashourdel.com/wp-content/uploads/2009/04/steno_6p.jpg"><img class="alignnone size-thumbnail wp-image-248" title="steno_6p" src="http://blog.thomashourdel.com/wp-content/uploads/2009/04/steno_6p-150x97.jpg" alt="steno_6p" width="150" height="97" /></a> <a href="http://blog.thomashourdel.com/wp-content/uploads/2009/04/steno_7p.jpg"><img class="alignnone size-thumbnail wp-image-249" title="steno_7p" src="http://blog.thomashourdel.com/wp-content/uploads/2009/04/steno_7p-150x98.jpg" alt="steno_7p" width="150" height="98" /></a></p>
<p style="text-align: center;"><a href="http://blog.thomashourdel.com/wp-content/uploads/2009/04/steno_8p.jpg"><img class="alignnone size-thumbnail wp-image-250" title="steno_8p" src="http://blog.thomashourdel.com/wp-content/uploads/2009/04/steno_8p-150x97.jpg" alt="steno_8p" width="150" height="97" /></a> <a href="http://blog.thomashourdel.com/wp-content/uploads/2009/04/steno_9p.jpg"><img class="alignnone size-thumbnail wp-image-251" title="steno_9p" src="http://blog.thomashourdel.com/wp-content/uploads/2009/04/steno_9p-150x96.jpg" alt="steno_9p" width="150" height="96" /></a></p>
<p>Pour certaines photos, j&#8217;ai un peu raté le développement et le tirage, ce qui laisse de belles marques toutes laides&#8230; Chacune a été exposée différemment, de 1 à 32 minutes.</p>
<p>Bref, ce fut une expérience intéressante que je compte bien continuer&#8230; Je suis encore loin d&#8217;être satisfait des résultats, même si certains avantages du sténopé ressortent clairement (la profondeur infinie, le bruit inexistant, les zones de pénombres propres, des aberrations chromatiques à tout va&#8230;).</p>
<p>Pour ceux que ça intéresse, quelques liens (principalement axés débutants) :</p>
<ul>
<li><a href="http://www.galerie-photo.com/stenope.html">http://www.galerie-photo.com/stenope.html</a></li>
<li><a href="http://www.matchboxpinhole.com/">http://www.matchboxpinhole.com/</a></li>
<li><a href="http://www.kodak.com/global/en/consumer/education/lessonPlans/pinholeCamera/pinholeCanBox.shtml">http://www.kodak.com/[...]/pinholeCanBox.shtml</a></li>
<li><a href="http://stenope.artblog.fr/263115/Comment-fabriquer-un-appareil-stenope/">http://stenope.artblog.fr/263115/Comment-fabriquer-un-appareil-stenope/</a></li>
<li><a href="http://pinhole.stanford.edu/ph.html">http://pinhole.stanford.edu/ph.html</a></li>
</ul>
<p><strong>Edit :</strong> les curieux trouveront les négatifs et d&#8217;autres photos <a href="http://www.thomashourdel.com/temp/steno/">ici</a>. Mis à jour à chaque nouvelle photo intéressante.</p>
<p><strong>(21.04.09) Edit :</strong> mise à jour des liens.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thomashourdel.com/2009/04/19/stenope/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fx Roundup #2</title>
		<link>http://blog.thomashourdel.com/2009/03/12/fx-roundup-2/</link>
		<comments>http://blog.thomashourdel.com/2009/03/12/fx-roundup-2/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 19:32:29 +0000</pubDate>
		<dc:creator>Chman</dc:creator>
				<category><![CDATA[art]]></category>

		<guid isPermaLink="false">http://blog.thomashourdel.com/?p=229</guid>
		<description><![CDATA[Je continue sur ma lancée avec cette fois-ci un travail sur le feu en lui-même et le mouvement d&#8217;une flamme.
 
En vidéo (h264 / 405&#215;720) : flame.mov. Pas de fumée, je me suis concentré sur la flamme en elle-même, son comportement et son shader. Le jittering au niveau de la sphère émettrice est dût au [...]]]></description>
			<content:encoded><![CDATA[<p>Je continue sur ma lancée avec cette fois-ci un travail sur le feu en lui-même et le mouvement d&#8217;une flamme.</p>
<p style="text-align: center;"><a href="http://blog.thomashourdel.com/wp-content/uploads/2009/03/flame_01.jpg"><img class="size-thumbnail wp-image-231 alignnone" title="flame_01" src="http://blog.thomashourdel.com/wp-content/uploads/2009/03/flame_01-84x150.jpg" alt="flame_01" width="84" height="150" /></a> <a href="http://blog.thomashourdel.com/wp-content/uploads/2009/03/flame_02.jpg"><img class="alignnone size-thumbnail wp-image-232" title="flame_02" src="http://blog.thomashourdel.com/wp-content/uploads/2009/03/flame_02-84x150.jpg" alt="flame_02" width="84" height="150" /></a></p>
<p>En vidéo (h264 / 405&#215;720) : <a href="http://blog.thomashourdel.com/wp-content/uploads/2009/03/flame.mov">flame.mov</a>. Pas de fumée, je me suis concentré sur la flamme en elle-même, son comportement et son shader. Le jittering au niveau de la sphère émettrice est dût au fait que je n&#8217;ai pas voulu perdre trop de temps avec la simulation et le rendu (sacrifice visuel, comme on dit).</p>
<p>Prochaine étape : gestion physique et destruction massive.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thomashourdel.com/2009/03/12/fx-roundup-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://blog.thomashourdel.com/wp-content/uploads/2009/03/flame.mov" length="918350" type="video/quicktime" />
		</item>
		<item>
		<title>FX Roundup #1</title>
		<link>http://blog.thomashourdel.com/2009/03/11/fumefx-fire-smoke/</link>
		<comments>http://blog.thomashourdel.com/2009/03/11/fumefx-fire-smoke/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 19:07:26 +0000</pubDate>
		<dc:creator>Chman</dc:creator>
				<category><![CDATA[art]]></category>

		<guid isPermaLink="false">http://blog.thomashourdel.com/?p=222</guid>
		<description><![CDATA[Alors que tout le monde suit avec ardeur les débats stériles, hypocrites et pleins d&#8217;erreurs de Christine Albanel, je me concentre de plus en plus activement sur la refonte de mon book. Ce premier week-end de travail fut principalement consacré à quelques expérimentations et recherches dans le domaine des fluides. D&#8217;ailleurs à cette occasion j&#8217;en [...]]]></description>
			<content:encoded><![CDATA[<p>Alors que tout le monde suit avec ardeur les débats stériles, hypocrites et pleins d&#8217;erreurs de <a href="http://www.pcinpact.com/s/albanel.htm">Christine Albanel</a>, je me concentre de plus en plus activement sur la refonte de mon book. Ce premier week-end de travail fut principalement consacré à quelques expérimentations et recherches dans le domaine des fluides. D&#8217;ailleurs à cette occasion j&#8217;en profite : si une personne aurait l&#8217;amabilité de me vendre deux barrettes de 4GB de ram (PC6400 ou plus) pour un prix dérisoire, je suis preneur. Mon PC en chie. Vraiment.</p>
<p>Jusqu&#8217;à présent je m&#8217;étais restreint aux simulations de fluide type liquide, comme le montrent <a href="http://thomashourdel.com/index.php?p=portfolio&amp;s=fluids">certains exemples</a> de mon site vieillissant. Aujourd&#8217;hui, le feu et la fumée sont à l&#8217;honneur. J&#8217;ai retenu deux cas intéressants sur la dizaines de tests réalisés.</p>
<p style="text-align: center;"><a href="http://blog.thomashourdel.com/wp-content/uploads/2009/03/cig_fume.jpg"><img class="alignnone size-thumbnail wp-image-210" title="cig_fume" src="http://blog.thomashourdel.com/wp-content/uploads/2009/03/cig_fume.th.jpg" alt="cig_fume" width="130" height="130" /></a> <a href="http://blog.thomashourdel.com/wp-content/uploads/2009/03/donut_on_fire.jpg"><img class="alignnone size-thumbnail wp-image-211" title="donut_on_fire" src="http://blog.thomashourdel.com/wp-content/uploads/2009/03/donut_on_fire.th.jpg" alt="donut_on_fire" width="130" height="130" /></a></p>
<p>En vidéo (h264 / 1280&#215;720) : <a href="http://blog.thomashourdel.com/wp-content/uploads/2009/03/cig_fume.mov">cig_fume.mov</a> &amp; <a href="http://blog.thomashourdel.com/wp-content/uploads/2009/03/donut_on_fire.mov">donut_on_fire.mov</a>. Evidemment, comme il s&#8217;agit purement de R&amp;D, le rendu est brut et sans aucune prétention artistique.</p>
<p>Le premier joue avec la densité et la vorticité du fluide pour un résultat comparable à celui d&#8217;une fumée de cigarette. Le second, quant à lui, fut plus compliqué à mettre en place : combustion, gestion de l&#8217;expansion de la chaleur, sub-scattering sur le feu et la fumée, map d&#8217;illumination produite par les fluides et intéractions avec un corps solide.</p>
<p>Reste à trouver une utilité concrète à tout ça.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thomashourdel.com/2009/03/11/fumefx-fire-smoke/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://blog.thomashourdel.com/wp-content/uploads/2009/03/cig_fume.mov" length="4930863" type="video/quicktime" />
<enclosure url="http://blog.thomashourdel.com/wp-content/uploads/2009/03/donut_on_fire.mov" length="8974441" type="video/quicktime" />
		</item>
		<item>
		<title>Buddhabrot</title>
		<link>http://blog.thomashourdel.com/2009/01/09/buddhabrot/</link>
		<comments>http://blog.thomashourdel.com/2009/01/09/buddhabrot/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 19:45:50 +0000</pubDate>
		<dc:creator>Chman</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://blog.thomashourdel.com/?p=130</guid>
		<description><![CDATA[Pour faire suite à ce ticket, voici la dernière version de mon générateur de buddhabrot suivie d&#8217;un rendu de 196Mpix (résolution de 14000&#215;14000). Les sources C sont disponibles ici-même (license BSD) accompagnées du SConstruct qu&#8217;il faudra surement modifier pour s&#8217;aligner sur votre architecture, à supposer bien sûr que vous utilisez SCons et GCC. Par défaut [...]]]></description>
			<content:encoded><![CDATA[<p>Pour faire suite à <a href="http://blog.thomashourdel.com/2008/12/20/maths-art/">ce ticket</a>, voici la dernière version de mon générateur de buddhabrot suivie d&#8217;un rendu de 196Mpix (résolution de 14000&#215;14000). Les sources C sont disponibles <a href="http://blog.thomashourdel.com/wp-content/uploads/2009/01/buddhabrot.tar">ici-même</a> (license BSD) accompagnées du SConstruct qu&#8217;il faudra surement modifier pour s&#8217;aligner sur votre architecture, à supposer bien sûr que vous utilisez SCons et GCC. Par défaut :</p>
<pre>-march=core2 -fomit-frame-pointer -O3 -pipe -Wall -m64</pre>
<p>Quant à l&#8217;image&#8230;</p>
<p>J&#8217;ai cherché un moment une solution pour afficher une image haute définition sans passer par l&#8217;api Google Maps ou un serveur de traitement d&#8217;image (<a href="http://iipimage.sourceforge.net/">IIPImage</a> aurait été parfait dans le cas contraire). Je suis tombé sur plusieurs projets plus ou moins aboutis, quelques modules flash peu pratiques, pour finalement tomber sur <a href="http://livelabs.com/seadragon/">Seadragon</a> de&#8230; Microsoft. Non-libre, simplement gratuit pour le moment (bien qu&#8217;ayant croisé quelques threads sur le forum du lab concernant un passage à l&#8217;une de leurs licenses open source) mais il fait son boulot et le fait bien ! Ou presque&#8230; Comme vous le verrez, c&#8217;est assez lent en plein écran.<span id="more-130"></span></p>
<p>Seadragon est la technologie de traitement d&#8217;image de masse développée chez Microsoft qui fait beaucoup parler d&#8217;elle en ce moment. On la retrouve sur Surface (leur table multi-touch) et sur l&#8217;iPhone (!) sous le nom de <a href="http://www.itunes.com/app/Seadragonmobile">Seadragon Mobile</a>, disponible gratuitement sur l&#8217;Appstore. Petite note concernant la version iPhone, elle est tout bonnement impressionnante et d&#8217;une fluidité exemplaire, à tel point que Maps semble se trainer à côté.</p>
<p>Une version javascript est donc disponible pour afficher ses propres images hautes-defs sur son site. Sans plus attendre et en guise d&#8217;exemple, la buddhabrot (déplacement à la souris et zoom à l&#8217;aide de la molette) :</p>
<p><script src="http://seadragon.com/ajax/0.8/seadragon-min.js" type="text/javascript"></script><script type="text/javascript">
var viewer = null;
function init()
{
    viewer = new Seadragon.Viewer("container");
    viewer.openDzi("http://blog.thomashourdel.com/wp-content/uploads/2009/01/buddhabrot.xml");
    Seadragon.Config.maxZoomPixelRatio = 1;
    Seadragon.Config.minZoomDimension = 256;
}
Seadragon.Utils.addEvent(window, "load", init);
</script></p>
<div align="center">
<div id="container" style="background-color: #000; width: 430px; height: 320px; text-align: left;"></div>
</div>
<p>Note pour les impatients : si l&#8217;image semble de basse qualité lors d&#8217;un zoom violent, attendez quelques secondes qu&#8217;elle se charge correctement.</p>
<p>Son intégration au sein d&#8217;un site est très aisée et se résume à quelques lignes de javascript que l&#8217;on trouve dans la doc. Le problème se pose lors de la génération des tiles. Microsoft fournit un outil nommé Deep Zoom Composer. Dans l&#8217;absolu, c&#8217;est de la merde. Impossible de charger correctement une image de quelques dizaines de megabytes, quelque soit le format&#8230; Une petite recherche Google a finalement abouti sur <a href="http://blog.kapilt.com/2008/11/30/sharing-large-images-openlayers-gsiv-modestmaps-deepzoom-and-python/">un script Python</a> automatisant toute la procédure. Alors évidemment, pour des images de plusieurs centaines de Mpix, mieux vaut s&#8217;équiper en ram et utiliser la version 64bits de Python.</p>
<p>Concernant mon morceau de code, il est possible de l&#8217;optimiser de différentes façons. Par exemple, pour générer une image en noir et blanc, il suffit de se contenter d&#8217;un seul canal de couleur, ce qui, au passage, permet de diviser par trois l&#8217;usage en ram. En parlant de mémoire, générer une image de 400Mpix sera impossible avec 4Gb de ram sans swapper énormément. Pour cela, il est préférable de calculer chaque canal séparément et de les merger à la main sous Photoshop ou Gimp. Pour les geeks qui veulent s&#8217;amuser avec le code, pensez à modifier les valeurs suivantes :</p>
<pre>const uint width = 14000, height = 14000;
const ullong iterations = 50000000;

const int red_threshold = 50;
const int green_threshold = 600;
const int blue_threshold = 5500;</pre>
<p>Oh, et bonne année à ceux que je n&#8217;ai pas déjà vu.</p>
<p><strong>(10.01.09) Edit :</strong> Pour ceux qui veulent, voilà un <a href="http://blog.thomashourdel.com/wp-content/uploads/2009/01/buddhabrot_196mpix.jpg">jpeg</a> de la buddhabrot complète. Je conseille de faire un clique-droit/sauvegarder, l&#8217;image étant excessivement lourde.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thomashourdel.com/2009/01/09/buddhabrot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maths art</title>
		<link>http://blog.thomashourdel.com/2008/12/20/maths-art/</link>
		<comments>http://blog.thomashourdel.com/2008/12/20/maths-art/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 13:44:31 +0000</pubDate>
		<dc:creator>Chman</dc:creator>
				<category><![CDATA[art]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.thomashourdel.com/?p=74</guid>
		<description><![CDATA[J&#8217;ai toujours aimé connaitre le fonctionnement des choses et d&#8217;en faire des prototypes ou des tests sans pour autant que cela ne me serve à quoique ce soit (toute blague au gout douteux est à proscrire, merci). Je suis légèrement geek, c&#8217;est comme ça, j&#8217;assume. J&#8217;aime bien réfléchir à la façon dont est codé chaque [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;ai toujours aimé connaitre le fonctionnement des choses et d&#8217;en faire des prototypes ou des tests sans pour autant que cela ne me serve à quoique ce soit (toute blague au gout douteux est à proscrire, merci). Je suis légèrement geek, c&#8217;est comme ça, j&#8217;assume. J&#8217;aime bien réfléchir à la façon dont est codé chaque logiciel que j&#8217;utilise au quotidien, notamment ceux liés à l&#8217;imagerie numérique.</p>
<p>C&#8217;est en faisant joujou avec les matrices de convolution, filtres et autres méthodes de traitement d&#8217;image que j&#8217;en suis arrivé à m&#8217;intéresser à deux choses en particulier : les attracteurs chaotiques et les fractales.<span id="more-74"></span></p>
<p>Les premiers sont des <a href="http://en.wikipedia.org/wiki/Dynamical_system" target="_blank">systèmes dynamiques</a> simples à implémenter (une fois la formule connue) et donnent des résultats visuels assez intéressants. Prenons l&#8217;équation de Peter De Jong définit de la manière suivante :</p>
<p style="text-align: center;"><img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_983_955c804c3cd26139e7491b8a3d7e19fd.png" style="vertical-align:-17px; display: inline-block ;" alt="x_{n+1}=sin(ay_{n})-cos(bx_{n})" title="x_{n+1}=sin(ay_{n})-cos(bx_{n})"/></p>
<p style="text-align: center;"><img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_983_d076314c618f5aad3da6ebab30da804e.png" style="vertical-align:-17px; display: inline-block ;" alt="y_{n+1}=sin(cx_{n})-cos(dy_{n})" title="y_{n+1}=sin(cx_{n})-cos(dy_{n})"/></p>
<p>Où <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_ed20a959d410ccd843d9e1dfcee04228.png" style="vertical-align:-6.5px; display: inline-block ;" alt="a" title="a"/>, <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_2afd410e2e5b23dad6f18513b2f72d0d.png" style="vertical-align:-6.5px; display: inline-block ;" alt="b" title="b"/>, <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_5c385d6d334ea0a9301bd28ea067aba7.png" style="vertical-align:-6.5px; display: inline-block ;" alt="c" title="c"/> et <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_209014ef5d519d8f9e9ab107d554e96b.png" style="vertical-align:-6.5px; display: inline-block ;" alt="d" title="d"/> sont des constantes décimales. Le point (<img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_137b8dad9acade63b507e67878d3b94b.png" style="vertical-align:-6.5px; display: inline-block ;" alt="x" title="x"/>,<img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_f15df4ceab77f403bc3fed686a8c8edf.png" style="vertical-align:-6.5px; display: inline-block ;" alt="y" title="y"/>) va alors se déplacer de façon chaotique au cours du temps. L&#8217;image obtenue sera en fait une carte de probabilité pour que le point se trouve dans la zone définie par chaque pixel.</p>
<p>Il existe une variante de Clifford Pickover :</p>
<p style="text-align: center;"><img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_983_0adda3f2b84684c3ef1ca11d234594f2.png" style="vertical-align:-17px; display: inline-block ;" alt="x_{n+1}=sin(ay_{n})-c*cos(ax_{n})" title="x_{n+1}=sin(ay_{n})-c*cos(ax_{n})"/></p>
<p style="text-align: center;"><img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_983_437848107317707d4dab806f6889a849.png" style="vertical-align:-17px; display: inline-block ;" alt="y_{n+1}=sin(bx_{n})-d*cos(cy_{n})" title="y_{n+1}=sin(bx_{n})-d*cos(cy_{n})"/></p>
<p>On trouve dans la même catégorie l&#8217;attracteur de Tinkerbell :</p>
<p style="text-align: center;"><img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_fcbd00bdb8e89b6294b41b32bf595a34.png" style="vertical-align:-14.5px; display: inline-block ;" alt="x_{n+1}={x_{n}}^2-{y_{n}}^2+ax_{n}+by_{n}" title="x_{n+1}={x_{n}}^2-{y_{n}}^2+ax_{n}+by_{n}"/></p>
<p style="text-align: center;"><img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_d08f1e6c3f533f82da5ecdececeff582.png" style="vertical-align:-14.5px; display: inline-block ;" alt="y_{n+1}=2x_{n}y_{n}+cx_{n}+dy_{n}" title="y_{n+1}=2x_{n}y_{n}+cx_{n}+dy_{n}"/></p>
<p>Ou encore la Hénon map qui ne dépend que deux paramètres et qui a pour particularité de n&#8217;être purement chaotique pour les valeurs <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_7adabc7cb4fdad11a6cddc451dc1aca7.png" style="vertical-align:-6.5px; display: inline-block ;" alt="a=1.4" title="a=1.4"/> et <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_a74abe1c9e4ad6dbaad099a96a726a4e.png" style="vertical-align:-6.5px; display: inline-block ;" alt="b=0.3" title="b=0.3"/>. Ne me demandez pas de l&#8217;expliquer, cela sort de mes compétences.</p>
<p style="text-align: center;"><img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_4ed8a83ed1038ec6f1aeaa95c08740f4.png" style="vertical-align:-14.5px; display: inline-block ;" alt="x_{n+1}=y_{n}+1-a{x_{n}}^2" title="x_{n+1}=y_{n}+1-a{x_{n}}^2"/></p>
<p style="text-align: center;"><img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_7efa48c5246bb0fa3eeece7e9ecbd66c.png" style="vertical-align:-14.5px; display: inline-block ;" alt="y_{n+1}=bx_{n}" title="y_{n+1}=bx_{n}"/></p>
<p>Histoire d&#8217;illustrer le tout, voici quelques rendus obtenus à l&#8217;aide d&#8217;un script Python bien lent (disponible ci-dessous) :</p>
<p style="text-align: center;"><a href="http://blog.thomashourdel.com/wp-content/uploads/2008/12/peterdejongmap1.png"><img class="size-full wp-image-91 alignnone" src="http://blog.thomashourdel.com/wp-content/uploads/2008/12/peterdejongmap1th.png" alt="" width="150" height="150" /></a> <a href="http://blog.thomashourdel.com/wp-content/uploads/2008/12/peterdejongmap2.png"><img class="size-full wp-image-101 alignnone" src="http://blog.thomashourdel.com/wp-content/uploads/2008/12/peterdejongmap2th.png" alt="" width="150" height="150" /></a></p>
<p style="text-align: center;"><a href="http://blog.thomashourdel.com/wp-content/uploads/2008/12/cliffordmap1.png"><img class="alignnone size-full wp-image-95" src="http://blog.thomashourdel.com/wp-content/uploads/2008/12/cliffordmap1th.png" alt="" width="150" height="150" /></a> <a href="http://blog.thomashourdel.com/wp-content/uploads/2008/12/cliffordmap2.png"><img class="alignnone size-full wp-image-97" src="http://blog.thomashourdel.com/wp-content/uploads/2008/12/cliffordmap2th.png" alt="" width="150" height="150" /></a></p>
<p style="text-align: center;"><a href="http://blog.thomashourdel.com/wp-content/uploads/2008/12/henonmap.png"><img class="alignnone size-full wp-image-99" src="http://blog.thomashourdel.com/wp-content/uploads/2008/12/henonmapth.png" alt="" width="150" height="150" /></a> <a href="http://blog.thomashourdel.com/wp-content/uploads/2008/12/tinkerbellmap.png"><img class="alignnone size-full wp-image-103" src="http://blog.thomashourdel.com/wp-content/uploads/2008/12/tinkerbellmapth.png" alt="" width="150" height="150" /></a></p>
<p style="text-align: center;">Code source : <a href="http://blog.thomashourdel.com/wp-content/uploads/2008/12/ChaoticMaps.py">ChaoticMaps.py</a></p>
<p>Passons maintenant à quelque chose de visuellement plus stimulant. Toute personne connaissant de prêt ou de loin le terme &laquo;&nbsp;fractal&nbsp;&raquo; pensera immédiatement à l&#8217;ensemble de Mandelbrot. Il en existe une variante nommée Buddhabrot permettant d&#8217;obtenir, comme son nom l&#8217;indique, un visuel relativement proche de certaines représentations de Buddha. L&#8217;ensemble de base de Mandelbrot est définit de la façon suivante :</p>
<p>Soit <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_5c385d6d334ea0a9301bd28ea067aba7.png" style="vertical-align:-6.5px; display: inline-block ;" alt="c" title="c"/> un nombre complexe et <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_8039b4e0e6fe78bee7d3e5cfbfa343f0.png" style="vertical-align:-6.5px; display: inline-block ;" alt="f" title="f"/> une fonction définie par :</p>
<p style="text-align: center;"><img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_990.5_e8eb4bf7a0e3eb8c80a3cc28b82d44e7.png" style="vertical-align:-9.5px; display: inline-block ;" alt="f(z)=z^2+2" title="f(z)=z^2+2"/></p>
<p>Si <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_c198758da71d3c57f860a46bf455cfea.png" style="vertical-align:-14.5px; display: inline-block ;" alt="z_{0}=0" title="z_{0}=0"/>, on peut alors définir une suite récurrente par :</p>
<p style="text-align: center;"><img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_983_c401a996971cc45b07e7c1ec009b8625.png" style="vertical-align:-17px; display: inline-block ;" alt="z_{n+1}=f(z_{n})" title="z_{n+1}=f(z_{n})"/></p>
<p>L&#8217;ensemble de Mandelbrot est alors l&#8217;ensemble des <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_5c385d6d334ea0a9301bd28ea067aba7.png" style="vertical-align:-6.5px; display: inline-block ;" alt="c" title="c"/> tels que la suite <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_f3368568f1383db27e68c891882e8432.png" style="vertical-align:-14.5px; display: inline-block ;" alt="z_{n}" title="z_{n}"/> ne tende pas vers l&#8217;infini.</p>
<p>Plutôt que d&#8217;expliquer en détail le fonctionnement de la Buddhabrot, je vais me contenter de citer un très bon résumé de <a href="http://fr.wikipedia.org/wiki/Buddhabrot" target="_blank">wikipedia</a> :</p>
<blockquote><p>Pour obtenir le Buddhabrot, on utilise un tableau à deux dimensions, chaque case représentant un pixel. Pour des points <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_5c385d6d334ea0a9301bd28ea067aba7.png" style="vertical-align:-6.5px; display: inline-block ;" alt="c" title="c"/> choisis au hasard (ou, alternativement, régulièrement espacés) dans le plan, si ces points s&#8217;échappent après un certain nombre d&#8217;itérations (donc n&#8217;appartiennent pas à l&#8217;ensemble de Mandelbrot), on incrémente le tableau aux points correspondant aux valeurs successives de <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_1cfd85b4b16bd74555013b09a732afbd.png" style="vertical-align:-6.5px; display: inline-block ;" alt="z" title="z"/> prises par la suite <img src="http://blog.thomashourdel.com/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_f3368568f1383db27e68c891882e8432.png" style="vertical-align:-14.5px; display: inline-block ;" alt="z_{n}" title="z_{n}"/> (on &laquo;&nbsp;suit&nbsp;&raquo; le parcours des points). Après un certain nombre d&#8217;itérations, l&#8217;image obtenue en affectant une couleur à chaque point du tableau se stabilise sur le Buddhabrot.</p></blockquote>
<p>Voici le résultat de deux rendus (tolérances de couleurs différentes) effectués dans la nuit. La sortie d&#8217;origine est de 4096&#215;4096 pixels mais a évidemment été réduite pour un affichage web. Les versions haute-définitions sont toujours en cours de calcul, je les posterai à l&#8217;occasion pour ceux qui veulent zoomer et apprécier le niveau de détail (croyez-moi, les deux petites images ci-dessous ne rendent pas honneur à la beauté de la chose).</p>
<p style="text-align: center;"><a href="http://blog.thomashourdel.com/wp-content/uploads/2008/12/buddhabrot1.jpg"><img class="alignnone size-thumbnail wp-image-109" src="http://blog.thomashourdel.com/wp-content/uploads/2008/12/buddhabrot1-150x150.jpg" alt="" width="150" height="150" /></a> <a href="http://blog.thomashourdel.com/wp-content/uploads/2008/12/buddhabrot2.jpg"><img class="alignnone size-thumbnail wp-image-110" src="http://blog.thomashourdel.com/wp-content/uploads/2008/12/buddhabrot2-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p style="text-align: center;">Code source : <a href="http://blog.thomashourdel.com/wp-content/uploads/2008/12/buddhabrot.tar">buddhabrot.tar</a></p>
<p style="text-align: justify;">Les sources contiennent une version Python et une version C. Si vous le pouvez, favorisez évidemment la version C qui est 30 à 40 fois plus rapide.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thomashourdel.com/2008/12/20/maths-art/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
