<?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>Visual-Experiments.com &#187; photosynth</title>
	<atom:link href="http://www.visual-experiments.com/category/photosynth/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.visual-experiments.com</link>
	<description>ASTRE Henri experiments with Ogre3D and web stuff</description>
	<lastBuildDate>Mon, 16 Jan 2017 18:59:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Photosynth website on steroids :)</title>
		<link>http://www.visual-experiments.com/2014/02/03/photosynth-website-on-steroids/</link>
		<comments>http://www.visual-experiments.com/2014/02/03/photosynth-website-on-steroids/#comments</comments>
		<pubDate>Mon, 03 Feb 2014 04:01:35 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photosynth]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[mapping]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2490</guid>
		<description><![CDATA[Bad idea: hacking during the new year holiday and during the super bowl go Seahawks! Result? A very hacky google chrome extension which is adding several alpha/beta quality features to the photosynth.net website. This is my gift for 2014, enjoy! You can get the extension here. Make sure you are logged in on photosynth.net (and [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Bad idea</strong>: hacking during the new year holiday and <del datetime="2014-02-03T16:05:52+00:00">during the super bowl</del> go Seahawks! <strong>Result?</strong> A very hacky google chrome extension which is adding several alpha/beta quality features to the <a href="http://photosynth.net/">photosynth.net</a> website. This is my gift for 2014, enjoy! <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>You can <span style="font-size: 20px; margin-top: 20px; display: inline-block;">get the extension <a href="https://chrome.google.com/webstore/detail/photosynth-on-steroids/fajfmchemdjidpldfgffokgghpjeaael">here</a></span>. Make sure you are logged in on <a href="http://photosynth.net/">photosynth.net</a> (and have joined the beta) while using the extension as some photosynth2 feature are still only available to beta users (hopefully this limitation will be removed soon).<br />
</p>
<h3>Feature added by the extension:</h3>
<p>The extension is changing the top menu to:<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2014/02/ext_menu.jpg" alt="" title="New menu" width="576" height="42" class="alignnone size-full wp-image-2525" /></p>
<ul>
<li><strong>Search:</strong> previous Explore page + new links to fullscreen grid based ps2 explore page.</li>
<li><strong>Explore:</strong> new fullscreen map based explore page.</li>
<li><strong>My Synths:</strong> previous My Photosynths page + new tab (my map, my ps2, my info).</li>
<li><strong>Preview:</strong> link to the new preview website + animated preview on the create page.</li>
</ul>
<h3>Search:</h3>
<p>Animated preview when you hover a thumbnail of a PS2 + links to new explore page.<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2014/02/ext.search.jpg" alt="" title="Search" width="576" height="455" class="alignnone size-full wp-image-2527" /></p>
<p>Clicking on &#8220;Explore most recent PS2&#8243; or &#8220;Explore most viewed PS2&#8243; will display a page like this:<br />
<a href="http://www.visual-experiments.com/blog/wp-content/uploads/2014/01/ext.explore2.jpg"><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2014/01/ext.explore2-1024x555.jpg" alt="" title="Explore photosynth2" width="576" height="311" class="alignnone size-medium wp-image-2502" /></a><br />
The bottom row contains the latest synths of the current user (the one of the current synth being played). You can hover to see a preview and click to load a synth. <strong>Experimental feature</strong>: it&#8217;s using a new version of the viewer capable of quickly unload/load synths (don&#8217;t click too fast <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ).</p>
<h3>Explore:</h3>
<p>New fullscreen page showing synths (ps1, panorama and ps2) on a map. Sadly there is no proper ranking here so you need to zoom in a lot before being able to see synths. Also there is a <a href="https://code.google.com/p/chromium/issues/detail?id=335900">known bug</a> in google chrome which is preventing from seeing silverlight content opened in new tab.<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2014/02/animated_map1.gif" alt="" title="animated map" width="576" height="285" class="alignnone size-full wp-image-2537" /></p>
<h3>My Synths:</h3>
<p>The extension add 3 new tabs: My map, My PS2, My info<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2014/02/ext_menu_my_synths.jpg" alt="" title="My Synths: new tabs" width="576" height="20" class="alignnone size-full wp-image-2548" /></p>
<h4>My map</h4>
<p>This page is really complicated, adding a lot of feature&#8230; I will propably have another post explaining how to use it.<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2014/02/ext.my_map.jpg" alt="" title="My map" width="576" height="377" class="alignnone size-full wp-image-2546" /><br />
Basically you can map (=geotag) your own synths (ps1, panorama, ps2). You need to be logged in and click on <strong>&#8216;show untagged synths&#8217;</strong> then you can search for a place on the map, move the orange pushpin or right click to reassign it location. Then once the orange pushpin is at the place where you&#8217;ve captured your synth, you can click on &#8216;assign pushpin location&#8217; to assign the location to the corresponding synth. To select synths, you can press and hold <strong>&#8216;ctrl&#8217;</strong> and then draw a rectangle, from that selection you can either remove their map position or assign them a text tag. Clicking on <strong>&#8216;movable pushpins&#8217;</strong> will allow you to directly move your synth pushpins on the map. You can click on on <strong>&#8216;Find neighbors&#8217;</strong> to find synths arround your synth (orange synth = community, green = yours). You can also play with the timeline to only display synths captured in the corresponding time interval. You can also change the url and switch <strong>w=0</strong> to <strong>w=1</strong> to enable the wikipedia option. This option will search for the closest wikipedia of your synth. <strong>Please consider <a href="http://wikilocation.org/donate/">donating to WikiLocation</a> if you are using the w=1 option</strong>.</p>
<h4>My PS2</h4>
<p>This is a new page allowing you to quickly preview all your ps2 synths. They are grouped by topology (spin, panorama, wall, walk) and then sorted by captured date.<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2014/02/ext_my_synths_my_ps2.jpg" alt="" title="My Synths: My PS2" width="576" height="512" class="alignnone size-full wp-image-2550" /></p>
<h4>My info</h4>
<p>Sadly the captured date information is not properly filled by the system (it&#8217;s using the upload date). You need to click on &#8216;fix capturedDate&#8217; to set the captured date of all your ps2 (it might take a while: wait for the &#8216;done&#8217; alert box).<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2014/02/ext_my_synths_my_info.jpg" alt="" title="My Synths: My info" width="576" height="85" class="alignnone size-full wp-image-2551" /></p>
<h3>Preview &#8211; Create</h3>
<p>The extension is adding an animated preview which will help you to choose the proper topology:<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2014/02/preview_selector.jpg" alt="" title="Preview - create - animated preview" width="576" height="432" class="alignnone size-full wp-image-2559" /></p>
<h3>Comments</h3>
<p>This extension was created by me only and thus it doesn&#8217;t mean that this is representative of upcoming photosynth feature.</p>
<p>FYI this is not my first extension for the photosynth website, I&#8217;ve already created <a href="http://www.visual-experiments.com/2011/07/21/google-chrome-photosynth-viewer-using-three-js/">one which is adding a webgl fallback viewer</a> if you don&#8217;t have silverlight for photosynth1 content. </p>
<p><strong>Have fun exploring all feature introduced in this chrome extension!</strong></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2014%2F02%2F03%2Fphotosynth-website-on-steroids%2F&amp;title=Photosynth%20website%20on%20steroids%20%3A%29"><img src="http://www.visual-experiments.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.visual-experiments.com/2014/02/03/photosynth-website-on-steroids/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Photosynth 2 launch!</title>
		<link>http://www.visual-experiments.com/2014/01/25/photosynth-2-launch/</link>
		<comments>http://www.visual-experiments.com/2014/01/25/photosynth-2-launch/#comments</comments>
		<pubDate>Sat, 25 Jan 2014 05:25:32 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photosynth]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2455</guid>
		<description><![CDATA[Happy new year 2014! This is a short post in case you&#8217;ve missed the launch of Photosynth2. I&#8217;m glad to be able to break the silence and to show some nice stuff again . I&#8217;ve developed the WebGL viewer used to display ps2 synths and I&#8217;ve been busy capturing tons of ps2&#8242;s (I still have [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Happy new year 2014!</strong></p>
<p>This is a short post in case you&#8217;ve missed the launch of <a href="http://photosynth.net/preview">Photosynth2</a>. I&#8217;m glad to be able to break the silence and to show some nice stuff again <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . I&#8217;ve developed the WebGL viewer used to display ps2 synths and I&#8217;ve been busy <a href="http://photosynth.net/preview/users/dddExperiments">capturing tons of ps2&#8242;s</a> (I still have a lot of datasets waiting to be uploaded <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).</p>
<p>If you are using a modern browser you should be able to see this ps2 with the WebGL viewer:</p>
<p><iframe height="433" width="576" frameborder="0" src="//photosynth.net/preview/embed/19d5cf2b-77ed-439f-ac21-d3046320384c?delayload=true&#038;autoplay=true" allowfullscreen></iframe></p>
<p>Otherwise we are also generating an mp4 fallback:</p>
<p><video width="100%" height="100%" class="fallback-content" loop="loop" controls="controls"<br />
poster="https://ssl-cdn.ps1.photosynth.net/media/19d5cf2b-77ed-439f-ac21-d3046320384c/packet/thumbs/default/poster.jpg"><br />
<source src="https://ssl-cdn.ps1.photosynth.net/media/19d5cf2b-77ed-439f-ac21-d3046320384c/packet/thumbs/default/share.mp4" type="video/mp4"><br />
</video></p>
<p>In case you are wondering what&#8217;s new compared to photosynth1, I&#8217;ve created this video showing the benefit of a &#8216;good&#8217; geometry (ps2) for image-based rendering instead of using only a dominant plane (ps1):</p>
<p><iframe width="576" height="432" src="//www.youtube.com/embed/MnT7IiNKmdQ" frameborder="0" allowfullscreen></iframe></p>
<div style="height: 30px;"></div>
<p>Photosynth 1 is allowing unstructured capture and thus the navigation is very difficult. In Photosynth 2 we are constraining the user to capture images along a single path (1D manifold) and thus the navigation is very simple (and touch friendly <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ). Photosynth 2 introduces 4 different topology (camera motions):</p>
<p><strong>Spin:</strong></p>
<p><iframe height="432" width="576" frameborder="0" src="//photosynth.net/preview/embed/b64d7392-0f6e-4429-abb9-335863d4a47e?delayload=true&#038;autoplay=true" allowfullscreen></iframe></p>
<p><strong>Panorama:</strong></p>
<p><iframe height="432" width="576" frameborder="0" src="//photosynth.net/preview/embed/a38f96cb-08b7-4d9b-acfd-9b9880565d7d?delayload=true&#038;autoplay=true" allowfullscreen></iframe></p>
<p><strong>Walk:</strong></p>
<p><iframe height="432" width="576" frameborder="0" src="//photosynth.net/preview/embed/ff573422-83e3-4904-aa54-b45c34e0f244?delayload=true&#038;autoplay=true" allowfullscreen></iframe></p>
<p><strong>Wall:</strong></p>
<p><iframe height="432" width="576" frameborder="0" src="//photosynth.net/preview/embed/c2829ccc-db3a-4800-9b12-6567dc868b6f?delayload=true&#038;autoplay=true" allowfullscreen></iframe></p>
<p>BTW if you type: &#8220;The answer to life, the universe and everything&#8221;, on the view page of a synth a magic menu will appear with lot of options so that you can tweak your viewer. You will need to refresh the view page to apply most options and the changes are permanent (store in localStorage).</p>
<p><a href="http://www.visual-experiments.com/blog/wp-content/uploads/2014/01/42.jpg"><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2014/01/42-300x224.jpg" alt="" title="42" width="300" height="224"  class="aligncenter" /></a><br />
&#8216;m&#8217; and &#8216;c&#8217; are also two other shorcuts that you should try&#8230;<br />
<br />
I should have another post very soon. Stay tuned!</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2014%2F01%2F25%2Fphotosynth-2-launch%2F&amp;title=Photosynth%202%20launch%21"><img src="http://www.visual-experiments.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.visual-experiments.com/2014/01/25/photosynth-2-launch/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PhotoSynth WebGL panorama viewer</title>
		<link>http://www.visual-experiments.com/2011/11/01/photosynth-webgl-panorama-viewer/</link>
		<comments>http://www.visual-experiments.com/2011/11/01/photosynth-webgl-panorama-viewer/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 21:48:00 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[panorama]]></category>
		<category><![CDATA[three.js]]></category>
		<category><![CDATA[webgl]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2018</guid>
		<description><![CDATA[I&#8217;ve updated my PhotoSynth Downloader/Parser to be able to process Synth and Panorama as well. The network part of my PhotoSynth downloader was really ugly: I&#8217;ve rewrote it from scratch using libcurl. This version is really much faster and doesn&#8217;t crash anymore. But I&#8217;m a bit concerned about releasing the binary/source code. Allowing the download [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve updated my PhotoSynth Downloader/Parser to be able to process Synth and <strong>Panorama as well</strong>. The network part of my PhotoSynth downloader was really ugly: I&#8217;ve rewrote it from scratch using <a href="http://curl.haxx.se/libcurl/">libcurl</a>. This version is really much faster and doesn&#8217;t crash anymore. But I&#8217;m a bit concerned about releasing the binary/source code. Allowing the download of a panorama created with an iPhone doesn&#8217;t bother me but it&#8217;s really different with gigapixel panorama (and my downloader can download both).</p>
<p><a href="http://www.visual-experiments.com/demo/photosynth-pano-viewer-v1/"><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2011/11/viewer.jpg" alt="" title="PhotoSynth WebGL panorama viewer" width="578" height="409" class="aligncenter size-full wp-image-2033" /></a></p>
<p style="text-align: center; font-size: 20px; font-weight: bold;"><a href="http://www.visual-experiments.com/demo/photosynth-pano-viewer-v1/">Live Demo (require WebGL enabled browser)</a></p>
<p>My implementation is very strait-forward: my PhotoSynthHDDownloader creates 6 jpg from a panorama url. The 6 faces of the cube are downloaded at full resolution. This solution is suitable for panorama created with an iPhone (low res) but not acceptable for gigapixel panorama (you need progressive download/display). I&#8217;m using <a href="https://github.com/mrdoob/three.js/">Three.js</a> as WebGL engine and I&#8217;d like to implement a <strong>megatexture</strong> solution to display very large panorama (I&#8217;ve found a very impressive <a href="http://www.noxa.org/blog/2009/11/29/megatextures-in-webgl-2/">working implementation</a> and played with it: it is working with Google Chrome / Firefox 10).</p>
<p>To be able to handle panorama as well, <a href="https://chrome.google.com/webstore/detail/jnnhdiolpfgjbgagkbmdfidfofancmee">my Google Chrome extension</a> needs to use megatexture and it would be really more efficient if Microsoft could add the missing cors header to allow WebGL cross-origin (even only for photosynth.net). And as they&#8217;ve <a href="http://blogs.msdn.com/b/photosynth/archive/2011/10/18/photosynth-moving-to-windows-azure.aspx">just moved their data to Windows Azure</a>, I guess that it may be easier to add this header <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Otherwise I&#8217;ll have to use my special trick <a href="http://www.visual-experiments.com/2011/10/03/how-to-bypass-webgl-sop-restriction/">to bypass webgl same-origin-policy restriction</a>.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2011%2F11%2F01%2Fphotosynth-webgl-panorama-viewer%2F&amp;title=PhotoSynth%20WebGL%20panorama%20viewer"><img src="http://www.visual-experiments.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.visual-experiments.com/2011/11/01/photosynth-webgl-panorama-viewer/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>2010 visual experiments</title>
		<link>http://www.visual-experiments.com/2011/01/07/2010-visual-experiments/</link>
		<comments>http://www.visual-experiments.com/2011/01/07/2010-visual-experiments/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 16:01:17 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[augmented reality]]></category>
		<category><![CDATA[ogre3d]]></category>
		<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[artoolkit]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[cuda]]></category>
		<category><![CDATA[gpusurf]]></category>
		<category><![CDATA[opencl]]></category>
		<category><![CDATA[visual experiments]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=1254</guid>
		<description><![CDATA[Happy new year everyone! 2010 was a year full of visual experiments for me, I hope that you like what you see on this blog. In this post I&#8217;m making a little overview of all visual experiments created by me during this year. This is an opportunity to catch-up something you&#8217;ve missed! I&#8217;d like also [...]]]></description>
			<content:encoded><![CDATA[<h3>Happy new year everyone!</h3>
<p>2010 was a year full of <a href="http://www.visual-experiments.com/">visual experiments</a> for <a href="http://www.visual-experiments.com/about/resume-english/">me</a>, I hope that you like what you see on this blog. In this post I&#8217;m making a little overview of all visual experiments created by me during this year. This is an opportunity to catch-up something you&#8217;ve missed! I&#8217;d like also to thanks some person that have been helping me too: </p>
<ul style="margin-left: 20px;">
<li><strong>Olafur Haraldsson:</strong> for creating <a href="http://www.pgrammetry.com/">the photogrammetry forum</a></li>
<li><strong>Josh Harle:</strong> for his videos tutorials and <a href="http://blog.neonascent.net/">his nice blog</a></li>
<li><strong>You:</strong> for reading this <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<h3>Visual experiments created in 2010:</h3>
<p>During this year I have added some features to <strong>Ogre3D</strong>: </p>
<ul style="margin-left: 20px;">
<li><a href="http://www.visual-experiments.com/demos/artoolkitplus-for-ogre3d/">ArToolKitPlus</a>: augmented reality marker-based system</li>
<li><a href="http://www.visual-experiments.com/demos/ogrecuda/">Cuda</a>: for beginner only (at least advanced user could grab some useful code)</li>
<li><a href="http://www.visual-experiments.com/demos/ogreopencl/">OpenCL</a>: for beginner only (at least advanced user could grab some useful code)</li>
<li><a href="http://www.visual-experiments.com/demos/ogrecanvas/">Html5 Canvas</a>: implementation based on <a href="http://code.google.com/p/skia/">skia</a> for graphics and <a href="http://code.google.com/p/v8/">V8</a> for javascript scripting</li>
<li><a href="http://www.visual-experiments.com/2010/11/20/kinect-experiment-with-ogre3d/">Kinect</a>: this is a very hacky solution, I&#8217;ll improve it later</li>
</ul>
<p>I also have learned <strong>GPGPU programming</strong> by myself while coding a partial <a href="http://www.visual-experiments.com/demos/gpusurf/">GPUSurf</a> implementation based on Nico Cornelis paper. But this implementation is not complete and I&#8217;m willing to rewrite it with a GPGPU framework based on OpenGL and CG only (not Ogre3D). With such a framework writing Sift/Surf detector should be easier and more efficient.</p>
<p>I have created some visual experiments related to <strong>Augmented Reality</strong>:</p>
<ul style="margin-left: 20px;">
<li><a href="http://www.visual-experiments.com/2010/07/11/remote-augmented-reality-prototype/">Remote AR prototype</a></li>
<li><a href="http://www.visual-experiments.com/2010/12/13/augmented-reality-outdoor-tracking-becoming-reality/">Outdoor 3D tracking using point cloud generated by structure from motion software</a></li>
<li><a href="http://www.visual-experiments.com/2010/12/22/outdoor-tracking-using-panoramic-image/">Outdoor 2D tracking using panorama image</a></li>
</ul>
<p>My outdoor 3D tracking algorithm for augmented reality needs an accurate point cloud: this is why I&#8217;m interested in <strong>structure from motion</strong> and I&#8217;ve created two SfM toolkit:</p>
<ul style="margin-left: 20px;">
<li><a href="http://www.visual-experiments.com/sfmtoolkit/">SFMToolkit</a> (SiftGPU -> Bundler -> CMVS -> PMVS2)</li>
<li><a href="http://www.visual-experiments.com/photosynthtoolkit/">PhotoSynthToolkit</a> (PhotoSynth -> PMVS2)</li>
</ul>
<h3>Posts published in 2010:</h3>
<ul style="margin-left: 20px;">
<li>2010/12/22: <a href="http://www.visual-experiments.com/2010/12/22/outdoor-tracking-using-panoramic-image/">Outdoor tracking using panoramic image</a></li>
<li>2010/12/20: <a href="http://www.visual-experiments.com/2010/12/20/structure-from-motion-projects/">Structure from motion projects</a></li>
<li>2010/12/13: <a href="http://www.visual-experiments.com/2010/12/13/augmented-reality-outdoor-tracking-becoming-reality/">Augmented Reality outdoor tracking becoming reality</a></li>
<li>2010/11/20: <a href="http://www.visual-experiments.com/2010/11/20/kinect-experiment-with-ogre3d/">Kinect experiment with Ogre3D</a></li>
<li>2010/11/19: <a href="http://www.visual-experiments.com/2010/11/19/photosynthtoolkit-results/">PhotoSynthToolkit results</a></li>
<li>2010/11/09: <a href="http://www.visual-experiments.com/2010/11/09/photosynth-toolkit-updated/">PhotoSynth Toolkit updated</a></li>
<li>2010/11/05: <a href="http://www.visual-experiments.com/2010/11/05/structure-from-motion-toolkit-released/">Structure From Motion Toolkit released</a></li>
<li>2010/09/27: <a href="http://www.visual-experiments.com/2010/09/27/my-5-years-old-quiksee-competitor/">My 5 years old Quiksee competitor</a></li>
<li>2010/09/23: <a href="http://www.visual-experiments.com/2010/09/23/pmvs2-x64-and-videos-tutorials/">PMVS2 x64 and videos tutorials</a></li>
<li>2010/09/08: <a href="http://www.visual-experiments.com/2010/09/08/introducing-opensynther/">Introducing OpenSynther</a></li>
<li>2010/08/22: <a href="http://www.visual-experiments.com/2010/08/22/dense-point-cloud-created-with-photosyth-and-pmvs2/">Dense point cloud created with PhotoSynth and PMVS2</a></li>
<li>2010/08/19: <a href="http://www.visual-experiments.com/2010/08/19/my-photosynth-toolkit/">My PhotoSynth ToolKit</a></li>
<li>2010/07/12: <a href="http://www.visual-experiments.com/2010/07/12/pose-estimation-using-sfm-point-cloud/">Pose Estimation using SfM point cloud</a></li>
<li>2010/07/11: <a href="http://www.visual-experiments.com/2010/07/11/remote-augmented-reality-prototype/">Remote Augmented Reality Prototype</a></li>
<li>2010/07/08: <a href="http://www.visual-experiments.com/2010/07/08/structure-from-motion-experiment/">Structure From Motion Experiment</a></li>
<li>2010/06/25: <a href="http://www.visual-experiments.com/2010/06/25/gpu-surf-video-demo/">GPU-Surf video demo</a></li>
<li>2010/06/23: <a href="http://www.visual-experiments.com/2010/06/23/gpusurf-and-ogregpgpu/">GPUSurf and Ogre::GPGPU</a></li>
<li>2010/06/20: <a href="http://www.visual-experiments.com/2010/06/20/ogrecanvas-a-2d-api-for-ogre3d/">Ogre::Canvas, a 2D API for Ogre3D</a></li>
<li>2010/05/09: <a href="http://www.visual-experiments.com/2010/05/09/ogreopencl-and-ogrecanvas/">Ogre::OpenCL and Ogre::Canvas</a></li>
<li>2010/04/26: <a href="http://www.visual-experiments.com/2010/04/26/cuda-integration-with-ogre3d/">Cuda integration with Ogre3D</a></li>
<li>2010/04/09: <a href="http://www.visual-experiments.com/2010/04/09/multitouch-prototype-done-using-awesomium-and-ogre3d/">Multitouch prototype done using Awesomium and Ogre3D</a></li>
<li>2010/03/05: <a href="http://www.visual-experiments.com/2010/03/05/artoolkitplus-integration-with-ogre3d/">ArToolKitPlus integration with Ogre3D</a></li>
<li>2010/02/20: <a href="http://www.visual-experiments.com/2010/02/20/hello-world/">Hello World !</a></li>
</ul>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2011%2F01%2F07%2F2010-visual-experiments%2F&amp;title=2010%20visual%20experiments"><img src="http://www.visual-experiments.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.visual-experiments.com/2011/01/07/2010-visual-experiments/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Augmented Reality outdoor tracking becoming reality</title>
		<link>http://www.visual-experiments.com/2010/12/13/augmented-reality-outdoor-tracking-becoming-reality/</link>
		<comments>http://www.visual-experiments.com/2010/12/13/augmented-reality-outdoor-tracking-becoming-reality/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 10:08:11 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[ogre3d]]></category>
		<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[augmented reality]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[sift]]></category>
		<category><![CDATA[tracking]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=909</guid>
		<description><![CDATA[My interest in structure from motion was primary motivated by the capability of creating a point cloud that can be used as a reference for tracking reference. The video below is more a proof-of-concept than a prototype but this is an overview of my outdoor tracking algorithm for Augmented Reality: Analysis In a pre-processing step [...]]]></description>
			<content:encoded><![CDATA[<p>My interest in structure from motion was primary motivated by the capability of creating a point cloud that can be used as a reference for tracking reference. The video below is more a proof-of-concept than a prototype but this is an overview of my <strong>outdoor tracking algorithm for Augmented Reality</strong>:</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/DdVz4xQJPC0?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/DdVz4xQJPC0?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<h3>Analysis</h3>
<p>In a pre-processing step I&#8217;ve built a sparse point cloud of the place using my <a href="http://www.visual-experiments.com/2010/11/05/structure-from-motion-toolkit-released/">SFMToolkit</a>. Each vertex of the point cloud has several 2D Sift features correspondences. I&#8217;ve only kept one Sift descriptor per vertex (mean of the descriptors) and put all descriptors in an index using <a href="http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN">Flann</a>.</p>
<p>For each frame of the video to be augmented, I&#8217;ve extracted Sift feature with <a href="http://www.cs.unc.edu/~ccwu/siftgpu/">SiftGPU</a> and then matched them using Flann 2-nearest neighbor search and a distance ratio threshold. The <a href="http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN">Flann</a> matching is done in parallel with <a href="http://threadpool.sourceforge.net/">boost::threadpool</a>. The matches computed contains a lot of outliers. So I have implemented a <a href="http://en.wikipedia.org/wiki/RANSAC">Ransac</a> pose estimator using <a href="http://cvlab.epfl.ch/software/EPnP/">EPnP</a> that permits to filter bad 2d/3d correspondences.</p>
<h3>Performance</h3>
<p>My implementation is slow (due to my implementation of Ransac EPnP that could be improved).</p>
<style type="text/css">
table.result {
color: black;
border: 1px solid black;
}
table.result td {
text-align: left;
padding: 1px;
}
</style>
<table class="result">
<tr>
<td colspan="3">Sift first octave: -1</td>
</tr>
<tr>
<td>Sift extraction:</td>
<td>49ms</td>
<td>2917 features</td>
</tr>
<tr>
<td>Sift matching:</td>
<td>57ms</td>
<td>(parallel matching using Flann)</td>
</tr>
<tr>
<td>Ransac EPnP:</td>
<td>110ms</td>
<td>121 inliers of 208 matches</td>
</tr>
<tr>
<td colspan="3">Global: 4.6fps (9.4fps without pose estimation)</td>
</tr>
</table>
<p></p>
<table class="result">
<tr>
<td colspan="3">Sift first octave: 0</td>
</tr>
<tr>
<td>Sift extraction:</td>
<td>32ms</td>
<td>707 features</td>
</tr>
<tr>
<td>Sift matching:</td>
<td>15ms</td>
<td>(parallel matching using Flann)</td>
</tr>
<tr>
<td>Ransac EPnP:</td>
<td>144ms</td>
<td>62 inliers of 93 matches</td>
</tr>
<tr>
<td colspan="3">Global: 5.2fps (21.2fps without pose estimation)</td>
</tr>
</table>
<p>The slowness is not a so big issue because it doesn&#8217;t need to run at 30fps. Indeed the goal of my prototype is to have absolute pose with this tracking system each second and relative pose using inertial system available on mobile device (or using KLT tracking).</p>
<h3>Issue</h3>
<ul style="margin-left: 20px;">
<li>Performance (faster is better <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> )</li>
<li>Point cloud reference is not always accurate (<a href="http://phototour.cs.washington.edu/bundler/">Bundler</a> fault)</li>
</ul>
<p>In another post I&#8217;ll introduce alternative to Bundler: faster and more accurate.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2010%2F12%2F13%2Faugmented-reality-outdoor-tracking-becoming-reality%2F&amp;title=Augmented%20Reality%20outdoor%20tracking%20becoming%20reality"><img src="http://www.visual-experiments.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.visual-experiments.com/2010/12/13/augmented-reality-outdoor-tracking-becoming-reality/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>PMVS2 x64 and videos tutorials</title>
		<link>http://www.visual-experiments.com/2010/09/23/pmvs2-x64-and-videos-tutorials/</link>
		<comments>http://www.visual-experiments.com/2010/09/23/pmvs2-x64-and-videos-tutorials/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 09:26:12 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[photosynthtoolkit]]></category>
		<category><![CDATA[pmvs]]></category>
		<category><![CDATA[sfmtoolkit]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=772</guid>
		<description><![CDATA[PMVS2 x64 I&#8217;ve finally managed to spend a couple of hours to compile a 64 bit version of PMVS2 for windows! You can download PMVS2_x64.zip right now. I&#8217;ll hope that this version will help some persons, I&#8217;ve personally managed to create a very dense model thanks to this version and PMVS2 was using more than [...]]]></description>
			<content:encoded><![CDATA[<h3>PMVS2 x64</h3>
<p>I&#8217;ve finally managed to spend a couple of hours to compile a 64 bit version of <a href="http://grail.cs.washington.edu/software/pmvs/">PMVS2</a> for windows! You can download <a href="http://code.google.com/p/visual-experiments/downloads/list">PMVS2_x64.zip</a> right now. I&#8217;ll hope that this version will help some persons, I&#8217;ve personally managed to create a very dense model thanks to this version and PMVS2 was using more than 4Gb of ram on a 8-cores machines.</p>
<blockquote><p>
<strong>How to compile PMVS2 x64 by yourself:</strong><br />
download the <a href="http://francemapping.free.fr/Portfolio/Prog3D/CMVS.html">CMake package of CMVS</a> (containing PMVS) created by Pierre Moulon.<br />
download and compile gsl 1.8<br />
download precompiled pthread x64 lib from <a href="http://www.equalizergraphics.com/cgi-bin/viewvc.cgi/trunk/src/Windows/pthreads/">equalizer svn</a><br />
download and compile <a href="http://icl.cs.utk.edu/lapack-for-windows/clapack/clapack-3.2.1-CMAKE.tgz">clapack 3.2.1 using CMake</a>
</p></blockquote>
<h3>PhotoSynthTileDownloader</h3>
<p>As requested by some persons, I&#8217;ve updated my PhotoSynthTileDownloader: you can now resume a partial download ! It&#8217;s already available for download: <a href="http://code.google.com/p/visual-experiments/downloads/list">PhotoSynthTileDownloader2.zip</a>.</p>
<h3>Videos tutorials</h3>
<p><a href="http://blog.neonascent.net/">Josh Harle</a> has done some very nice videos tutorials on how to use my PhotoSynth ToolKit and has created another toolkit for Bundler that is using my BundlerMatcher.<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/09/photosynth.jpg" alt="" title="photosynth" width="570" height="62" class="alignnone size-full wp-image-806" /><br />
<a href="http://blog.neonascent.net/archives/photosynth-toolkit/">PhotoSynth Toolkit post on Josh Harle&#8217;s blog</a>.<br />
<iframe src="http://player.vimeo.com/video/14796939" width="560" height="420" frameborder="0"></iframe></p>
<blockquote><p>
<strong>Note:</strong> In fact your synths doesn&#8217;t need to be 100% synthy. My tool (PhotoSynth2PMVS) is capable of using an uncomplete synth. And now you could use my 64bit version of PMVS2 instead.
</p></blockquote>
<p><a style="color:red; font-size: 15px; text-decoration: underline; font-weight: bold" href="http://www.visual-experiments.com/demos/photosynthtoolkit/">Please go to the PhotoSynthToolkit page to get the latest version</a><br />
<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/09/bundlermatcher.jpg" alt="" title="bundlermatcher" width="570" height="55" class="alignnone size-full wp-image-807" /><br />
<a href="http://blog.neonascent.net/archives/bundler-photogrammetry-package/">Bundler photogrammetry package post on Josh Harle&#8217;s blog</a>.<br />
<iframe src="http://player.vimeo.com/video/14783202" width="560" height="420" frameborder="0"></iframe><br />
</p>
<p><a style="color:red; font-size: 15px; text-decoration: underline; font-weight: bold" href="http://www.visual-experiments.com/demos/sfmtoolkit/">Please go to the SFMToolkit page to get the latest version</a></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2010%2F09%2F23%2Fpmvs2-x64-and-videos-tutorials%2F&amp;title=PMVS2%20x64%20and%20videos%20tutorials"><img src="http://www.visual-experiments.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.visual-experiments.com/2010/09/23/pmvs2-x64-and-videos-tutorials/feed/</wfw:commentRss>
		<slash:comments>52</slash:comments>
		</item>
		<item>
		<title>Introducing OpenSynther</title>
		<link>http://www.visual-experiments.com/2010/09/08/introducing-opensynther/</link>
		<comments>http://www.visual-experiments.com/2010/09/08/introducing-opensynther/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 22:31:09 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[bundlermatcher]]></category>
		<category><![CDATA[opensynther]]></category>
		<category><![CDATA[photosynthtoolkit]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=689</guid>
		<description><![CDATA[PhotoSynthTileDownloader In my previous post I have released my PhotoSynth Tookit but the PhotoSynth tile downloader wasn&#8217;t available yet. You can now download the picture of your Synth in HD using PhotoSynthTileDownloader1.zip. But please respect author&#8217;s copyright ! I have included a new confirmation dialog box that warn you about the Synth status (unlisted, public) [...]]]></description>
			<content:encoded><![CDATA[<h3>PhotoSynthTileDownloader</h3>
<p>In my <a href="http://www.visual-experiments.com/2010/08/22/dense-point-cloud-created-with-photosyth-and-pmvs2/">previous post</a> I have released my PhotoSynth Tookit but the PhotoSynth tile downloader wasn&#8217;t available yet. You can now download the picture of your Synth in HD using <a href="http://code.google.com/p/visual-experiments/downloads/list">PhotoSynthTileDownloader1.zip</a>. <strong>But please respect author&#8217;s copyright !</strong> I have included a new confirmation dialog box that warn you about the Synth status (unlisted, public) but this is not shown in the <a href="http://www.youtube.com/watch?v=xqeV3pI1TfU">video presentation</a> of PhotoSynthTileDownloader.</p>
<h3>BundlerMatcher</h3>
<p>I have finally released BundlerMatcher, a feature extraction and picture matching tool built with <a href="http://www.cs.unc.edu/~ccwu/siftgpu/">SiftGPU</a>. The main goal of this tool was to replace the slow matching step packaged with <a href="http://phototour.cs.washington.edu/bundler/">Bundler</a> by a faster one using GPU without needing to modify Bundler&#8217;s code. You can download <a href="http://code.google.com/p/visual-experiments/downloads/list">BundlerMatcher1.zip</a> or checkout <a href="http://code.google.com/p/visual-experiments/source/checkout">the code</a> on my google code. <strong>Warning:</strong> this tool needs a 64bit windows OS (tested on 7 and vista) and a decent GPU. All my demos are available under MIT license but SiftGPU isn&#8217;t released under MIT so you should take a look at SiftGPU license.</p>
<h3>OpenSynther</h3>
<p>I&#8217;m proud to introduce OpenSynther which is under heavy development. The first goal of this tool is the same as BundlerMatcher: <strong>provide a faster matching engine for Structure from Motion tools</strong>. To achieve high performance it is coded in <strong>C++ and using both multi-core and GPU</strong>. Furthermore OpenSynther is using Surf instead of Sift and may in the future also compute the 3d reconstruction (as PhotoSynth does).</p>
<p><strong>OpenSynther current feature list:</strong></p>
<ul style="margin-left: 20px">
<li>Jpeg loading + Exif reading</li>
<li>multi-threaded Surf feature extraction (based on <a href="http://www.chrisevansdev.com/computer-vision-opensurf.html">OpenSurf</a> &#038; <a href="http://sourceforge.net/projects/parallelsurf/">ParallelSurf</a>)</li>
<li>multi-threaded Surf feature matching (based on OpenSurf matching + Cuda GPU matching)
<ul>
<li>Quadratic complexity O(n²) with n number of pictures</li>
</ul>
</li>
</ul>
<p><strong>OpenSynther TODO:</strong></p>
<ul style="margin-left: 20px">
<li>multi-threaded Surf feature approximate matching (based on <a href="http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN">FLANN</a>)
<ul>
<li>Linear complexity (hypothetical)</li>
</ul>
</li>
<li>integrate 3d reconstruction ?
<ul>
<li>using <a href="http://phototour.cs.washington.edu/bundler/">Bundler</a> code or <a href="http://insight3d.sourceforge.net/">insight3D</a>, both are using <a href="http://www.ics.forth.gr/~lourakis/sba/">SBA</a>.</li>
</ul>
</li>
</ul>
<h3>Benchmarks</h3>
<p>These benchmarks were done on an Intel Corei7 920 (8 cores @ 2.66Ghz) + Nvidia GTX 285. The pictures size were 1600&#215;1200 (~2M pixels), I heard that it was the limit size at which PhotoSynth extract features (it can of course use bigger pictures but feature extraction are done at a max size of 2M pixels).<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/09/feature.extraction.png" alt="" title="feature.extraction" width="518" height="310" style="text-align:center; margin-bottom: 5px;" /><br />
Note:</p>
<ul>
<li><strong>Bundler:</strong> I had to reduce picture to 640&#215;480, otherwise I got too many features (would be unfair).</li>
<li><strong>PhotoSynth:</strong> I didn&#8217;t take into account the time spent in tile creation.</li>
<li><strong>OpenSynther:</strong> in the future I may consider using GPUSurf for feature extraction.</li>
<li><strong>BundlerMatcher:</strong> to be fair with PhotoSynth I didn&#8217;t write the ascii key file (so in fact it&#8217;s slower).</li>
</ul>
<p>
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2010/09/picture.matching.png" alt="" title="picture.matching" width="518" height="303" style="text-align:center; margin-bottom: 5px;" /><br />
Note:</p>
<ul>
<li><strong>PhotoSynth:</strong> they did a very good job and managed to have a linear matching !</li>
<li><strong>OpenSynther:</strong> the GPU is in fact doing the most part of the job as you can see in the table below:</li>
</ul>
<style type="text/css">
table.benchmarks, table.benchmarks td, table.benchmarks tr {
color: black;
border: 1px solid black;
background-color: white;
}
</style>
<table class="benchmarks">
<tr>
<td>App Name</td>
<td colspan="3">PhotoSynth</td>
<td colspan="3">OpenSynther</td>
<td colspan="3">BundlerMatcher</td>
<td colspan="3">Bundler</td>
</tr>
<tr>
<td>Extraction in sec</td>
<td>10</td>
<td>22</td>
<td>39</td>
<td>21</td>
<td>40</td>
<td>78</td>
<td>7</td>
<td>12</td>
<td>24</td>
<td>105</td>
<td>220</td>
<td> &#8211; </td>
</tr>
<tr>
<td>Matching in sec</td>
<td>15</td>
<td>31</td>
<td>58</td>
<td>31</td>
<td>104</td>
<td>322</td>
<td>40</td>
<td>170</td>
<td>542</td>
<td>75</td>
<td>440</td>
<td> &#8211; </td>
</tr>
<tr>
<td>% matching <br />done by CPU</td>
<td>100</td>
<td>100</td>
<td>100</td>
<td>22</td>
<td>12</td>
<td>13</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>100</td>
<td>100</td>
<td> &#8211; </td>
</tr>
<tr>
<td>% matching <br />done by GPU</td>
<td>0</td>
<td>0</td>
<td>0</td>
<td>78</td>
<td>88</td>
<td>87</td>
<td>100</td>
<td>100</td>
<td>100</td>
<td>0</td>
<td>0</td>
<td> &#8211; </td>
</tr>
<tr>
<td>Nb pictures</td>
<td>49</td>
<td>98</td>
<td>196</td>
<td>49</td>
<td>98</td>
<td>196</td>
<td>49</td>
<td>98</td>
<td>196</td>
<td>49</td>
<td>98</td>
<td>196</td>
</tr>
</table>
<p><br/><br />
As you can see OpenSynther matching is in fact done by the GPU at 85%.<br />
<br/></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2010%2F09%2F08%2Fintroducing-opensynther%2F&amp;title=Introducing%20OpenSynther"><img src="http://www.visual-experiments.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.visual-experiments.com/2010/09/08/introducing-opensynther/feed/</wfw:commentRss>
		<slash:comments>37</slash:comments>
		</item>
	</channel>
</rss>
