tag:blogger.com,1999:blog-68246249220534523292024-02-20T02:06:23.340-08:00Very Large Images BlogThis blog is dedicated to nothing in particular (but focuses on very large images, 3d fractals and anything I find interesting)Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.comBlogger62125tag:blogger.com,1999:blog-6824624922053452329.post-80455258467453059352011-05-24T07:58:00.001-07:002011-05-24T08:03:13.598-07:00Vliv support for WebP formatNow that WebP is supported widely, I have created the little plugin for Vliv that allows loading a webp image.<br />It is very simple, as only two API calls are necessary, <span style="font-weight:bold;">WebPGetInfo </span>and <span style="font-weight:bold;">WebPDecodeBGRInto</span><br /><br />On a sample image found on the web it seem to work fine, and is quite fast. The final plugin dll is only 106496 bytes thanks to a precompiled webp library for Windows (libwebp-0.1.2-windows).<br /><br />Vliv framework is an ideal way of testing new formats as its API is very simple, the entire code for loading WebP images is 85 lines of C.<br /><br />Source code is available on demand.Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com54tag:blogger.com,1999:blog-6824624922053452329.post-37749473066308675782011-02-09T11:45:00.000-08:002011-02-09T11:51:57.291-08:00Google Art Project<a href="http://www.googleartproject.com/">Google Art Project</a> is a collection of very high resolution images of paintings/photos.<br />Unfortunately it is only available through the Web...<br />So I made a quick hack to generate offline images suitable for display with my viewer, VLIV.<br />It is incredibly easy to get the data, but I will not disclose how, since the Google Art Project license prevents it.<br /><br />Here is a screendump of Van Gogh's Starry Night in Vliv.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_C2zixREHR-k/TVLwBhhVm5I/AAAAAAAADg4/foEuwHxBimw/s1600/starrynight.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 324px;" src="http://4.bp.blogspot.com/_C2zixREHR-k/TVLwBhhVm5I/AAAAAAAADg4/foEuwHxBimw/s400/starrynight.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5571779597979458450" /></a>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com2tag:blogger.com,1999:blog-6824624922053452329.post-66751059987570787842010-07-30T05:34:00.000-07:002010-07-30T05:41:25.526-07:00New world record for panoramic image<a href="http://70gigapixel.cloudapp.net/index_en.html">This </a>one is 70 gigapixels (590508 x 120750).<br />Very impressive.<br />They are using Silverligh to display on the Web.<br />Such a large image should be viewable by VLIV, it just need the file (actual format is unknown, looks to be PPM) to be converted to TIFF (actually a 64 bit TIFF).<br />Final image size is about 200 Gigabytes, not something you download or store easily !Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com15tag:blogger.com,1999:blog-6824624922053452329.post-54879765411740173792010-07-28T12:48:00.000-07:002010-07-28T23:34:41.706-07:00Download VLIV latest version 2.5.2<a href="http://dl.dropbox.com/u/2335720/vliv252.zip">Here </a>is the direct DropBox link, and some sample images :<div><ul><li><a href="http://dl.dropbox.com/u/2335720/antartica.tif">a very large one</a> (850 megabytes)</li><li><a href="http://dl.dropbox.com/u/2335720/flower.tif">a small one</a> (8 megabytes)</li></ul><div>These are tiff images that have pyramidal organization. You can also load normal Jpegs (preferably large ones), so that you can see virtual tiling in action.</div></div><div><a href="http://dl.dropbox.com/u/2335720/heic0502a.jpg">Here </a>is a medium one (15 megabytes)</div>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com1tag:blogger.com,1999:blog-6824624922053452329.post-233724817287036952009-10-22T07:36:00.000-07:002009-10-23T00:43:25.322-07:00OpenGL Vertex Buffer ObjectsI recently updated my 3d object rendering code to <a href="http://www.opengl.org/wiki/Vertex_Buffer_Objects">VBO</a>, introduced in OpenGL 1.5. Using them is very simple, and only need 4 additional API calls. Basically, the vertex data, normals and indexes are sent to the graphics card, stored in there, and accessed through an ID. At draw time, only one or two call with IDs are sufficient and performance is very much improved over using previous Vertex Arrays API, because no data is transfered. My frame rate was multiplied by 2 at least and I can now display up to 150 000 000 tris/s on my GeForce 8800 GTS, hardly the fastest card these days. <div><br /></div><div><br /></div><div>I also found <a href="http://glew.sourceforge.net/">GLEW</a> library during this work, very nice and useful to develop OpenGL applications, because of poor header support in MS SDK. It allows using API calls without bothering if they are in headers or not, thanks to clever dynamic loading features at runtime and extensive coverage of OpenGL extensions.</div><div><br /></div><div>Update: After some tests, the number of tris/s is about 230 000 000 on my 8800 GTS.</div>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com1tag:blogger.com,1999:blog-6824624922053452329.post-86928261043362618992009-10-01T12:58:00.000-07:002009-10-01T13:11:00.065-07:00Chmutov surface 3d printed<div style="text-align: center;"><br /></div><div style="text-align: center;"><br /></div>I received today a new object I have computed, it is a Chmutov 8 order surface (see <a href="http://mathworld.wolfram.com/ChmutovSurface.html">this</a> for a description). I used <a href="http://www.shapeways.com/">Shapeways </a>service and the object is 5cm square. The material is called "white glaze" and was actually quite cheap thanks to a promotion. The result is very nice, with a glossy finish and handling the object is a pleasure.<div><br /></div><div>Here is a picture.</div><div style="text-align: center;"><img src="http://4.bp.blogspot.com/_C2zixREHR-k/SsULoEPAdPI/AAAAAAAAAxk/Jvd-mCTFx3s/s400/chmutov.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 358px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5387725312178025714" /></div>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-91829451919948917512009-09-25T05:39:00.000-07:002009-09-25T05:48:20.385-07:00Parallelizing codeI have modified my fractal generation code to use Intel TBB. While before, on an 8 core machine I was only able to get 13% CPU usage, I now have almost 100%.<div><br /></div><div>The first part I did was layer generation. This means a single <span class="Apple-style-span" style="font-family:'courier new';">parallel_for.</span></div><div><span class="Apple-style-span" style="font-family:'courier new';"><br /></span></div><div><span class="Apple-style-span" style="font-family:arial;"><span class="Apple-style-span" style="font-family: Georgia, serif; ">I have then parallelized the triangle generation part (the so-called marching cubes). To do so I have a simple </span><span class="Apple-style-span" style="font-family:'courier new';">parallel_for</span><span class="Apple-style-span" style="font-family: Georgia, serif; "> and each thread writes its computed triangles to a shared </span><span class="Apple-style-span" style="font-family:'courier new';">concurrent_vector</span><span class="Apple-style-span" style="font-family: Georgia, serif; ">. Very simple and impressively effective.</span></span></div><div><br /></div><div>So this scales quite well and I was able to achieve an overall speedup of 6x on a 8 core machine, over a single core.</div>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com43tag:blogger.com,1999:blog-6824624922053452329.post-17946822786978049472009-07-27T06:43:00.000-07:002009-07-27T07:28:31.443-07:00Support for JPEG2000 in VLIV<span class="Apple-style-span" style="font-size:medium;">I have added minimal support for JPEG2000 in VLIV using </span><a href="http://www.ece.uvic.ca/~mdadams/jasper/"><span class="Apple-style-span" style="font-size:medium;">Jasper</span></a><span class="Apple-style-span" style="font-size:medium;">. Current support is not very well tested, but I have been able to load sample images. They come from </span><span class="Apple-style-span" style=" -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:-webkit-sans-serif;"><a href="http://memory.loc.gov/ammem/browse/ListSome.php?category=Maps"><span class="Apple-style-span" style="font-size:medium;">The Library of Congress American Memory Maps</span></a><span class="Apple-style-span" style="font-size:medium;">, and take quite a while to load (at least one minute, for 5000x2700 pixel image).</span></span><div><span class="Apple-style-span" style="font-family:-webkit-sans-serif;"><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-size:medium;"><br /></span></span></span></div><div><span class="Apple-style-span" style="font-family:-webkit-sans-serif;"><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><span class="Apple-style-span" style="font-size:medium;">The implementation takes the form a a very simple C plugin, source is available on request. It can certainly be improved much, for example I use <span class="Apple-style-span" style="font-family:'courier new';">jas_image_readcmptsample</span> 3 times for every pixel.</span></span></span></div><div><span class="Apple-style-span" style="font-family:-webkit-sans-serif;"><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family:-webkit-sans-serif;"><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;">Please advise if you have ideas for performance or feature improvements.</span></span></div><div><span class="Apple-style-span" style="font-family:-webkit-sans-serif;"><span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px;"><br /></span></span></div><div><span class="Apple-style-span" style="font-family: -webkit-sans-serif; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "><b>UPDATE</b>: it is now much faster using<span class="Apple-style-span" style="font-family:'courier new';"> jas_image_readcmpt</span> on whole image width...</span></div>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-90206933063025303152009-07-08T00:27:00.000-07:002009-07-08T00:33:40.576-07:00New version of IJG JPEG libraryA new version has appeared on <a href="http://www.ijg.org/">IJG web site</a>. It looks like new version called 7 (dated 27-Jun-2009) has few changes from previous one (6b dated 27-Mar-1998 !). Mostly it says that scaled DCT are implemented, I have found that this version is not binary compatible with previous one wrt scaling. I will have to experiment a little more before using this version in Vliv.<div><br /></div><div>One of the other libs I use is zlib, latest version 1.2.3, dated July 18, 2005.</div><div><br /></div><div>LibPng has not been updated for a while, only libtiff seems to be work in progress.</div><div><br /></div><div>I am still looking for a JPEG2000 C library that is as good and simple as these ones.</div>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-69568677252665632882009-07-06T07:09:00.000-07:002009-07-06T07:13:25.723-07:00Another impressive large imageVery large images do not have to be panoramas. <a href="http://www.gigapan.org/viewGigapanFullscreen.php?id=27105">This </a>one is created by stitching hundreds of images coming from a Scanning Electron Microscope. You can find more information <a href="http://nanogigapan.blogspot.com/">here</a>.Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-29394374904832632692009-01-26T05:35:00.001-08:002009-01-26T05:45:22.233-08:00Gigapixel images becoming mainstream on the web<a href="http://davidbergman.net/Obama.html">Here </a>is the latest gigapixel image available on the web. As it is related to Barack Obama's inaugural address, it has received all possible attention and reviews. Image credit goes to David Bergman.<div><br /></div><div>While not new, such a large image is very interesting because of how it has been made, and how it is distributed.</div><div><br /></div><div>The process for image creation involves a robotic arm called <a href="http://gigapansystems.com/index.php?page=system-page">Gigapan Imager</a>, that automatizes completely the process of taking an array of pictures. Having such almost perfectly aligned images allows their custom software to stitch the images with a very impressive quality. Device price is about $279 as Beta ($379 otherwise).</div><div><br /></div><div>The image is then made available on the Web using a Google Maps like interface provided by <a href="http://gigapan.org/">Gigapan.org</a>.</div><div><br /></div><div>This makes creating and distributing giant images much easier than it was before.</div><div><div><br /></div><div><br /></div></div>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-35352544595628119282008-11-27T10:45:00.000-08:002008-11-27T11:10:13.661-08:00Hacking the Webmail Notifier USB deviceSome time ago I ordered the <a href="http://usb.brando.com.hk/prod_detail.php?prod_id=00681">USB Webmail Notifier</a> (only $17). When I received it, I was disapointed to find that the bundled software was very limited, only using the POP3 protocol. This protocol for example has no way of returning number unread mails, so the use cases are rather small.<div><br /></div><div>So I decided to look at how I could code for this device. I found <a href="http://www.edn.com/article/CA243218.html">this </a>very useful (albeit quite old) article on USB HID devices, a wery well though standard for this kind of devices (and keyboards, mouses, joysticks).</div><div><br /></div><div>I also used a <a href="http://www.usblyzer.com/">USB protocol analyzer</a> to see what data was sent to the device. I managed to make it accept any color I want (whereas the bundled software only has green, red and blinking blue).</div><div><br /></div><div>Each component is 5 bits, that makes some noticable transitions between adjacent colors. Also not all colors we use to get on LCD displays are available, because there is no black.</div><div><br /></div><div>Here is a small image of an orange notifier.</div><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_C2zixREHR-k/SS7uFnl76JI/AAAAAAAAAJg/MRqRZtDnqXM/s1600-h/notifierOrange.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/_C2zixREHR-k/SS7uFnl76JI/AAAAAAAAAJg/MRqRZtDnqXM/s320/notifierOrange.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5273413993992284306" /></a><div><br /></div><div>I made 3 command line programs (building them requires the Windows DDK):</div><div><ul><li>a simple color setter, arguments are R G B</li><li>a HUE wheel switcher</li><li>a CPU usage related color, green beeing 0%, red 100%</li></ul><div>There is certainly many other possible uses for this cheap device:</div><div><ul><li>An IMAP4 mail notifier, making use of all IMAP4 features</li><li>An automatic build indicator, for example for CruiseControl</li><li>an event remainder</li><li>...</li></ul><div>As usual source code will be send on request.</div><div><br /></div></div></div>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com9tag:blogger.com,1999:blog-6824624922053452329.post-84030971968403051272008-11-21T00:28:00.001-08:002008-11-21T00:42:18.894-08:00Biggest image I have ever created createdWhile browsing Wikipedia I found some code to generate <a href="http://en.wikipedia.org/wiki/Image:Demj.jpg">nice fractals</a>.<br /><br />I have adapted the code to create really huge images.<br /><br />The largest I have to date is computed at 512000 x 300000 pixels. The image is black and white, I use a binary fromat to save space (1 bit/pixel), that still makes the uncompressed file about 20 Gigabytes. Computation time on a Core2Duo 2 Ghz is about 4 days (with some pausing).<br /><br />I then compute a multiresultion tiff of half size (because it looks better). The final image is about 256000 x 150000.<br /><br />Here is a detail:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_C2zixREHR-k/SSZyQgiLRLI/AAAAAAAAAJY/dEbypuW9Wu8/s1600-h/bigfract.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 279px;" src="http://2.bp.blogspot.com/_C2zixREHR-k/SSZyQgiLRLI/AAAAAAAAAJY/dEbypuW9Wu8/s320/bigfract.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5271026041820497074" /></a><br /><div>Code I have wrtitten uses OpenMP #pragma. I had the opportunity of trying this code in a new Intel machine that has a total of 16 threads (2 CPUs x 4 Cores x 2 Hyperthreads). Using a single parallelfor instruction allowed me to gain a factor of 10 over single threaded code. Not too bad. Of course dynamic threads ala Intel TBB would have allowed further gains, but at the expense of more code.</div><div><br /><br /></div>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-5384927640475428212008-08-22T01:37:00.000-07:002008-08-22T01:44:39.406-07:00Massive meshIn order to generate the 3d objects for my fractals, a large number of triangles have to be generated, so that very detailed areas are not badly rendered.<br />I can generate up to 2 Billion triangles, more than 50 Gigabytes of data.<br /><br />In order to see the result, I have modified my small viewer so that drawing is done reading directly the triangles on disk. This takes about 1 hour on my machine, but virtually unlimited number of triangles can be displayed, even on a basic computer.<br /><br />The following object has exactly 1 447 147 377 triangles.<br /><br />Of course for interactive display the number of triangles is reduced to about 10 000 000.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_C2zixREHR-k/SK58Gc4lPRI/AAAAAAAAAI4/-qZgtBD96SM/s1600-h/massive.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_C2zixREHR-k/SK58Gc4lPRI/AAAAAAAAAI4/-qZgtBD96SM/s400/massive.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5237259866953039122" /></a>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-1773382518739252632008-08-03T05:17:00.000-07:002008-08-13T11:49:40.907-07:00Fractal 3d Object VideoHere is a small video I made from one of my objects.<br />It is a real 3d object, not a ray-traced rendered animation.<br />My graphics card is a GeForce 7600GT (not very fast these days).<br />This card is capable to display about 5 000 000 tris/s lit, shaded.<br />As I have objects with up to 10 000 000 triangles for the most detailed objects, and about 3 000 000 for standard objects, framerate is not very high. I am thinking of upgrading to a more recent card, such as an ATI 4850.<br /><br />I am using custom software to display the object.<br /><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/NlHp0JEm04U&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/NlHp0JEm04U&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-62716943677975539812008-08-02T10:58:00.000-07:002008-08-13T11:49:01.697-07:00Quaternion Fractal Slices VideoI have uploaded to Youtube a video that shows slices from one of my quaternion fractal 3d object.<br /><br />It is created by the same code that is used to create the 3d object.<br /><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/Gib9VdWgdZ8&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/Gib9VdWgdZ8&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-27455036782625597352008-07-15T12:28:00.000-07:002008-08-13T11:50:28.948-07:00VLIV on a powerful machineI had the pleasure to test VLIV on a bi-quad core Xeon 2.5 Ghz.<br />OS was Windows XP 64 bits.<br />It is very smooth (who would have guessed ?).<br />Note that recent VLIV version use multiple threads when possible.<br /><br />I am now dreaming of a 30 inches display...Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-75484144319179073312008-07-15T12:26:00.000-07:002008-08-13T11:50:28.949-07:00Vliv web site is downIt looks like VLIV web site is down.<br />As I have no time to check what happens, if you are interested in getting VLIV, please send a request to <a href="mailto:delhoume@yahoo.com">me</a>.Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-46099510847881034622008-02-10T04:33:00.000-08:002008-08-13T11:50:28.949-07:00VLIV plugin for Windows HD imagesFollowing the recent <a href="http://www.jpeg.org/newsrel20.html">announcement </a>of standardization of HD Photo by the JPEG group as JPEG XR, I have investigated implementation of this format as a <a href="http://vlivviewer.free.fr/vliv.htm">VLIV </a>plugin.<br /><br />My code uses the COM API called <a href="http://msdn2.microsoft.com/en-us/library/ms737408.aspx">Windows Imaging Component</a>, available in Windows XP SP2 and Windows Vista. In theory, any image codec supported by WIC should be accessible by VLIV now, but I have only tested HD Photo images.<br /><br />The API supports tile loading, even if the native format does not support it.<br /><br />Microsoft also has a porting kit for non-Windows platforms.<br /><br />As always, please contact me for plugin code sample, it consists of very few lines of C++.Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-71822783832722375662008-01-27T12:24:00.000-08:002008-08-13T11:50:38.692-07:00Vliv first support for 3D Connexion SpaceNavigatorI have implemented the necessary code to take advantage of my new <a href="http://www.3dconnexion.com/3dmouse/spacenavigator.php">Space Navigator</a> USB device.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_C2zixREHR-k/R5zpXvUFNCI/AAAAAAAAAGw/vO1bPnze6OM/s1600-h/spacenav.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_C2zixREHR-k/R5zpXvUFNCI/AAAAAAAAAGw/vO1bPnze6OM/s400/spacenav.png" alt="" id="BLOGGER_PHOTO_ID_5160255867106702370" border="0" /></a><br />Right now, only panning is supported, but it is yet incredibly fun...<br />The Personal Edition of the device is quite affordable at $59.Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-46187654725374282172008-01-27T10:16:00.000-08:002008-08-13T11:49:40.908-07:00Where are the cheap 3d printers ?In 2007, there has been a rage about cheap 3d printers.<br /><br />Two have been announced, with early 2008 availability. One is even taking advance order !<br /><br />The first one is <a href="http://www.desktopfactory.com/">Desktop Factory</a>, advertised at $4995<br /><br />The second one is 3D System's <a href="http://www.modelin3d.com/">VFlash</a>, advertised at $9900<br /><br />None of them is available, and I am starting to wonder if they really exist, as it's now been several months nothing very new has appeared on their Web sites.Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-17283021296440360372008-01-08T12:38:00.000-08:002008-08-13T11:50:28.952-07:00Fun with pluginsIn a <a href="http://verylargeimages.blogspot.com/2007/06/complete-movie-in-one-image.html">previous post</a>, I was talking about an image that contained all frames of a movie, with precalculated zoom levels.<br /><br />I have now created a specific plugin, that reads AVI files, thanks to Win32's <a href="http://msdn2.microsoft.com/en-us/library/ms706540%28VS.85%29.aspx">AVIFile</a> API.<br /><br />The image from the AVI is now completely virtual, and tiles are created on demand.<br />It is even possible to zoom out 3 levels, at a performance cost because each time you zoom out, 4 times the previous number of tiles have to be loaded.<br />On a sample movie (640x352), this does not look so bad and complete movie is browsable.<br /><br />Here is a screendump:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_C2zixREHR-k/R4PhZEDhTlI/AAAAAAAAAGg/RobJdZXkgYg/s1600-h/avi.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_C2zixREHR-k/R4PhZEDhTlI/AAAAAAAAAGg/RobJdZXkgYg/s400/avi.png" alt="" id="BLOGGER_PHOTO_ID_5153210219343466066" border="0" /></a><br />As usual, source code or dll for this plugin is available on-demand.Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-46784461550359288892008-01-06T06:24:00.000-08:002008-08-13T11:50:28.953-07:00A sample plugin for Markus-Lyapunov fractalsHappy New Year !<br /><br />I have implemented a very simple plugin for displaying Markus-Lyapunov fractals in <a href="http://vlivviewer.free.fr/vliv.htm">VLIV</a>.<br />For more information, see <a href="http://en.wikipedia.org/wiki/Lyapunov_fractal">Wikipedia entry.</a><br /><br />They are very simple to implement, but are very CPU intensive, so I have limited the number of iterations to a very low number, and the formula is the simplest (AB) by default.<br /><br />As usual the image can be zoomed at very high levels.<br />This plugin benefits very much from multi-core CPUs.<br /><br />Here is a screendump:<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_C2zixREHR-k/R4DlWUDhTkI/AAAAAAAAAGY/pAzqSyN04LQ/s1600-h/lyapunov.png"><img style="cursor: pointer;" src="http://1.bp.blogspot.com/_C2zixREHR-k/R4DlWUDhTkI/AAAAAAAAAGY/pAzqSyN04LQ/s400/lyapunov.png" alt="" id="BLOGGER_PHOTO_ID_5152370145215204930" border="0" /></a><br /><br /><div style="text-align: left;">Please send me a message if you are interested in this plugin.<br /></div></div>Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com3tag:blogger.com,1999:blog-6824624922053452329.post-39161807849899893462007-12-14T07:19:00.000-08:002008-08-13T11:50:28.954-07:00Vliv 2.5.1 handles pluginsThe new version of <a href="http://vlivviewer.free.fr/vliv.htm">VLIV </a>supports dynamic loading of plugins.<br /><br />Plugins are easy to write and I provide two samples.<br />A plugin for BMP, TIF, PPM, PNG and JPEG images is delivered, and now vliv.exe has no knowledge of image formats.<br /><br />So if you feel that VLIV should know XXX format or that your implementation of YYY format is the best, all you have to do is write a plugin.Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0tag:blogger.com,1999:blog-6824624922053452329.post-15599432552539361192007-12-11T02:48:00.000-08:002008-08-13T11:50:28.954-07:00Vliv 2.5.0 is out<a href="http://vlivviewer.free.fr/vliv.htm">This </a>new version includes a much improved memory manager that allows really huge images to be loaded at very little memory cost.<br /><br />It also includes a .new sample virtual image loading.<br /><br />Also included is experimental multi threading support for tile loading.Frederic Delhoumehttp://www.blogger.com/profile/08932473677534512129noreply@blogger.com0