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 />
RocketBoots<br />
Speed<br />Its Addictive<br />DISCLAIMER:We acknowledge that wikipedia makes it sound so cool but don’t try drugs.  <br />
Speed is awesome<br />Apps feel lightweight.<br />Brings the web to awhole new experience.<br />Faster Pixel Math e.g. Com...
And it can be deadly too<br />Premature optimization is the root of all evil  - Donald Knuth.<br />Design first, optimize ...
Sharpening the tools<br /><ul><li>Faster Algorithms
Code Tricks & Best Practices
Better Compiler Optimisations
Bytecode Manipulation
Thin Runtimes</li></li></ul><li>Why its important to us<br />The only way of discovering the limits of the possible is to ...
Contestants, start your engines<br />
Who can push most pixels ?<br />JavaScript (HTML5)<br />Java (Applet)<br />ActionScript 2.0<br />ActionScript 3.0<br />Sil...
The rules… No Cheating!!<br /><ul><li>Create a massive amount of points in 3D Pixel Cloud.
Draw the pixel cloud on the screen every frame.
Reduce/increase particles until frame rate is close to 20 FPS.
Language specific optimisations allowed.</li></li></ul><li>The Creature<br />Mac Book Pro 15”<br />2.66GHz Core 2 Duo<br /...
The Algorithm<br />initBitmap();<br />createParticles();<br />//every framerenderParticles();<br />Adjust particles until ...
Performance Comparisons<br />Show each demo. (The fun stuff)<br />Briefly explain code.<br />Measure number of particles w...
Java Applet<br />
Action Script 2<br />
Action Script 3<br />
Alchemy v0.5a<br />
Alchemy v0.5a with Pixel Bender<br />
HAXE 2.05 with memory API<br />
HTML 5.0 + JavaScript<br />Safari Crashed<br />Internet Explorer 8 Doesn’t support it yet<br />
Silverlight 3.0<br />
To Infinity and Beyond<br />Nightly Builds of May 6 2010<br />Chromium – Chrome<br />Minefield - Firefox<br />Webkit - Saf...
Redemption (Nightly Builds)<br />Internet Explorer 9 preview went blank<br />
WebGL – Hardware Acceleration<br />
The Natives<br />Thought we’d try to make native apps to see the difference.<br />Objective C (Cocoa)<br />Open GL + GLUT<...
Objective C (Cocoa)<br />
OpenGL – The God of Particles<br />
Upcoming SlideShare
Loading in...5
×

Need For Speed

2,283

Published on

WebDU 2010 talk. Comparison of various web technologies at their bitmap manipulation speeds.

Flash, HTML5 javascript canvas, silverlight, java applets, webgl e.t.c

Interesting experiment and interesting results none the less.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,283
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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 />

×