<?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</title>
	<atom:link href="http://www.visual-experiments.com/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>Wed, 11 Jul 2012 21:48:05 +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>Moving on&#8230; again :-)</title>
		<link>http://www.visual-experiments.com/2012/07/11/moving-on-again/</link>
		<comments>http://www.visual-experiments.com/2012/07/11/moving-on-again/#comments</comments>
		<pubDate>Wed, 11 Jul 2012 06:24:52 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[acute3d]]></category>
		<category><![CDATA[microsoft]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2404</guid>
		<description><![CDATA[As you may have figured out I&#8217;m not working for acute3D anymore. I really enjoyed working there and I want to thanks them for the time we&#8217;ve spent together. I&#8217;ve learned a lot thanks to them and it was really great to deal with 3d data at a city scale! BTW you should really checkout [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2012/06/photo2-225x300.jpg" alt="" title="Me in front of Microsoft Office" width="225" height="300" class="alignleft size-medium wp-image-2412" /></p>
<p>As you may have figured out I&#8217;m not working for <a href="http://www.acute3d.com/">acute3D</a> anymore. I really enjoyed working there and I want to thanks them for the time we&#8217;ve spent together. I&#8217;ve learned a lot thanks to them and it was really great to deal with 3d data at a city scale! </p>
<p>BTW <strong>you should really checkout their <a href="http://www.acute3d.com/2012/07/06/online-demos-available/">online demos</a></strong>: streaming of 3d cities over internet!</p>
<p>But <strong>I&#8217;ve received an offer from Microsoft</strong> that I coudn&#8217;t refuse <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . I&#8217;ll be working on super exciting stuff closely related to what I like.<br />
<br />
Thus sadly I don&#8217;t think that I&#8217;ll have time left for this blog anymore. But I&#8217;ll try to post the source code of my <a href="http://www.visual-experiments.com/2012/05/26/new-bundler-version/">modified version of Bundler</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%2F2012%2F07%2F11%2Fmoving-on-again%2F&amp;title=Moving%20on%26%238230%3B%20again%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/2012/07/11/moving-on-again/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>New bundler version</title>
		<link>http://www.visual-experiments.com/2012/05/26/new-bundler-version/</link>
		<comments>http://www.visual-experiments.com/2012/05/26/new-bundler-version/#comments</comments>
		<pubDate>Sat, 26 May 2012 14:24:09 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[opensynther]]></category>
		<category><![CDATA[pba]]></category>
		<category><![CDATA[sba]]></category>
		<category><![CDATA[sfmtoolkit]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2384</guid>
		<description><![CDATA[I&#8217;ve compiled a new version of Bundler with 2 interesting new options: --parallel_epipolar --ba sba BTW those options should be passed as command arguments to bundler.exe directly (and not been added to the options.txt file). The parallel_epipolar option allows to estimate the fundamental matrices (ransac + lm) in parallel. This problem is embarrassingly parallel but [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve compiled a new version of Bundler with 2 interesting new options:</p>
<pre>
--parallel_epipolar
--ba sba
</pre>
<p>BTW those options should be passed as command arguments to bundler.exe directly (and not been added to the options.txt file).</p>
<p>The <strong>parallel_epipolar</strong> option allows to estimate the fundamental matrices (ransac + lm) in parallel. This problem is embarrassingly parallel but due to some global variables used in the callback passed to lmfit it wasn&#8217;t that easy to implement: I&#8217;ve used a functor to hide the global variables used by the callback but sadly lmfit doesn&#8217;t have a void* userData parameter (only a pointer to the callback). Thus I&#8217;ve modified lmfit and add this missing parameter that allow me to pass a pointer to my functor. Furthermore I had to compile almost everything in C++ instead of C to use my functor inside lmfit. Thus I had to fix a lot of malloc calls that weren&#8217;t compiling in C++ due to missing cast. To keep a &#8220;backward behavior compatibility&#8221; <strong>this option is disabled by default</strong>.</p>
<p>The <strong>ba</strong> option allows to change the bundle adjustment &#8220;engine&#8221; used. Here is the list of available &#8220;engine&#8221;:</p>
<ul>
<li><strong>sba</strong> (default)</li>
<li><strong>none</strong> (for debug only)</li>
<li><strong>pba_cpu_double</strong></li>
<li><strong>pba_cpu_float</strong></li>
<li><strong>pba_gpu_float</strong></li>
</ul>
<p>Pba stand for Parallel Bundle Adjustment: I&#8217;ve integrated <a href="http://grail.cs.washington.edu/projects/mcba/">mcba</a> from Changchang Wu.</p>
<p>So if you have an Nvidia GPU card and installed the Cuda runtime you can add those options:</p>
<pre>
bundler.exe list_focal_absolute.txt --ba pba_gpu_float --parallel_epipolar
--options_file options.txt //on the same line
</pre>
<p>Timing on a 245 pictures dataset:</p>
<table>
<tr>
<th>Bundler BA</th>
<th>Time</th>
<th>Nb pictures registered</th>
</tr>
<tr>
<td>SBA</td>
<td>2h18min</td>
<td>233</td>
</tr>
<tr>
<td>PBA CPU double</td>
<td>23min</td>
<td>230</td>
</tr>
<tr>
<td>PBA CPU float</td>
<td>9min</td>
<td>230</td>
</tr>
<tr>
<td>PBA GPU float</td>
<td>6min</td>
<td>230</td>
</tr>
<tr>
<td>none (for debug)</td>
<td>2min</td>
<td>189 (bad reconstruction)</td>
</tr>
</table>
<p></p>
<p>You can download this new version of bundler: <a href="http://www.visual-experiments.com/blog/?sdmon=downloads/Bundler-multiBA-parallelEpipolar-x64.zip">bundler-multiBA-parallelEpipolar-x64.zip</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%2F2012%2F05%2F26%2Fnew-bundler-version%2F&amp;title=New%20bundler%20version"><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/2012/05/26/new-bundler-version/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>PhotoSynthToolkit 11</title>
		<link>http://www.visual-experiments.com/2012/05/23/photosynthtoolkit-11/</link>
		<comments>http://www.visual-experiments.com/2012/05/23/photosynthtoolkit-11/#comments</comments>
		<pubDate>Wed, 23 May 2012 08:00:28 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[photosynthtoolkit]]></category>
		<category><![CDATA[pmvs]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2362</guid>
		<description><![CDATA[I&#8217;ve for some reason extra time to kill so I&#8217;ve updated PhotoSynthToolkit (SFMToolkit will follow soon). I&#8217;ve been only focusing on PMVS2 for this release: I&#8217;ve integrated Nghiaho optimization, fixed white-space folder handling in PMVS2 using boost::filesystem and fixed the timing output in the console. Thus there is no need for the ugly temporary z [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve for some reason extra time to kill so I&#8217;ve updated PhotoSynthToolkit (SFMToolkit will follow soon). I&#8217;ve been only focusing on PMVS2 for this release: I&#8217;ve integrated <a href="http://nghiaho.com/?p=1353">Nghiaho optimization</a>, fixed white-space folder handling in PMVS2 using boost::filesystem and fixed the timing output in the console. Thus there is no need for the ugly temporary z drive anymore <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>Nghiaho optimizations are disabled by default as I&#8217;ve found that it generates a point cloud less dense. You can enable the optimization by adding:
<pre>--optimize</pre>
<p> as last PMVS2.exe parameter in your command prompt or just activate the optimization by modifying the following files:</p>
<ul>
<li><em><strong>3 &#8211; Prepare for PMVS2.wsf</strong></em> line 49 -> var USE_OPTIMIZED_PMVS = true;</li>
<li><em><strong>4 &#8211; Prepare for CMVS.wsf</strong></em> line 46 -> var USE_OPTIMIZED_PMVS = true;</li>
</ul>
<p>You can download <a href="http://www.visual-experiments.com/blog/?sdmon=downloads/PhotoSynthToolkit11.zip">PhotoSynthToolkit11.zip</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%2F2012%2F05%2F23%2Fphotosynthtoolkit-11%2F&amp;title=PhotoSynthToolkit%2011"><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/2012/05/23/photosynthtoolkit-11/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PhotoSynthToolkit 10</title>
		<link>http://www.visual-experiments.com/2012/05/01/photosynthtoolkit-10/</link>
		<comments>http://www.visual-experiments.com/2012/05/01/photosynthtoolkit-10/#comments</comments>
		<pubDate>Tue, 01 May 2012 21:14:03 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[photosynthtoolkit]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2343</guid>
		<description><![CDATA[What do you think of this concept: a new PhotoSynthToolkit version almost everyday? . This version introduce a new feature that will allow you to process a PhotoSynth without needing to wait for the end of the upload. In fact you can even cancel your synth as soon as the computation is complete. But be [...]]]></description>
			<content:encoded><![CDATA[<p>What do you think of this concept: a new PhotoSynthToolkit version almost everyday? <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>This version introduce a new feature that will allow you to process a PhotoSynth without needing to wait for the end of the upload. In fact you can even cancel your synth as soon as the computation is complete. But be aware that all pictures uploaded in the meantime will stay on photosynth server (AFAIK).</p>
<p><strong>How to proceed:</strong><br />
- wait for synth to be processed (but not fully uploaded).<br />
- copy the 2 following files from <strong>%temp%\Photosynther</strong> to another folder (<em>d:\my_synth</em> for example)</p>
<ul style="margin-left: 20px;">
<li>collection.dzcz</li>
<li>collection.synth.bin</li>
</ul>
<p>- then you can launch the step 1 of the PhotoSynthToolkit by providing your folder (<em>d:\my_synth</em>).<br />
- you&#8217;ll need then to copy your original jpegs to the distort folder and you&#8217;re done!</p>
<p>You can download <a href="http://www.visual-experiments.com/blog/?sdmon=downloads/PhotoSynthToolkit10.zip">PhotoSynthToolkit10.zip</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%2F2012%2F05%2F01%2Fphotosynthtoolkit-10%2F&amp;title=PhotoSynthToolkit%2010"><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/2012/05/01/photosynthtoolkit-10/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>PhotoSynthToolkit 9</title>
		<link>http://www.visual-experiments.com/2012/04/29/photosynthtoolkit-9/</link>
		<comments>http://www.visual-experiments.com/2012/04/29/photosynthtoolkit-9/#comments</comments>
		<pubDate>Sun, 29 Apr 2012 18:44:20 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[cmvs]]></category>
		<category><![CDATA[photosynthtoolkit]]></category>
		<category><![CDATA[pmvs]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2329</guid>
		<description><![CDATA[This is a quick post to announce the new version of the PhotoSyntToolkit with 2 new features: CMVS support finally integrated proper handling of folder with white space How to use CMVS with PhotoSynthToolkit: As usual run step 1 and move pictures from &#8220;hd&#8221; to &#8220;distort&#8221; folder. You need to run first &#8220;Prepare for PMVS2&#8243; [...]]]></description>
			<content:encoded><![CDATA[<p>This is a quick post to announce the new version of the <a href="http://www.visual-experiments.com/demos/photosynthtoolkit/">PhotoSyntToolkit</a> with 2 new features:</p>
<ul>
<li><a href="http://grail.cs.washington.edu/software/cmvs/">CMVS</a> support finally integrated <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li>proper handling of folder with white space</li>
</ul>
<p><strong>How to use CMVS with PhotoSynthToolkit:</strong></p>
<ol>
<li>As usual run step 1 and move pictures from &#8220;hd&#8221; to &#8220;distort&#8221; folder.</li>
<li>You need to run first &#8220;Prepare for PMVS2&#8243; then do <strong>NOT</strong> launch the generated bat file.</li>
<li>You can run &#8220;Prepare for CMVS&#8221; and run the generated bat file.</li>
</ol>
<p><strong>Warning:</strong> I&#8217;ve fixed all my programs to handle folder with white space (thanks to boost::filesystem). Sadly <a href="http://grail.cs.washington.edu/software/pmvs/">PMVS2</a>/<a href="http://grail.cs.washington.edu/software/cmvs/">CMVS</a> don&#8217;t handle them. The fix is trivial but instead of recompiling a new version I&#8217;ve found a bad workaround. I&#8217;m creating a temporary virtual drive z: pointing to your synth folder during the execution of <a href="http://grail.cs.washington.edu/software/pmvs/">PMVS2</a>/<a href="http://grail.cs.washington.edu/software/cmvs/">CMVS</a> using SUBST. The downside are that if you already have a z: drive it won&#8217;t work and if you kill <a href="http://grail.cs.washington.edu/software/pmvs/">PMVS2</a>/<a href="http://grail.cs.washington.edu/software/cmvs/">CMVS</a> you&#8217;ll have to manually remove the z: drive. <strong>To remove the z: drive type &#8220;subst z: /d&#8221; in your console</strong>.</p>
<p>If you need XSI/3DS max integration you&#8217;ll have to use the old version: <a href="http://www.visual-experiments.com/blog/?sdmon=downloads/PhotoSynthToolkit7.zip">PhotoSynthToolkit7.zip</a> otherwise <a href="http://www.visual-experiments.com/blog/?sdmon=downloads/PhotoSynthToolkit9.zip">PhotoSynthToolkit9.zip</a> is the latest version.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2012%2F04%2F29%2Fphotosynthtoolkit-9%2F&amp;title=PhotoSynthToolkit%209"><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/2012/04/29/photosynthtoolkit-9/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Ransac.js</title>
		<link>http://www.visual-experiments.com/2012/04/22/ransac-js/</link>
		<comments>http://www.visual-experiments.com/2012/04/22/ransac-js/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 17:46:28 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[ransac]]></category>
		<category><![CDATA[ransac.js]]></category>
		<category><![CDATA[recon]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2282</guid>
		<description><![CDATA[Recently I&#8217;ve been reading a very interesting paper about a threshold-free Ransac solution called Recon (stand for REsidual CONsensus). The video presentation is very interesting and makes me realize that Ransac is a very visual algorithm! Thus I&#8217;ve decided to create a javascript implementation which draw each iterations on a Html5 canvas. I&#8217;ll try to [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been reading a very interesting paper about a threshold-free <a href="http://en.wikipedia.org/wiki/RANSAC">Ransac</a> solution called <a href="http://www.cs.unc.edu/~rraguram/research.html#recon">Recon</a> (stand for REsidual CONsensus). The video presentation is very interesting and makes me realize that Ransac is a very visual algorithm! Thus I&#8217;ve decided to create a javascript implementation which draw each iterations on a Html5 canvas. I&#8217;ll try to implement Recon as well.</p>
<table>
<tr>
<td colspan="2">Illustrations from <a href="http://en.wikipedia.org/wiki/RANSAC">Wikipedia</a></td>
</tr>
<tr>
<td><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2012/04/points.png" alt="" title="points" width="255" height="255" class="alignleft size-full wp-image-2286" /></td>
<td><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2012/04/model.png" alt="" title="model" width="255" height="255" class="alignleft size-full wp-image-2285" /></td>
</tr>
<tr>
<td>Input points</td>
<td>Estimated fitting line</td>
</tr>
</table>
<h3 style="text-align: center">
<a href="http://www.visual-experiments.com/demo/ransac.js/">->Launch live demo<-</a><br />
</h3>
<p><br/></p>
<p><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2012/04/ransac_line_fitting1.gif" alt="" title="ransac line fitting" width="500" height="500" class="aligncenter size-full wp-image-2316" /></p>
<p style="text-align: center;">Animated GIF of the iterations</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2012%2F04%2F22%2Fransac-js%2F&amp;title=Ransac.js"><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/2012/04/22/ransac-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PhotoSynthToolkit 8</title>
		<link>http://www.visual-experiments.com/2012/04/14/photosynthtoolkit-8/</link>
		<comments>http://www.visual-experiments.com/2012/04/14/photosynthtoolkit-8/#comments</comments>
		<pubDate>Sat, 14 Apr 2012 18:05:05 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[photogrammetry]]></category>
		<category><![CDATA[bundler]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[photosynthtoolkit]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2254</guid>
		<description><![CDATA[I&#8217;ve finally decided to release the new version of my PhotoSynthToolkit. This new version has bundle.out output support: this was indeed easy to add as I&#8217;ve already implemented it in my WebGL chrome extension. I&#8217;ve also rewritten the network part of the downloader by using libcurl. PhotoSynthDownloader is now replaced by my new tool PhotoSynthGrabber. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally decided to release the new version of my PhotoSynthToolkit. This new version has <a href="http://phototour.cs.washington.edu/bundler/bundler-v0.4-manual.html">bundle.out</a> output support: this was indeed easy to add as I&#8217;ve already implemented it in <a href="http://www.visual-experiments.com/2012/03/25/webgl-photosynth-extension-updated/">my WebGL chrome extension</a>. I&#8217;ve also rewritten the network part of the downloader by using <a href="http://curl.haxx.se/libcurl/">libcurl</a>. PhotoSynthDownloader is now replaced by my new tool PhotoSynthGrabber. BTW thumbnail/HD pictures downloading should be really much faster <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . </p>
<p>New feature coming:</p>
<ul>
<li>CMVS support (coming very soon)</li>
<li>White space handling in the toolkit scripting (PhotoSynthGrabber is already ready)</li>
<li>Expose HTTP Proxy parameters for the downloader</li>
</ul>
<p>You can download the new version: <a href="http://www.visual-experiments.com/blog/?sdmon=downloads/PhotoSynthToolkit8.zip">PhotoSynthToolkit8.zip</a> or keep the previous one in case you miss some advanced feature (vis.dat generation, SoftImage XSI / 3DS Max scripting for example): <a href="http://www.visual-experiments.com/blog/?sdmon=downloads/PhotoSynthToolkit7.zip">PhotoSynthToolkit7.zip</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%2F2012%2F04%2F14%2Fphotosynthtoolkit-8%2F&amp;title=PhotoSynthToolkit%208"><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/2012/04/14/photosynthtoolkit-8/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>WebGL Photosynth extension updated</title>
		<link>http://www.visual-experiments.com/2012/03/25/webgl-photosynth-extension-updated/</link>
		<comments>http://www.visual-experiments.com/2012/03/25/webgl-photosynth-extension-updated/#comments</comments>
		<pubDate>Sun, 25 Mar 2012 21:08:12 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[three.js]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2231</guid>
		<description><![CDATA[I&#8217;ve updated my PhotoSynth extension for Google Chrome. I&#8217;ve included all optimization described in my previous post: point cloud loading is 4x faster and ply file generation could be 17x faster in some cases . As you can see in the screenshot below, I&#8217;ve also added a new checkbox to let you choose if you [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve updated my <a href="https://chrome.google.com/webstore/detail/jnnhdiolpfgjbgagkbmdfidfofancmee">PhotoSynth extension for Google Chrome</a>. I&#8217;ve included all optimization described in <a href="http://www.visual-experiments.com/2012/03/19/improving-photosynth-extension-performance/">my previous post</a>: <strong>point cloud loading is 4x faster</strong> and ply file generation could be 17x faster in some cases <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . As you can see in the screenshot below, I&#8217;ve also added a new checkbox to let you choose if you want to load thumbnails or not in the WebGL context (which could take a while for synth with more than 200 pictures).<br />
<img src="http://www.visual-experiments.com/blog/wp-content/uploads/2012/03/extension.jpg" alt="" title="webgl photosynth extension updated" width="600" height="362" class="alignleft size-full wp-image-2232" /></p>
<div style="margin-top: 20px;">&nbsp;</div>
<p>There is still room for improvements: I&#8217;ve discovered lot of interesting stuff that I&#8217;ve to try in <a href="http://www.youtube.com/watch?v=XAqIpGU8ZZk">Lilli Thompson speech at the GDC</a>. In particular I&#8217;d like to improve:</p>
<ul>
<li>memory usage: track V8 garbage collection</li>
<li>thumbnails loading: could be speed-up by using a web workers too</li>
<li>Three.js rendering: I still need to switch to r48 and use BufferGeometry</li>
<li>bundle.out generation: still very slow for big synth</li>
</ul>
<p>To accelerate bundle.out file generation I&#8217;ve found a solution working pretty well for very large ascii file (80mo+). I&#8217;m generating the ascii file by writing directly in binary in a Uint8Array (by chunk of 1mo). The resulting code is more complex but is as fast as regular string concatenation and in comparison as a memory footprint very limited. It&#8217;s not integrated in the extension yet as my test case is working well (ascii ply generation) but bundle.out is slow (I need to track V8 bailout/deopt to understand why it&#8217;s slow).</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2012%2F03%2F25%2Fwebgl-photosynth-extension-updated%2F&amp;title=WebGL%20Photosynth%20extension%20updated"><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/2012/03/25/webgl-photosynth-extension-updated/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Improving PhotoSynth extension performance</title>
		<link>http://www.visual-experiments.com/2012/03/19/improving-photosynth-extension-performance/</link>
		<comments>http://www.visual-experiments.com/2012/03/19/improving-photosynth-extension-performance/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 22:38:31 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[three.js]]></category>
		<category><![CDATA[webgl]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2150</guid>
		<description><![CDATA[I&#8217;ve recently discover the new transferable object feature in Google chrome. BTW transferable objects are really great! Furthermore you really should use them as I&#8217;ve found that structure cloning is leaking (you can try this leaking demo with chrome 17). Thus I&#8217;ve started to update my extension and done a benchmark of various solution with [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recently discover the new <a href="http://updates.html5rocks.com/2011/12/Transferable-Objects-Lightning-Fast">transferable object</a> feature in Google chrome. BTW transferable objects are really great! Furthermore you really should use them as I&#8217;ve found that structure cloning is leaking (<a href="http://visual-experiments.com/demo/transfert/">you can try this leaking demo</a> with chrome 17). Thus I&#8217;ve started to update my extension and done a benchmark of various solution with a big synth of 20mo (1200k vertices and 1000 pictures). </p>
<p>I&#8217;ve also improved a lot my binary parsing by using only native binary parsing (<a href="https://developer.mozilla.org/en/JavaScript_typed_arrays/DataView">DataView</a>). One thing about DataView: <strong>did they realize that if you forgot the endianness parameter it will use BigEndian</strong>? <em>(littleEndian = x86, bigEndian = Motora 68k).</em></p>
<p>Thanks to both optimization <strong>the new version is 4x faster!</strong> (loading time: 24s > 6s)</p>
<h3>solution 1</h3>
<p><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2012/03/flow-11.jpg" alt="" title="flow-1" width="400" height="126" class="alignleft size-full wp-image-2186" /><br />
<br style="clear: both"/></p>
<ul>
<li>cross-orign was forbidden in contentscript (fixed now since chrome 13)</li>
<li>lack of TypedArray copy/transfert -> JS array replacement</li>
<li><strong>Loading time: 13600ms</strong> (24400ms with the previous version without optimized binary parsing)</li>
</ul>
<h3>solution 2</h3>
<p><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2012/03/flow-2.jpg" alt="" title="flow-2" width="300" height="82" class="alignleft size-full wp-image-2152" /><br />
<br style="clear: both"/></p>
<ul>
<li><strong>Issue:</strong> the UI is frozen during parsing (lack of threading)</li>
<li><strong>Loading time: 6500ms</strong></li>
</ul>
<h3>solution 3</h3>
<p><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2012/03/flow-3.jpg" alt="" title="flow-3" width="400" height="139" class="alignleft size-full wp-image-2153" /><br />
<br style="clear: both"/></p>
<ul>
<li>I&#8217;m using transferable objects to both send the xhr.response (ArrayBuffer) and receive the parsed Float32Array (vertex positions) and Uint8Array (vertex colors).</li>
<li><strong>Issue:</strong> I didn&#8217;t manage to spawn a worker from my extension directly (SECURITY_ERR: DOM Exception 18): I&#8217;ve been forced to <a href="http://blogs.microsoft.co.il/blogs/gilf/archive/2012/01/29/working-with-inline-web-workers.aspx">inline the worker</a> as a workaround.</li>
<li><strong>Loading time:  6000ms</strong></li>
</ul>
<h3>solution 4</h3>
<p><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2012/03/flow-4.jpg" alt="" title="flow-4" width="400" height="139" class="alignleft size-full wp-image-2154" /><br />
<br style="clear: both"/></p>
<ul>
<li><strong>Issue:</strong> because of <a href="http://code.google.com/p/chromium/issues/detail?id=45382">this bug</a> workers can not do cross-orign xhr.</li>
<li><strong>Loading time: N/A</strong></li>
</ul>
<p>I&#8217;ve also optimized the PLY file generation by generating binary file on the client side instead of ascii. </p>
<ul>
<li>Ascii: 74mo in 9000ms</li>
<li>Binary: 17mo in 530ms <strong>(~17x faster!)</strong></li>
</ul>
<p>Sadly I didn&#8217;t manage to find a way to accelerate <em>&#8220;bundle.out&#8221;</em> ascii file generation yet (involving lot of string concatenation and numbers formatting).</p>
<p><strong>I didn&#8217;t have updated the extension on the chrome web store yet</strong> as I&#8217;m working on using the new BufferGeometry of Three.js that should be more efficient. Building BufferGeometry directly from  Float32Array (vertex positions array) and Uint8Array (vertex colors array) seems a really better solution IMO.</p>
<h3>Mesh compression</h3>
<p>I&#8217;ve also discover the <a href="http://code.google.com/p/webgl-loader/">webgl-loader</a> mesh compression solution recently. I&#8217;ve compiled my own version of <a href="http://code.google.com/p/webgl-loader/source/browse/trunk/src/objcompress.cc">objcompress.cc</a> and fixed the JSON export. Then I&#8217;ve created my own format allowing to pack in one file all the utf8 files (thus reducing the number of http request needed). I will post about it soon: stay tuned!</p>
<h3>Firefox extension?</h3>
<p><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2012/02/screenshot2.jpg" alt="" title="Firefox extension" width="600" height="424" class="aligncenter size-full wp-image-2141" /><br />
On a side note I&#8217;ve also been playing with the new <a href="https://builder.addons.mozilla.org/">mozilla add-on builder SDK</a>&#8230; well IMO Firefox isn&#8217;t the best browser for extension anymore. I&#8217;ve been very disappointed by the restriction applied to code running in the contentscript (for example <a href="http://prototypejs.org/">prototype.js</a> is not working: I had to use a clone that I&#8217;ve built long time ago). And I&#8217;m also very concerned about their security strategy: they don&#8217;t have a cross-orign xhr permissions field in the manifest. Thus extensions can do cross-orign request to all domains by default! Nevertheless I&#8217;ve managed to port the binary parsing of the point cloud but Three.js is not working either <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> . </p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2012%2F03%2F19%2Fimproving-photosynth-extension-performance%2F&amp;title=Improving%20PhotoSynth%20extension%20performance"><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/2012/03/19/improving-photosynth-extension-performance/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PhotoSynth bundle.out export!</title>
		<link>http://www.visual-experiments.com/2012/02/01/photosynth-bundle-out-export/</link>
		<comments>http://www.visual-experiments.com/2012/02/01/photosynth-bundle-out-export/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 21:18:28 +0000</pubDate>
		<dc:creator>Henri</dc:creator>
				<category><![CDATA[html]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[three.js]]></category>
		<category><![CDATA[webgl]]></category>
		<guid isPermaLink="false">http://www.visual-experiments.com/?p=2114</guid>
		<description><![CDATA[I&#8217;ve updated my Google Chrome extension to export a valid bundle.out from a PhotoSynth. The bundle.out generated need to be used with HD version of the images (not the thumbnails). Moreover I&#8217;ve removed tracks of length 2 from the bundle.out as I guess that PhotoSynth is keeping them only to get a &#8220;denser&#8221; point cloud [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve updated my <a href="https://chrome.google.com/webstore/detail/jnnhdiolpfgjbgagkbmdfidfofancmee">Google Chrome extension</a> to export a valid bundle.out from a PhotoSynth. The <a href="http://phototour.cs.washington.edu/bundler/bundler-v0.4-manual.html">bundle.out</a> generated need to be used with HD version of the images (not the thumbnails). Moreover I&#8217;ve removed tracks of length 2 from the bundle.out as I guess that PhotoSynth is keeping them only to get a &#8220;denser&#8221; point cloud (aesthetic purpose only)? One more thing: you can not use the bundle.out file to run a bundle adjustment as the 2d measurements are unknown (I have computed them by projecting the tracks in corresponding cameras).</p>
<p>I&#8217;m sure that some of you have an idea of what to do with a bundle.out file from a PhotoSynth <img src='http://www.visual-experiments.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .<br />
BTW, this export wouldn&#8217;t have been possible without Peter Sibley help, <strong>thanks Peter</strong>! He has help me by giving me the missing information needed to do the bundle.out PhotoSynth export.</p>
<p><img src="http://www.visual-experiments.com/blog/wp-content/uploads/2012/01/screenshot.jpg" alt="" title="PhotoSynth viewer with Bundle.out support" width="600" height="344" class="aligncenter size-full wp-image-2120" /></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.visual-experiments.com%2F2012%2F02%2F01%2Fphotosynth-bundle-out-export%2F&amp;title=PhotoSynth%20bundle.out%20export%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/2012/02/01/photosynth-bundle-out-export/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.417 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2013-05-24 08:47:47 -->
