Successfully reported this slideshow.

Need for speed

859 views

Published on

Comparison of Various Web Technlogies in their relative Bitmap speed manipulations.

Flash, Silverlight, Javascript HTML5, java applet e.t.c

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Need for speed

  1. 1. Need For Speed<br />Every car has a lot of speed in it. The trick is getting the speed out of it. – A J Foyt.<br />
  2. 2. RocketBoots<br />
  3. 3. Speed<br />Its Addictive<br />DISCLAIMER:We acknowledge that wikipedia makes it sound so cool but don’t try drugs. <br />
  4. 4. Speed is awesome<br />Apps feel lightweight.<br />Brings the web to awhole new experience.<br />Faster Pixel Math e.g. Computer Vision.<br />
  5. 5. And it can be deadly too<br />Premature optimization is the root of all evil - Donald Knuth.<br />Design first, optimize later.<br />
  6. 6. Sharpening the tools<br /><ul><li>Faster Algorithms
  7. 7. Code Tricks & Best Practices
  8. 8. Better Compiler Optimisations
  9. 9. Bytecode Manipulation
  10. 10. Thin Runtimes</li></li></ul><li>Why its important to us<br />The only way of discovering the limits of the possible is to venture a little way past them into the impossible. - Arthur Clarke.<br />
  11. 11. Contestants, start your engines<br />
  12. 12. Who can push most pixels ?<br />JavaScript (HTML5)<br />Java (Applet)<br />ActionScript 2.0<br />ActionScript 3.0<br />Silverlight 3.0<br />Alchemy v0.5a / + Pixel Bender<br />Haxe 2.05 with memory API<br />Objective-C / + GCD<br />WebGL<br />OpenGL<br />Pixel<br />
  13. 13. The rules… No Cheating!!<br /><ul><li>Create a massive amount of points in 3D Pixel Cloud.
  14. 14. Draw the pixel cloud on the screen every frame.
  15. 15. Reduce/increase particles until frame rate is close to 20 FPS.
  16. 16. Language specific optimisations allowed.</li></li></ul><li>The Creature<br />Mac Book Pro 15”<br />2.66GHz Core 2 Duo<br />4GB Ram<br />GeForce 9400m(256 MB)<br />Mac OSX (10.6.3)<br />
  17. 17. The Algorithm<br />initBitmap();<br />createParticles();<br />//every framerenderParticles();<br />Adjust particles until frameRate ~= 20FPS.<br />
  18. 18. Performance Comparisons<br />Show each demo. (The fun stuff)<br />Briefly explain code.<br />Measure number of particles when they become stable.<br />Plot in Excel Chart.<br />
  19. 19. Java Applet<br />
  20. 20. Action Script 2<br />
  21. 21. Action Script 3<br />
  22. 22. Alchemy v0.5a<br />
  23. 23. Alchemy v0.5a with Pixel Bender<br />
  24. 24. HAXE 2.05 with memory API<br />
  25. 25. HTML 5.0 + JavaScript<br />Safari Crashed<br />Internet Explorer 8 Doesn’t support it yet<br />
  26. 26. Silverlight 3.0<br />
  27. 27.
  28. 28. To Infinity and Beyond<br />Nightly Builds of May 6 2010<br />Chromium – Chrome<br />Minefield - Firefox<br />Webkit - Safari<br />
  29. 29. Redemption (Nightly Builds)<br />Internet Explorer 9 preview went blank<br />
  30. 30. WebGL – Hardware Acceleration<br />
  31. 31.
  32. 32. The Natives<br />Thought we’d try to make native apps to see the difference.<br />Objective C (Cocoa)<br />Open GL + GLUT<br />
  33. 33. Objective C (Cocoa)<br />
  34. 34. OpenGL – The God of Particles<br />
  35. 35. This wouldn’t be possible without<br />//Google<br />http://www.google.com<br />//Fractals<br />http://local.wasp.uwa.edu.au/~pbourke/fractals/<br />http://local.wasp.uwa.edu.au/~pbourke/fractals/fractalgallery/<br />http://local.wasp.uwa.edu.au/~pbourke/fractals/peterdejong/<br />//AVM2 Bytecode<br />http://www.adobe.com/devnet/actionscript/articles/avm2overview.pdf<br />//alchemy<br />http://labs.adobe.com/technologies/alchemy/<br />http://labs.adobe.com/wiki/index.php/Alchemy:Documentation:Getting_Started<br />http://www.unitzeroone.com/blog/2009/03/18/flash-10-massive-amounts-of-3d-particles-with-alchemy-source-included/<br />http://drawlogic.com/category/alchemy/<br />http://www.automatastudios.com/2008/11/21/understanding-adobe-alchemy/<br />http://www.unitzeroone.com/blog/2008/11/28/adobe-alchemy-is-it-actionscript-heresy/<br />//Experimental Mem API in AS3<br />http://blog.joa-ebert.com/2009/04/03/massive-amounts-of-3d-particles-without-alchemy-and-pixelbender/<br />http://blog.joa-ebert.com/2009/08/05/tdsi-examples/<br />http://blog.joa-ebert.com/2009/12/03/the-scalable-apparat/<br />//Haxe<br />http://webr3.org/experiments/haxe-particle-pusher/300k/<br />http://haxe.org/api/flash9/memory<br />http://haxe.org/doc/why<br />http://haxe.org/doc/start/flash/as3migration<br />http://ncannasse.fr/blog/adobe_alchemy<br />http://ncannasse.fr/blog/the_failure_of_as3<br />
  36. 36. There were heaps more, but … No space<br />//Javascript<br />http://mrdoob.com/lab/javascript/strangeattractor/<br />http://www.leichtgewicht.at/387/pushing-javascript-particles/<br />http://www.andrew-hoyer.com/experiments/cloth<br />https://developer.mozilla.org/en/Drawing_Graphics_with_Canvas<br />//Java Applet<br />http://java.sun.com/docs/books/tutorial/2d/images/drawimage.html<br />http://blog.debit.nl/?p=79<br />http://java.sun.com/applets/<br />http://java.sun.com/docs/books/tutorial/2d/index.html<br />//O3d<br />http://code.google.com/apis/o3d/<br />//Web GL<br />http://www.taranfx.com/chrome-webgl-graphics-hardware-acceleration<br />http://noscope.com/journal/2010/04/webgl-in-google-chrome<br />https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html<br />http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation<br />http://github.com/gpjt/webgl-lessons/blob/master/lesson07/<br />//openGL<br />http://cgi.cse.unsw.edu.au/~cs3421/wordpress/<br />http://nehe.gamedev.net/<br />http://www.dei.isep.ipp.pt/~matos/cg/docs/manual/<br />http://glprogramming.com/red/chapter07.html<br />http://www.opengl.org/resources/libraries/glut/<br />//Silverlight<br />http://blog.efvincent.com/concurrency-optimization-silverlight/<br />http://blog.joa-ebert.com/2009/08/10/flirting-with-silverlight/<br />http://www.silverlight.net/getstarted/<br />//Skyrails - This is an example of an interface that could take advantage of GPU<br />http://www.youtube.com/watch?v=I2d312_dXEs&feature=related <- One of my Uni tutors PHD project<br />
  37. 37. Questions<br />“ When people stop asking good questions, bad things seem to happen ” – Robin Hilliard<br />
  38. 38. Feel the Speed<br />“Speed, it seems to me, provides the one genuinely modern pleasure. ” – Aldous Huxley<br />TRAC - http://trac.rocketboots.com/os/browser/webdu2010_need_for_speed/trunk<br />SVN - http://svn.rocketboots.com/os/webdu2010_need_for_speed/trunk<br />
  39. 39. Say ‘Hi’ to us<br />ManojVekaria<br />@nojified<br />www.codeexplode.com<br />noj@rocketboots.com<br />SushantVerma<br />@sushified<br />www.trynull.com<br />sushant@rocketboots.com<br />

×