Planet WebGL

September 02, 2010

Learning WebGL

WebGL around the net, 2 September 2010

Whoops, I’ve let a bit of a backlog of links build up — here’s the first batch.

by giles at September 02, 2010 01:39 PM

August 21, 2010

Andor Salga

Compensating for WebGL readPixels() Failure Inconsistencies

While working on Processing.js ref tests, I noticed Chrome/Chromium and Minefield behave differently when they fail calling readPixels() in WebGL. If you want your code to be backward-compatible with older nightlies, you have to handle these failures differently.

When readPixels() fails on Minefield, an exception is thrown. While on Chrome/Chromium an error is raised within the WebGL state. I wrote a hack to handle these cases:

var arr;
try{
  arr = ctx.readPixels(0, 0, width, height, ctx.RGBA, ctx.UNSIGNED_BYTE);

  // If running Chrome/Chromium and the above call fails,
  // use the new way.
  if(ctx.getError()){
    arr = new Uint8Array(width * height * 4);
    ctx.readPixels(0, 0, width, height, ctx.RGBA, ctx.UNSIGNED_BYTE, arr);
  }
}
catch(e){
  // If running Minefield and the old way throws an
  // exception, use the new way.
  arr = new Uint8Array(width * height * 4);
  ctx.readPixels(0, 0, width, height, ctx.RGBA, ctx.UNSIGNED_BYTE, arr);
}

I encourage any JavaScript gurus to post a cleaner way to handle this. Also, I’m running OS X 10.5, so I have nothing for WebKit…yet.


Filed under: JavaScript, Open Source, WebGL

by Andor Salga at August 21, 2010 01:52 AM

XP PointStream 0.4.5 Released!

We’ve released XB PointStream 0.4.5! Have a WebGL-enabled browser? Check out the demos! Or check out our video.


What is XB PointStream?

XB PointStream is a JavaScript library which will emulate Arius3D‘s PointStream viewer. It is designed to quickly render a large amount of point cloud data to the <canvas> tag using WebGL.

Keeping Up With the Spec

Due to changes to the WebGL specification, we decided to do a minor release to keep our library up to date and working with new nightlies. We updated our use typed arrays, readPixels() and made changes to our shaders so they pass validation. However, we’re still supporting the deprecated versions of function signatures to keep XBPS compatible with older browsers.

Get Involved!

If you’d like to get involved in development, testing or if you simply want to suggest ideas, visit us in the #seneca channel in irc.mozilla.org. Or file some tickets on our Lighthouse page. If you wanna get your hands dirty and hack some code, fork our repository from Github.


Filed under: Arius3D, Open Source, WebGL, XB PointStream

by Andor Salga at August 21, 2010 12:19 AM

August 16, 2010

Learning WebGL

Software rendering

A while back, Vladimir Vukićević updated the OSMESA32.dll build he’s created for people to use on Windows machines that use software rendering, so that it would work with recent builds of Firefox. I’d been intending to test it on my Intel-graphics machine for a while, but it was in storage and a pain to access… but the other day, Pranamya checked it out and was good enough to report that it worked, so good news — if you’ve been staying with an older version of Firefox so that you could use software rendering, you can now finally upgrade!

by giles at August 16, 2010 06:36 PM

More API changes

Kevin Theisen, the creator of the WebGL chemistry tool ChemDoodle 3D, dropped me a line to highlight a change that has just hit WebKit and Chromium — they’ve moved entirely over to the new JavaScript Typed Array specification, so classes like WebGLFloatArray and WebGLUnsignedShortArray have been replaced by the new Float32Array and Uint16Array respectively. Yes, that’s right: WebGLFloatArray no longer exists.

This is a big change — I’ve fixed the tutorials on this site, and Kevin has (of course!) updated ChemDoodle, but it looks like almost every other WebGL demo out there needs updating :-( Luckily, it’s just a simple search and replace on the array types.

by giles at August 16, 2010 12:54 PM

August 10, 2010

Learning WebGL

WebGL around the net, 10 August 2010

by giles at August 10, 2010 12:52 PM

August 07, 2010

Learning WebGL

August 06, 2010

Learning WebGL

WebGL around the net, 6 August 2010

Some great links for today!

  • On the subject of mathematical uses of WebGL, this looks fascinating in a brain-stretching kind of way: Voronoi Diagrams in WebGL.
  • On the subject of SIGGRAPH, Dennis Ippel was there, and in a blog post he mentions that he met the X3DOM team. He gives a nice example of a demo he built using their library: a page for showing mutual Twitter friends.
  • Paul Brunt ported the Flash JibLib physics library to JavaScript so that he could use it in his GLGE demos; someone else has picked up that ball and seems to be running with it. (Also via Henrik!)
  • Diego Cantor, whose WebGL demos I’ve posted about before, has published a formal academic paper on using WebGL for medical imaging. This is great stuff; while most demos, frameworks and applications people are building in WebGL are based on computer games — and this is a good thing, and the right thing, as that’s where most interesting 3D applications are right now — in the long run, a lot of the most interesting stuff looks like it will come from non-gaming “real-world” applications of 3D in the browser, whether it’s medical imaging, maths (like WebGLot or the Voronoi diagrams), or chemistry, like ChemDoodle3D.
  • News about Benjamin DeLillo’s WebGLU: it now supports configurable materials.
  • For Polish-speaking readers, here’s what looks like another good tutorial from 3dgames.pl, this time on ambient and directional lighting.
  • Evgeny Demidov has a bunch of new demos on his site, including a particularly nice furry torus. No, that’s not a euphemism :-)
  • by giles at August 06, 2010 12:48 AM

    August 05, 2010

    Learning WebGL

    Retrospective changes to the lessons for the spec update

    I’ve updated my tutorials to reflect the WebGL spec changes; they should now run just fine on the most recent versions of WebKit, Chromium, and Minefield, with shader validation switched on. I’ll be updating the lesson text later on this evening.[UPDATE the lessons are all now updated.]

    If you’ve still to update your own WebGL pages to match the spec, here are the precise changes I made — they might make things easier for you.

    At the start of every fragment shader, I put this:

      #ifdef GL_ES
      precision highp float;
      #endif
    

    This is because all fragment shaders now need a qualifier to say what kind of floating-point precision they use; precision highp float gives you (as you’d expect) the highest precision. The #ifdef around it is a bit of guard code to stop this bit of code being executed in older browsers that don’t support this bit of the spec yet.

    The other change I had to make was to update the way I called texImage2D. I used to do this:

        gl.texImage2D(gl.TEXTURE_2D, 0, texture.image, true);
    

    This created a texture using the HTML image element bound to texture.image, with a mip level of 0. It also flipped the image around the X axis, which I find useful because it allows me to have texture coordinates that have Y axes that increase as you go up the screen, but to use texture images in formats like GIF, whose Y coordinates increase as you go down the image. This now requires two steps: firstly, I call gl.pixelStorei with appropriate parameters to say that all textures I use should be flipped around the X axis:

        gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
    

    Then, when I want to create a texture, I call this:

        gl.texImage2D(
            gl.TEXTURE_2D, 0,
            gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE,
            texture.image
        );
    

    The first two parameters are the same as before, and the last parameter is the same image as before. In the middle, we have a constant to tell WebGL that the image that we’re loading has red, green, blue and alpha components, another to say that we want to store it in the same way [UPDATE: in the comments, Benoit Jacob from the Mozilla team explains that these two must be the same value, and actually specify how the image is stored on the graphics card; so long as you're loading the image from an HTML element, WebGL knows already what format it's on], and a final one to say that each component is stored as an unsigned byte.

    Those changes were all that were necessary to get everything working for me; let me know if you have any problems!

    by giles at August 05, 2010 08:10 PM

    August 02, 2010

    Benjamin DeLillo

    Getting Started With Materials in WebGLU

    For those who do not know, WebGLU is  a development framework for building applications with WebGL. For the past several months I have been working on various internal improvements to WebGLU. One of the most significant improvements I've made is the introduction of a materials system. This system allows shaders and textures to be associated with one another and for them to all be loaded and

    by Bjartr (noreply@blogger.com) at August 02, 2010 09:58 PM

    July 28, 2010

    Learning WebGL

    Shader validation and other API changes

    There are some API changes coming in WebGL, which will probably require pretty much all of the WebGL content out there to be modified; the changes are likely to go live in Minefield in a week or two, so we need to get moving! Vladimir Vukićević and Benoit Jacob have given the details in two posts on the public WebGL mailing list. Here’s a summary:

    • Fragment shaders will now be validated to make sure that they are correct for WebGL / OpenGL ES; previously you could get away with using quite a lot of desktop OpenGL stuff, in particular missing out the mandatory precision specifier in fragment shaders (see the mailing list for details and a fix from Vladimir). In the short term, whether or not this validation happens will be optional, decided by the brower’s user, and off by default. However, it will become mandatory, so you should switch it on now to test your content. To switch it on:
      • In Minefield, go to about:config and change webgl.shader_validator to true.
      • In Chromium, pass --enable-glsl-translator in on the command line.
      • There are no details on how to do it in WebKit yet.
    • The gl.texImage2D function has changed its signature. Brandon Jones posted about this the other week, noting that Chromium warnsyou when you use the old form; both old and new forms of the function have been supported by the browsers for a while, but the old one will soon be gone.
    • As Andor Salga mentioned recently, gl.readPixels has also changed.

    So, I’m going to go through all of my demos and tutorial code and change to the new APIs; if you have WebGL content live on the Web, you should too!

    by giles at July 28, 2010 08:20 PM

    WebGL around the net, 28 July 2010

    Quite a lot of links for today, some of them quite old — but now my backlog is cleared, and just in time: SIGGRAPH is running right now — Dennis Ippel and Benjamin Delillo, who often appear in these roundups, are there — so I’m sure we can expect a rush of further news over the next few days :-)

    by giles at July 28, 2010 08:07 PM

    Andor Salga

    XB PointStream 0.4 Released!

    We’ve released XB PointStream 0.4! Have a WebGL-enabled browser? Check out the demos! Or check out our video.


    What is XB PointStream?

    XB PointStream is a JavaScript library which will emulate Arius3D‘s PointStream viewer. It is designed to quickly render a large amount of point cloud data to the <canvas> tag using WebGL.

    Features Landed

    In this release we added streaming support, you no longer have to wait until the entire point cloud is downloaded before viewing it. Also, there was an issue rendering on some versions of OS X and Linux, which we fixed. Our PSI reader is coming along and has been pushed into our Github repository.

    Get Involved!

    If you’d like to get involved in development, testing or if you simply want to suggest ideas, visit us in the #seneca channel in irc.mozilla.org. Or file some tickets on our Lighthouse page. If you wanna get your hands dirty and hack some code, fork our repository from Github.


    Filed under: Arius3D, Open Source, WebGL, XB PointStream

    by Andor Salga at July 28, 2010 05:12 PM

    July 26, 2010

    Peter Nitsch

    Exploring a Mandelbox with WebGL

    WebGL Mandelbox Explorer

    Note: This demo requires a WebGL capable browser. Installation instructions can be found at Learning WebGL or the WebGL Wiki.

    This weekend I put the finishing touches on a WebGL Mandelbox explorer I’ve been tinkering with for the past week or so. If you’re interested in the mathematics, Tom Lowes who wrote the Mandelbox formula does a good job explaining it in detail on his site. I’ve been captivated with the pattern ever since watching Krzysztof Marczak’s amazing Mandelbox trip on YouTube (a must-see).

    Traversing a 3D Mandelbox in real-time is intensive on any platform, but WebGL does a fairly good job thanks to the GPU. I still need to lower the fractal iterations upon interaction, but that was expected. Rrrola was nice enough to post some source for his real-time explorer, which I ported to this version. I’ll add my own refinements over time as I get more comfortable with the formula.

    There is plenty of room for refinement, but basic mouse and keyboard movement controls make exploration fairly simple. Things like camera viewing angles will be patched in over time.

    This will be an evolving project. If you stumble upon any bugs or have suggestions, I’d love to hear them.

    by Peter Nitsch at July 26, 2010 03:10 PM

    July 21, 2010

    Learning WebGL

    WebGL around the net, 21 July 2010

    by giles at July 21, 2010 02:04 PM

    July 17, 2010

    Andor Salga

    Does My Browser Support WebGL?

    Sometimes I want to know if my browser supports WebGL–without loading a large and fancy demo or digging through about:config.

    www.DoesMyBrowserSupportWebGL.com will give me a straightforward answer. This is especially useful if your desktop looks anything like mine:

    Is WebGL enabled? Is this new demo broken? Didn’t I just do an update? Am I using the right profile? This site expunges one variable to investigate.

    Yay or Nay.


    Filed under: Open Source, WebGL

    by Andor Salga at July 17, 2010 02:26 PM

    July 14, 2010

    Andor Salga

    Compensating for WebGL readPixels() Spec Changes

    I’m currently working on two projects which, in some way use WebGL‘s readPixels(). In Processing.js it is needed when running ref tests with 3D sketches. In XB PointStream it is used to get a screenshot of a point cloud on the user’s request.

    In my last blog I wrote about some trouble I had calling readPixels(). It worked on Minefield and Chrome, but not on WebKit. Benoit Jacob mentioned the problem could have been due to a change in the WebGL specification. I re-checked the spec and sure enough, readPixels() was changed. To support both methods (old and new), I needed to write a work-around. It didn’t take long to come up with something that’s cross-browser. Here it is:

    var arr = ctx.readPixels(0, 0, w, h, ctx.RGBA, ctx.UNSIGNED_BYTE);
    if(!arr){
      arr = new WebGLUnsignedByteArray(w * h * 4);
      ctx.readPixels(0, 0, w, h, ctx.RGBA, ctx.UNSIGNED_BYTE, arr);
    }
    

    If you want to see it in action, check out our 3D point cloud gallery.


    Filed under: Arius3D, Open Source, Processing.js, WebGL, XB PointStream

    by Andor Salga at July 14, 2010 11:45 PM

    XB PointStream 0.3 Released!

    We’ve released XB PointStream 0.3! Have a WebGL-enabled browser? Check out the demos! Or check out our video.

    Features Landed

    In this release, we decided to add some elementary features such as mouse and keyboard support, but we’ve also added interesting bits like toPNG(), resize() and attenuation(). With toPNG() you can create a static 2D image from the 3D point cloud. resize() simply resizes the canvas and attenuation() along with pointSize() allows you to finely tune the point attenuation desired for your point cloud.

    Bugs!

    While working with Minefield, Chrome and Webkit, we’ve seen several inconsistencies. One major issue is toPNG() doens’t work on Webkit because readPixels() now fails. But it used to work! Another issue is rendering anything using OS X 10.6 on an iMac. The points come out looking like garbage. This happens both on Minefield and Chrome while Webkit refuses to render anything. Interestingly, on the same machine running Windows everything looks good. And I have no problems on my MacBook Pro running 10.5… We certainly have a long road ahead in terms PointStream being cross-browser.

    Get Involved!

    If you’d like to get involved in development, testing or if you simply want to suggest ideas, visit us in the #seneca channel in irc.mozilla.org. Or file some tickets on our Lighthouse page. If you wanna get your hands dirty and hack some code, fork our repository from Github.


    Filed under: Arius3D, Open Source, WebGL, XB PointStream

    by Andor Salga at July 14, 2010 03:36 AM

    July 11, 2010

    Learning WebGL

    WebGL around the net, 11 July 2010

    by giles at July 11, 2010 07:07 PM

    July 09, 2010

    C3DL Development News

    SceneCreator0.3

    SceneCaster is an online application that allows people to create “spaces” which are 3d scenes on the browsers and share them which other.  It is free to sign up and relatively  easy easy to use. The main problems with SceneCaster are the requirements: The operating systems used are Windows XP or Vista and the browser must be FireFox or Internet Explorer. Also SceneCaster needs to install an application onto the users computer. These requirements limit the amount of people able to uses SceneCaster. I have created a demo using the c3dl library, which uses WebGL, to create a demo of SceneCaster called SceneCreator. This will allow many people to use SceneCaster without installing any software or pug-ins and will support many different browsers.

    SceneCreator  has its own GitHub LightHouse, Website and is worked on daily by Matthew Postill (me). If you would like to see the progression of SceneCreator you can check out my blog at http://sonnilion.wordpress.com/The demo is located here (requires a WebGL enabled browser). The demo is on version  0.3 and has 3 views 2D, 3D, and Google 3D Warehouse.

    2D:

    • display 3d object using bounding boxes, walls, lights, and enclosures in a 2d scene
    • create wall
    • insert lights
    • new scene(delete all)
    • walls, wall corner, and lights can be selected
    • delete selected
    • move selected

    3D:

    • add item to scene from the side bar
    • item selection (clicking an item highs it blue and is set as the selected item) *wall are not selectable
    • once an item is selected a user can (using the button above the scene):
      • delete
      • rotate
      • move up/down
      • scale
      • copy
      • move to position of the mouse
    • camera widget
    • 5 independent cameras
    • save/load using local storage

    Google Warehouse:

    • view the Google 3D Warehouse website inside the browser
    • back and forward functionality
    Here is a demo of me creating a PacMan scene in only 3 minutes. SceneCreator Pacman Pacman Scene

    by Matt at July 09, 2010 04:24 PM

    July 01, 2010

    Learning WebGL

    WebGL around the net, 1 July 2010

    by giles at July 01, 2010 01:15 PM

    June 29, 2010

    Learning WebGL

    First cut at a WebGL FAQ

    I’ve polished up the content from the talk I gave at WebGL Camp last Friday (video of the Skype presentation of my talk here, all talks linked from here) and used it to create a WebGL FAQ! Thoughts, comments, corrections, whinges and whines all welcome in the comments — or just register and edit the Wiki.

    by giles at June 29, 2010 12:28 AM

    June 25, 2010

    Learning WebGL

    Slides for my WebGL camp presentation

    Just finished my first-ever Skype-based presentation — very confusing talking to a live audience when they’re thousands of miles away! Here are the slides I showed; feedback on the suggested answers to the frequently asked questions in there — and, indeed, other stuff that should be in there — are of course very welcome.

    I’ll put it all on the WebGL Cookbook wiki later so that everyone can edit it — hopefully Khronos will be willing to host it as a better FAQ later on.

    by giles at June 25, 2010 06:49 PM

    June 23, 2010

    Learning WebGL

    WebGL around the net, 23 June 2010

    Lots of news for today:

    by giles at June 23, 2010 12:56 PM

    June 21, 2010

    Learning WebGL

    WebGL Camp

    The first WebGL Camp is happening at Stanford University, Palo Alto, California this Friday, and I’m pleased to say that I’ll be giving a short talk (via Skype, so people will be spared the sight of my face ;-) If you’re in the area then it really sounds worth going to; if you’re not, apparently everything will be streamed and also available to watch afterwards (on YouTube, I think).

    Speakers that the organiser, Henrik Bennetsen, has announced so far include Vladimir Vukićević, the originator of Canvas3D and thus WebGL, Trevor Smith of Spaciblo, and Google’s Peterson Trethewey (on O3D and WebGL). The speakers he’s not announced yet are also very promising, so it looks like it’s going to be a great day!

    [UPDATE] The full schedule has now been announced — it’s looking really good. Many thanks to Henrik for setting this up! I only wish I could be there in person.

    by giles at June 21, 2010 12:45 PM

    June 16, 2010

    Andor Salga

    XB PointStream Release 0.1

    I’m working with Mickael Medel at Seneca College’s CDOT (Center for Development of Open Technology) on XB PointStream, a JavaScript tool which will render high quality point clouds in the browser. If you have a WebGL-enabled browser, check out our 0.1 release!

    0.1

    For a 0.1 release, I think we have something fairly decent. I does mostly what it should–it renders a large amount of point cloud data on Minefield, Webkit and Chrome at a fast frame rate. The largest issue we have right now is compressing files, which Mickael is working on.

    It took a while to get to 0.1 and I think we’re on the right track. Here’s how we did it:

    Creating the Octree

    The fundamental problem we face is that of rendering millions of points in the browser in real time. I knew one way we could speed up rendering is to spatially partition the point cloud and do frustum culling. I looked into a few different forms of spatial partitioning and found octrees could be an appropriate data structure. After doing a bit of research and reading, I felt I had an understanding of how to implement one and wrote one in a Processing sketch. As test data, I just generated a series of random points along the surface of a sphere and inserted them into the octree:

    The theory was if I had it working on Processing, I could take the exact sketch and feed it into Processing.js. Using a WebGL-capable browser, I should see a similar result. Unfortunately, I did run into a bug, which took up an entire evening to track down. I got some help from the Processing.js community and by using a newer parser, I managed to make the octree and points render on Minefield using Processing.js. The main problem was it was very slow.

    Parsing ASC Files

    After I had a (mostly) working octree, I was interested to see it accept some real data. I used Arius3D‘s PointStream ImageSuite to convert a PSI file into something I could easily parse, an ASC file. This format presents the data in an easy human and computer readable format:

    -8.088 -12.421 -14.033 64 32 16 -0.372 -0.247 -0.894
    -8.088 -12.293 -14.033 64 40 24 -0.380 -0.153 -0.911
    -8.088 -12.165 -14.033 56 40 24 -0.341 -0.012 -0.939

    It was clear the order was positions, colors then normals. I wrote up a small XHR script to download the data, split on spaces, parsed the strings to numbers and inserted the values into the octree. I managed to make it render, but only at around 1 FPS.

    Performance Explosion

    The problem with Processing.js is there isn’t a way to create a shape once and render it from a cached buffer. Each frame, shapes need to be re-created in case they deform. The renderer then suffers a performance hit, but this has been filed on our lighthouse account. So I had to create a work-around and optimization to get things rendering at a decent frame rate.

    A related problem is that Processing.js renders points by translating and drawing the data in a VBO which contains only one primitive. This works if rendering a particle system which only has a few hundred points, but not for dense point clouds. I knew by increasing the VBO to larger size, I could improve performance, but I had no idea how much of an increase I would see. I spent almost two days hacking apart pieces of Processing.js, fixing my octree, stitching pieces of JavaScript within my sketch and debugging until I had the point cloud rendered. I checked the frame rate and I was completely surprised at the performance gain. We were now rendering at ~50 FPS for 150,000 lit points. Depending on the depth of the octree, I see performance between 20 to 50 FPS. The more octants there are, the more culling can be done, but the performance does suffer. This is something we’ll need to work on.

    Next Steps

    I recently added some fixes so XB PointStream renders on Chrome and I’ll be implementing octant/frustum culling this week. I’ll also start to remove the Processing.js crutch so our library can begin to take shape.


    Filed under: Arius3D, Open Source, Processing, Processing.js, WebGL, XB PointStream

    by Andor Salga at June 16, 2010 03:26 AM

    June 14, 2010

    Learning WebGL

    WebGL around the net, 14 June 2010

    Lots of new links since last time!

    by giles at June 14, 2010 05:53 PM

    June 08, 2010

    Learning WebGL

    Video: WebGL on the Nokia N900

    Last week, a firmware release made WebGL available by default in the built-in browser on the Nokia N900 smartphone. I’ve put together a video of some of the N900-compatible demos that I listed yesterday. Apologies for the terrible camerawork!

    <object height="505" width="640"><param name="movie" value="http://www.youtube.com/v/KVOTK5f1VYk&amp;hl=en_US&amp;fs=1&amp;"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed allowfullscreen="true" allowscriptaccess="always" height="505" src="http://www.youtube.com/v/KVOTK5f1VYk&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" width="640"></embed></object>

    It’s worth saying again that, as far as I can tell, WebGL being live in the N900’s Gecko-based browser is not a statement from the Mozilla team that it’s ready for production applications — rather, it’s a choice on Nokia’s side to make an early-access development release of a technology available to all N900 users. Perhaps they feel that anyone who buys a Linux-based smartphone will be techie enough to be able to handle a bit of beta HTML5 goodness ;-)

    [UPDATE] At Mr. doob’s suggestion, I tried IQ’s Shader Toy WebGL demo. It worked pretty well, although the Quaternion demo did cause a few responsiveness problems… here’s a video:

    <object height="505" width="640"><param name="movie" value="http://www.youtube.com/v/ywZTDtQT9b8&amp;hl=en_US&amp;fs=1&amp;"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed allowfullscreen="true" allowscriptaccess="always" height="505" src="http://www.youtube.com/v/ywZTDtQT9b8&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" width="640"></embed></object>

    by giles at June 08, 2010 11:47 PM

    June 07, 2010

    Learning WebGL

    Nokia N900 WebGL support

    I’ve spent a while playing with WebGL on the Nokia N900 smartphone. It sounds like its inclusion in the 1.2 release of the phone’s firmware (which happened last week) was a surprise to the Mozilla team, which would explain why we’ve not seem any publicity… So, given that the developers don’t think it’s ready for prime time yet, and that the WebGL standard isn’t at 1.0 yet, and no-one’s been testing their demos on anything apart from desktop machines, it’s surprising that it works at all, and astonishing that it works as well as it does :-)

    If you have an N900, here’s a random selection of demos that will work on it; I’ll put a video together for people who don’t but still want to see it… [UPDATE: video here]

    (That list is entirely based on what I happened to click on over the course of this evening. If you’ve got a WebGL demo that you’d like me to try out, leave a comment below with a direct link to the WebGL page and I’ll let you know if it works, and put it in the list if it does.)

    by giles at June 07, 2010 11:46 PM

    WebGL around the net, 7 June 2010

    by giles at June 07, 2010 12:58 PM