<?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>GrgrDvrt &#187; particules</title>
	<atom:link href="http://grgrdvrt.com/blog/tag/particules/feed/" rel="self" type="application/rss+xml" />
	<link>http://grgrdvrt.com/blog</link>
	<description>Un blog utilisant WordPress</description>
	<lastBuildDate>Tue, 10 Jan 2012 09:04:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Pixels + blur + paletteMap + colors</title>
		<link>http://grgrdvrt.com/blog/446/pixels-blur-palettemap-colors/</link>
		<comments>http://grgrdvrt.com/blog/446/pixels-blur-palettemap-colors/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 18:24:06 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Miam]]></category>
		<category><![CDATA[bitmapData]]></category>
		<category><![CDATA[couleur]]></category>
		<category><![CDATA[filtre]]></category>
		<category><![CDATA[paletteMap]]></category>
		<category><![CDATA[particules]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/blog/?p=446</guid>
		<description><![CDATA[start with something simple, change the code, get something unexpected, change the code, get something unexpected, change the code, get something unexpected...]]></description>
			<content:encoded><![CDATA[<p>Pixels:</p>


    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_0" width="785" height="625">
      <param name="movie" value="/storage/experiment_player.swf" />
      <param name="flashvars" value="file=/storage/446/pixels" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="/storage/experiment_player.swf" width="785" height="625" flashvars="file=/storage/446/pixels">
      <!--<![endif]-->
        
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
<br/>

<p>Pixels + blur :</p>


    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_1" width="785" height="625">
      <param name="movie" value="/storage/experiment_player.swf" />
      <param name="flashvars" value="file=/storage/446/blur" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="/storage/experiment_player.swf" width="785" height="625" flashvars="file=/storage/446/blur">
      <!--<![endif]-->
        
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
<br/>

<p>Pixels + blur + paletteMap :</p>


    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_2" width="785" height="625">
      <param name="movie" value="/storage/experiment_player.swf" />
      <param name="flashvars" value="file=/storage/446/palette" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="/storage/experiment_player.swf" width="785" height="625" flashvars="file=/storage/446/palette">
      <!--<![endif]-->
        
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
<br/>
<p><img src="/storage/446/palette2.jpg"><img style="margin-right:0px;" src="/storage/446/palette3.jpg"></p>

<p>Pixels + blur + paletteMap + colors :</p>

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_3" width="785" height="625">
      <param name="movie" value="/storage/experiment_player.swf" />
      <param name="flashvars" value="file=/storage/446/colors" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="/storage/experiment_player.swf" width="785" height="625" flashvars="file=/storage/446/colors">
      <!--<![endif]-->
        
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
<br/>
<p><img src="/storage/446/colors2.jpg"><img style="margin-right:0px;" src="/storage/446/colors3.jpg"></p>
<p><a href="/storage/446/Colors.as">sources</a></p><br/>
<p>Each step adds its own parameters which influence the final result, especially the blur radius and the paletteMap.<br/><br/>

 I haven&#8217;t used tools like <a href="http://blog.soulwire.co.uk/code/actionscript-3/simple-flash-prototype-gui-tool">Soulwire&#8217;s simple flash GUI tool</a> and it&#8217;s a mistake, I spent too much time to changing the code and compiling the swf just to set new parameters values.<br/><br/>

In the last experiment the color schemes are generated. I will probably write a post about that because it&#8217;s a subject I like a lot.<br/>
There are other experiments using paletteMap that I will show in another post because it&#8217;s really an interesting function.</p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/446/pixels-blur-palettemap-colors/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Des lignes</title>
		<link>http://grgrdvrt.com/blog/439/des-lignes/</link>
		<comments>http://grgrdvrt.com/blog/439/des-lignes/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 20:56:19 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Miam]]></category>
		<category><![CDATA[bitmapData]]></category>
		<category><![CDATA[couleur]]></category>
		<category><![CDATA[lignes]]></category>
		<category><![CDATA[mouvement]]></category>
		<category><![CDATA[particules]]></category>
		<category><![CDATA[perlin noise]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/blog/?p=439</guid>
		<description><![CDATA[Des fois le midi je mange vite alors il me reste un peu de temps pour faire des trucs avec des particules.]]></description>
			<content:encoded><![CDATA[
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_4" width="789" height="625">
      <param name="movie" value="/storage/439/curly.swf" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="/storage/439/curly.swf" width="789" height="625">
      <!--<![endif]-->
        
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>

<a href="/storage/439/sources.zip">sources</a>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/439/des-lignes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Perlinoisation</title>
		<link>http://grgrdvrt.com/blog/422/perlinoisation/</link>
		<comments>http://grgrdvrt.com/blog/422/perlinoisation/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 23:42:01 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Miam]]></category>
		<category><![CDATA[bitmapData]]></category>
		<category><![CDATA[couleur]]></category>
		<category><![CDATA[particules]]></category>
		<category><![CDATA[perlin noise]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/blog/?p=422</guid>
		<description><![CDATA[Le perlin noise c'est génial, ça marche à tous les coups.]]></description>
			<content:encoded><![CDATA[<p>Il y a un peu plus d&#8217;un an <a href="http://www.neuroproductions.be/">Neuroprod</a> faisait <a href="http://www.neuroproductions.be/experiments/image-vectors-convolutionfilter-fun/">des trucs avec des images</a>. Et ça m&#8217;a donné envie de jouer.<br/>
Sauf que les histoires de direction de l&#8217;image je m&#8217;en foutait un peu alors j&#8217;ai utilisé un bitmapData plein de perlin noise comme map pour orienter mes lignes.<p/>
<p>En lançant l&#8217;exemple ci-dessous, tu pourras admirer le résultat de tout ça et découvrir au passage qui sont nos invités mystères!!</p>

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_5" width="789" height="625">
      <param name="movie" value="/storage/422/perlinoisation/perlinoisation.swf" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="/storage/422/perlinoisation/perlinoisation.swf" width="789" height="625">
      <!--<![endif]-->
        
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>
<br/>

<p>Si tu as juste lancé l&#8217;animation tu as dû d&#8217;abord paniquer à la vue de nos amis et ensuite tu as vu un effet sympa.<br/>
Si tu la stoppe et que tu la relance tu vas activer un second mode bien plus intéressant dans lequel l&#8217;image se dégrade au cours du temps.<br/>
L&#8217;idée c&#8217;est que dans le premier mode ce sont les couleurs la photo originale qui sont utilisées tandis que dans le second mode c&#8217;est l&#8217;image transformée (telle qu&#8217;on la voit) qui sert de source.<p><br/>

<p>Voici une séquence obtenue avec une image un peu plus verte.<br/>
Au début les deux modes donnent à peu près la même chose : </p>
<img src="/storage/422/1a.jpg"><br/>
<p>Après une dizaine de minutes c&#8217;est de la bouillie : </p>
<img src="/storage/422/1b.jpg"><br/>
<p>À la fin l&#8217;image se divise en aplats relativement stables : </p>
<img src="/storage/422/1c.jpg"><br/><br/>
<p>Et sinon en noir et blanc ça fait des choses amusantes aussi : </p>
<p><img src="/storage/422/2a.jpg"><img style="margin-right:0px;" src="/storage/422/2c.jpg"></p>
<img src="/storage/422/2b.jpg"><br/>
<p>Si tu veux les sources, <a href="/storage/422/perlinoisation.rar">les voilà</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/422/perlinoisation/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>25 lignes, Novembre / Décembre</title>
		<link>http://grgrdvrt.com/blog/147/25-lignes-novembre-decembre/</link>
		<comments>http://grgrdvrt.com/blog/147/25-lignes-novembre-decembre/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 16:01:35 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Miam]]></category>
		<category><![CDATA[lignes]]></category>
		<category><![CDATA[particules]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[tentacules]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/blog/?p=147</guid>
		<description><![CDATA[C'est avec l'incitation "Que pouvez-vous faire avec 25 lignes de code" que <a href="http://www.bit-101.com/blog">Keith Peters</a> a lancé il y a quelques mois le <a href="http://www.25lines.com">concours 25 lines</a>. Ce qui est intéressant avec le recul, ce sont les évolutions du code au delà du concours.]]></description>
			<content:encoded><![CDATA[<p><a href="/storage/147/25-1.swf"><img alt="25lines1" src="/storage/147/25lines0.jpg"/></a>Quelques temps avant le concours j&#8217;avais vu une animation avec une séquence présentant des sortes de bulles remontant dans un fluide, genre effervescence. En voyant ça je me suis demandé si une sorte de <a href="http://fr.wikipedia.org/wiki/Mouvement_brownien">mouvement brownien</a> un peu horizontal avec un mouvement en accélération vers le haut pouvait produire l&#8217;effet. J&#8217;ai donc commencé à jouer avec des particules jusqu&#8217;à obtenir <a href="/storage/147/25-1.swf">ça</a>. <br/>Je remercie <a href="http://fr.nicoptere.net">Nicoptère</a> de m&#8217;avoir suggéré d&#8217;en faire quelque chose pour le concours <img src='http://grgrdvrt.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p><br/>

<p><a href="/storage/147/25-3.swf"><img alt="25lines1" src="/storage/147/25lines2.jpg"/></a>J’ai dans un premier temps adapté le principe à une disposition radiale. Ensuite en retravaillant plusieurs fois le mouvement j&#8217;ai obtenu quelque chose d&#8217;assez organique. Ce qui m&#8217;a amené à <a href="/storage/147/25-3.swf">ça</a></p>
<p>Ce mouvement est dû au fait que chaque &#8220;tentacule&#8221; est composée de plusieurs particules, contrairement à la première expérimentation où elles ne correspondent chacune qu&#8217;au tracé d&#8217;une seule particule.<br/>
Afin d&#8217;intégrer un peu d&#8217;interactivité ces particules se dirigent vers la souris avec une vitesse dépendant de leur position dans la tentacule. Au clic ce facteur s’inverse ce qui entraine le déplacement de toute la « Chose» vers la souris.<br/>
J’obtiens la couleur de chaque tentacule en tirant des nuances d’une couleur dominante prise aléatoirement, la couleur de chaque segment est simplement une interpolation entre une extrémité noire et l’autre de la couleur de la tentacule.<br/>Et finalement je suis arrivé parmi <a href="http://www.25lines.com/?page_id=139">les finalistes</a>.</p><br/>
<p><a href="/storage/147/tentacles3d.swf"><img alt="25lines1" src="/storage/147/25lines3.jpg"/></a>Pour le concours je tenais à faire quelque chose en 2D, malgré les apports du player 10 en matière de 3D. J&#8217;ai quand même rapidement tenté <a href="/storage/147/tentacles3d.swf">un petit passage en 3D</a>. Je pense qu&#8217;à l&#8217;occasion j&#8217;essaierai d&#8217;y retoucher. Entre autre j&#8217;aimerai bien faire des tests de z-sorting sur ce genre d&#8217;expérimentation.</p><br/>


<p>Ensuite étant complètement fan des <a href="http://www.rmx.cz/monsters/">processing monsters</a> je tenais à en faire un. Cette animation pouvait correspondre aux contraintes d&#8217;interactivité et de noir et blanc, je l&#8217;ai donc recodée en processing, mais en vrai code orienté objet cette fois. <a href="http://www.rmx.cz/monsters/2009-08/splouch/index.html">Voilà le résultat et les sources</a>.</p><br/>

<p><a href="http://wonderfl.net/code/5f8bb69afc365e7fd885bc9d9dbe2510d9ad27b7#"><img alt="mutation" src="/storage/147/25lines4.jpg"/></a>Finalement, en me baladant sur <a href="http://wonderfl.net/">wonderfl</a> j&#8217;ai découvert que mon code avait été <a href="http://wonderfl.net/search?q=splouch">repris et transformé</a> par plusieurs personnes <img src='http://grgrdvrt.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Il y en a même un qui a réécrit le code pour le rendre lisible.<br/><br/>Conclusion, ne laissez pas vos swf en plein soleil, après il mutent. Genre <a href="http://wonderfl.net/code/2d1431f28c89957d75c40befa1e2f938db858bef">lui</a> qui était à Arcachon la semaine dernière et <a href="http://wonderfl.net/code/f9c7b700ef7db8e0d6df026c0affc542e20ae32f">lui</a> qui se demandait pourquoi cette région d&#8217;Ukraine était si tranquille.</p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/147/25-lignes-novembre-decembre/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>qsdqsd</title>
		<link>http://grgrdvrt.com/blog/43/20080711qsdqsd/</link>
		<comments>http://grgrdvrt.com/blog/43/20080711qsdqsd/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 01:04:00 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Miam]]></category>
		<category><![CDATA[bitmapData]]></category>
		<category><![CDATA[mouvement]]></category>
		<category><![CDATA[particules]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/wordpress/?p=43</guid>
		<description><![CDATA[Tout plein de particules.]]></description>
			<content:encoded><![CDATA[
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_6" width="785" height="561">
      <param name="movie" value="/miam/starmonkey008.swf" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="/miam/starmonkey008.swf" width="785" height="561">
      <!--<![endif]-->
        
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>

<p>J&#8217;ai fabriqué ce truc en cours de flash, alors que l&#8217;intervenant nous signalait que la classe Shape était très optimisée pour les graphiques. Je me suis donc empressé de créer 2000 shapes avec un coup de lineTo dedans pour me faire des particules. Sur le conseil de l&#8217;intervenant j&#8217;ai remplacé le lineTo par un drawRect plus efficace. J&#8217;ai ainsi pu monter à 14000 particules.<br /><br />
 Plus tard <a href="http://www.nicoptere.net/blog/" hreflang="fr">Nicoptère</a> m&#8217;a incité à faire des setPixels sur un bitmapData. Là à 50000 particules on s&#8217;en sort pas mal.<br /><br />
 Pour le mouvement c&#8217;est basé sur la même chose que pour  <a href="/blog/index.php?post/2008/02/13/Lignes-en-mouvement" hreflang="fr">ces lignes</a>. L&#8217;idée c&#8217;est ça:</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="actionscript" style="font-family:monospace;">vitesse = <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">position</span> de la souris - <span style="color: #0066CC;">position</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> elasticité
vitesse <span style="color: #66cc66;">*</span>= frottement
<span style="color: #0066CC;">position</span> de la particule += vitesse</pre></td></tr></table></div>


<br />
 Avec des valeurs d&#8217;élasticité et de frottement différentes pour chaque particule l&#8217;ensemble forme une ligne cohérente que l&#8217;on maitrise plus ou moins avec la souris]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/43/20080711qsdqsd/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>qsdqsd</title>
		<link>http://grgrdvrt.com/blog/42/20080709qsdqsd/</link>
		<comments>http://grgrdvrt.com/blog/42/20080709qsdqsd/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 22:31:00 +0000</pubDate>
		<dc:creator>Grgrdvrt</dc:creator>
				<category><![CDATA[Miam]]></category>
		<category><![CDATA[bitmapData]]></category>
		<category><![CDATA[couleur]]></category>
		<category><![CDATA[filtre]]></category>
		<category><![CDATA[mouvement]]></category>
		<category><![CDATA[particules]]></category>
		<category><![CDATA[perlin noise]]></category>

		<guid isPermaLink="false">http://grgrdvrt.com/wordpress/?p=42</guid>
		<description><![CDATA[Bouger des particules d'après un perlinNoise, c'est fou!]]></description>
			<content:encoded><![CDATA[
    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" id="swfobj_7" width="785" height="561">
      <param name="movie" value="/miam/starmonkey005.swf" />
      <!--[if !IE]>-->
      <object type="application/x-shockwave-flash" data="/miam/starmonkey005.swf" width="785" height="561">
      <!--<![endif]-->
        
      <!--[if !IE]>-->
      </object>
      <!--<![endif]-->
    </object>

<p>À la base le mec intelligent c&#8217;est Nicoptère, avec le principe de <a href="http://www.nicoptere.net/blog/index.php/2008/06/01/39-shwoof" hreflang="fr">son effet swoosh</a> qui déplace des particules selon un perlinNoise.</p> <h4>Recette de cuisine:</h4> <br />
 <ul> <li>je pars d&#8217;une image en noir et blanc, là c&#8217;est un gros qsd créé par <a href="http://qudjesraigrdjvoudraietremaitredumonde.blogspot.com/" hreflang="fr">tantoitai</a> (notez la finesse du skin de son blog)</li> <br />
 <li>Je crée un bitmapData rempli de perlinNoise. Là je me casse pas trop la tête, je reprends celui de la doc de flash.</li> <br />
 <li>je parcours chaque pixel de l&#8217;image pour récupérer les position de chaque pixel noir. Pour ça je passe par un byteArray en espérant que c&#8217;est mieux que getPixel (j&#8217;ai jamais testé la différence).</li> <br />
 <li>Je crée un objet ayant d&#8217;une part des propriétés x et y basés sur les pixels de l&#8217;image et d&#8217;autre part une vitesse horizontale, une vitesse verticale et une couleur dont les valeurs sont respectivement déterminées par les couches r, v et b du perlinNoise.</li> <br />
 <li>Pour le mouvement j&#8217;additionne simplement les vitesse horizontales et verticales au positions x et y pour chaque objet. Cette vitesse est préalablement multiplié par une sinusoïdale dépendant du temps(formule littéraire pour Math.sin(t++) ), ce qui fait que l&#8217;image de base se déforme puis se reforme</li> <br />
 <li>Le rendu est obtenu en faisant un setPixel pour chacun de ces objets sur un bitmapData. Je n&#8217;efface jamais l&#8217;image, j&#8217;applique juste des filtres BlurFilter et ColorMatrix filter qui effacent progressivement en laissant une trainée (faut aller doucement là dessus, ça vire vite à la visualisation windows Mediaplayer)</li> </ul> <p>Bon forcément plus le bitmapData d&#8217;affichage est grand et plus y&#8217;a de particules moins c&#8217;est fluide. Donc voilà, vous avez tout les éléments pour faire un truc inutile mais tellement cool!</p>]]></content:encoded>
			<wfw:commentRss>http://grgrdvrt.com/blog/42/20080709qsdqsd/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

