• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Need For Speed
 

Need For Speed

on

  • 3,024 views

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

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.

Statistics

Views

Total Views
3,024
Views on SlideShare
2,987
Embed Views
37

Actions

Likes
1
Downloads
0
Comments
0

4 Embeds 37

http://www.trynull.com 23
http://www.slideshare.net 12
http://static.slidesharecdn.com 1
http://www.verious.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Need For Speed Need For Speed Presentation Transcript

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