Firefox 4 Beta: Latest Update is Here, with WebGL

The new Firefox 4 Beta is here, and comes with WebGL activated by default. You can download this new beta here: http://firefox.com/beta.

Flight of the Navigator is a WebGL + Audio API demo developed by a team of Mozilla volunteers.

You can see the demo online here (you need a WebGL compatible browser).

More information about this demo on David Humphrey’s blog (one of the developer of this demo) and more about WebGL in Firefox Beta8 on Vlad’s blog.

The screencast:

About Paul Rouget

Paul is a Firefox developer.

More articles by Paul Rouget…


38 comments

  1. Paul Booker

    Booya!

    December 22nd, 2010 at 15:33

  2. barney

    Love it!

    I love firefox 4. This beta 8 just made my day…. my week is better.
    … A better month on the web… a better Christmas on the highway of the information. Hell, a better car on the way to the future. Slim, beautiful, fast, innovative. Greetings from Hungary. Keep up the great worj.

    December 22nd, 2010 at 18:46

  3. Kishan.B

    Super coooooollll !!! :)

    December 23rd, 2010 at 00:17

  4. Wim

    Absolutely cool!

    December 23rd, 2010 at 02:53

  5. Joe

    This is pretty cool. Shows a interesting way games could be done in the future. What I would say is all of this needs to be p2p if we are going to be able to host it ourselves on our own little servers. If it was p2p, the game can go critical mass, whilst still the master copy is still hosted on a little home server. If it isn’t p2p, a game copy can only be as popular as the server is able to cope with. All that textures and geometry….. Some kind of streaming p2p would be ideal, only load what is needed, just before it’s actually needed. No point making the user wait for the download of levels they may never get to, or that can be loaded while they are playing lower levels, or downloading part of the world miles away from where they are, etc etc etc

    December 23rd, 2010 at 03:28

  6. Webman

    WebGL NOT working on FF 4b9pre 23-12-2010 @ 64bit Ubuntu 10.10

    December 23rd, 2010 at 05:02

  7. Curtis

    Well put together and an excellent demonstration of the different technologies.

    December 23rd, 2010 at 07:21

  8. Style Thing

    It’s very cool, big step forward e.t.c but.. it’s lagging!
    even if I turn all extensions off

    Windows 7 + Firefox 4pre9
    Intel 3.09 @ 2.53
    Nvidia GeForce GT 240 1024MB
    2048MB RAM

    Freezes every several seconds

    December 24th, 2010 at 11:14

  9. abdul

    its awesome

    December 25th, 2010 at 02:59

  10. shpongled

    Background music: Shpongle – Nothing Is Something Worth Doing

    December 25th, 2010 at 04:12

  11. Anon

    Partying like it’s 1999?

    December 25th, 2010 at 09:39

  12. Kyle Lund

    Just think what it’d be able to do with HTML6 and OpenGL 4.1 (P. S. I’m kind of thinking of what HTML6 could potentially be)

    December 25th, 2010 at 21:13

  13. voidmind

    Impressive!

    Out of curiosity: Will it be possible to render a DIV inside a rectangle 3D element so that Web content can be moved around in 3D space?

    December 27th, 2010 at 07:46

  14. Tase

    I am on ubuntu 10.10 and WebGL doesn’t work…

    john@ubuntu:~$ uname -a
    Linux ubuntu 2.6.35-24-generic #42-Ubuntu SMP Thu Dec 2 01:41:57 UTC 2010 i686 GNU/Linux

    ohn@ubuntu:~$ glxgears
    Running synchronized to the vertical refresh. The framerate should be
    approximately the same as the monitor refresh rate.
    296 frames in 5.0 seconds = 59.108 FPS
    291 frames in 5.0 seconds = 58.113 FPS
    300 frames in 5.0 seconds = 59.902 FPS
    300 frames in 5.0 seconds = 59.906 FPS
    300 frames in 5.0 seconds = 59.904 FPS
    292 frames in 5.0 seconds = 58.305 FPS
    288 frames in 5.0 seconds = 57.510 FPS
    296 frames in 5.0 seconds = 59.101 FPS

    john@ubuntu:~$ glxinfo
    name of display: :0.0
    display: :0 screen: 0
    direct rendering: Yes
    server glx vendor string: SGI
    server glx version string: 1.4
    server glx extensions:
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
    GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGI_swap_control,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_INTEL_swap_event
    client glx vendor string: Mesa Project and SGI
    client glx version string: 1.4
    client glx extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap,
    GLX_INTEL_swap_event
    GLX version: 1.4
    GLX extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap,
    GLX_INTEL_swap_event
    OpenGL vendor string: DRI R300 Project
    OpenGL renderer string: Mesa DRI R300 (RS400 5975) 20090101 x86/MMX+/3DNow!+/SSE2 NO-TCL DRI2
    OpenGL version string: 1.5 Mesa 7.9-devel
    OpenGL extensions:
    GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_fragment_program,
    GL_ARB_imaging, GL_ARB_multisample, GL_ARB_multitexture,
    GL_ARB_occlusion_query, GL_ARB_point_parameters, GL_ARB_provoking_vertex,
    GL_ARB_shadow, GL_ARB_shadow_ambient, GL_ARB_texture_border_clamp,
    GL_ARB_texture_compression, GL_ARB_texture_cube_map,
    GL_ARB_texture_env_add, GL_ARB_texture_env_combine,
    GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3,
    GL_MESAX_texture_float, GL_ARB_texture_mirrored_repeat,
    GL_ARB_texture_rectangle, GL_ARB_transpose_matrix,
    GL_ARB_vertex_array_bgra, GL_ARB_vertex_buffer_object,
    GL_ARB_vertex_program, GL_ARB_window_pos, GL_EXT_abgr, GL_EXT_bgra,
    GL_EXT_blend_color, GL_EXT_blend_equation_separate,
    GL_EXT_blend_func_separate, GL_EXT_blend_logic_op, GL_EXT_blend_minmax,
    GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array, GL_EXT_convolution,
    GL_EXT_copy_texture, GL_EXT_draw_range_elements, GL_EXT_framebuffer_blit,
    GL_EXT_framebuffer_object, GL_EXT_fog_coord,
    GL_EXT_gpu_program_parameters, GL_EXT_histogram, GL_EXT_multi_draw_arrays,
    GL_EXT_packed_pixels, GL_EXT_point_parameters, GL_EXT_polygon_offset,
    GL_EXT_provoking_vertex, GL_EXT_rescale_normal, GL_EXT_secondary_color,
    GL_EXT_separate_specular_color, GL_EXT_shadow_funcs,
    GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, GL_EXT_subtexture,
    GL_EXT_texture, GL_EXT_texture3D, GL_EXT_texture_cube_map,
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
    GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias,
    GL_EXT_texture_mirror_clamp, GL_EXT_texture_object,
    GL_EXT_texture_rectangle, GL_EXT_texture_sRGB, GL_EXT_vertex_array,
    GL_EXT_vertex_array_bgra, GL_APPLE_packed_pixels,
    GL_ATI_blend_equation_separate, GL_ATI_texture_env_combine3,
    GL_ATI_texture_mirror_once, GL_ATI_separate_stencil,
    GL_IBM_multimode_draw_arrays, GL_IBM_rasterpos_clip,
    GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate,
    GL_MESA_pack_invert, GL_MESA_ycbcr_texture, GL_MESA_window_pos,
    GL_NV_blend_square, GL_NV_light_max_exponent, GL_NV_texgen_reflection,
    GL_NV_texture_rectangle, GL_NV_vertex_program, GL_OES_read_format,
    GL_SGI_color_matrix, GL_SGI_color_table, GL_SGIS_generate_mipmap,
    GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp,
    GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays

    64 GLX Visuals
    visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav
    id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat
    —————————————————————————-
    0x021 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
    0x022 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
    0x0bf 24 tc 0 24 0 r . . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
    0x0c0 24 tc 0 24 0 r . . 8 8 8 0 . . 0 0 0 16 16 16 0 0 0 Slow
    0x0c1 24 tc 0 24 0 r y . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
    0x0c2 24 tc 0 24 0 r y . 8 8 8 0 . . 0 0 0 16 16 16 0 0 0 Slow
    0x0c3 24 tc 0 24 0 r . . 8 8 8 0 . . 0 16 0 0 0 0 0 0 0 None
    0x0c4 24 tc 0 24 0 r . . 8 8 8 0 . . 0 16 0 16 16 16 0 0 0 Slow
    0x0c5 24 tc 0 24 0 r y . 8 8 8 0 . . 0 16 0 0 0 0 0 0 0 None
    0x0c6 24 tc 0 24 0 r y . 8 8 8 0 . . 0 16 0 16 16 16 0 0 0 Slow
    0x0c7 24 tc 0 24 0 r . . 8 8 8 0 . . 0 24 0 0 0 0 0 0 0 None
    0x0c8 24 tc 0 24 0 r . . 8 8 8 0 . . 0 24 0 16 16 16 0 0 0 Slow
    0x0c9 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 0 0 0 0 0 0 0 None
    0x0ca 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 0 16 16 16 0 0 0 Slow
    0x0cb 24 tc 0 24 0 r . . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
    0x0cc 24 tc 0 24 0 r . . 8 8 8 0 . . 0 24 8 16 16 16 0 0 0 Slow
    0x0cd 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
    0x0ce 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 8 16 16 16 0 0 0 Slow
    0x0cf 24 tc 0 32 0 r . . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
    0x0d0 24 tc 0 32 0 r . . 8 8 8 8 . . 0 0 0 16 16 16 16 0 0 Slow
    0x0d1 24 tc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
    0x0d2 24 tc 0 32 0 r y . 8 8 8 8 . . 0 0 0 16 16 16 16 0 0 Slow
    0x0d3 24 tc 0 32 0 r . . 8 8 8 8 . . 0 16 0 0 0 0 0 0 0 None
    0x0d4 24 tc 0 32 0 r . . 8 8 8 8 . . 0 16 0 16 16 16 16 0 0 Slow
    0x0d5 24 tc 0 32 0 r y . 8 8 8 8 . . 0 16 0 16 16 16 16 0 0 Slow
    0x0d6 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None
    0x0d7 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 Slow
    0x0d8 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None
    0x0d9 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 Slow
    0x0da 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
    0x0db 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 Slow
    0x0dc 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 Slow
    0x0dd 24 dc 0 24 0 r . . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
    0x0de 24 dc 0 24 0 r . . 8 8 8 0 . . 0 0 0 16 16 16 0 0 0 Slow
    0x0df 24 dc 0 24 0 r y . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
    0x0e0 24 dc 0 24 0 r y . 8 8 8 0 . . 0 0 0 16 16 16 0 0 0 Slow
    0x0e1 24 dc 0 24 0 r . . 8 8 8 0 . . 0 16 0 0 0 0 0 0 0 None
    0x0e2 24 dc 0 24 0 r . . 8 8 8 0 . . 0 16 0 16 16 16 0 0 0 Slow
    0x0e3 24 dc 0 24 0 r y . 8 8 8 0 . . 0 16 0 0 0 0 0 0 0 None
    0x0e4 24 dc 0 24 0 r y . 8 8 8 0 . . 0 16 0 16 16 16 0 0 0 Slow
    0x0e5 24 dc 0 24 0 r . . 8 8 8 0 . . 0 24 0 0 0 0 0 0 0 None
    0x0e6 24 dc 0 24 0 r . . 8 8 8 0 . . 0 24 0 16 16 16 0 0 0 Slow
    0x0e7 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 0 0 0 0 0 0 0 None
    0x0e8 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 0 16 16 16 0 0 0 Slow
    0x0e9 24 dc 0 24 0 r . . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
    0x0ea 24 dc 0 24 0 r . . 8 8 8 0 . . 0 24 8 16 16 16 0 0 0 Slow
    0x0eb 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
    0x0ec 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 8 16 16 16 0 0 0 Slow
    0x0ed 24 dc 0 32 0 r . . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
    0x0ee 24 dc 0 32 0 r . . 8 8 8 8 . . 0 0 0 16 16 16 16 0 0 Slow
    0x0ef 24 dc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
    0x0f0 24 dc 0 32 0 r y . 8 8 8 8 . . 0 0 0 16 16 16 16 0 0 Slow
    0x0f1 24 dc 0 32 0 r . . 8 8 8 8 . . 0 16 0 0 0 0 0 0 0 None
    0x0f2 24 dc 0 32 0 r . . 8 8 8 8 . . 0 16 0 16 16 16 16 0 0 Slow
    0x0f3 24 dc 0 32 0 r y . 8 8 8 8 . . 0 16 0 0 0 0 0 0 0 None
    0x0f4 24 dc 0 32 0 r y . 8 8 8 8 . . 0 16 0 16 16 16 16 0 0 Slow
    0x0f5 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None
    0x0f6 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 Slow
    0x0f7 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None
    0x0f8 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 Slow
    0x0f9 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
    0x0fa 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 Slow
    0x0fb 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 Slow
    0x05e 32 tc 0 32 0 r y . 8 8 8 8 . . 0 16 0 0 0 0 0 0 0 None

    96 GLXFBConfigs:
    visual x bf lv rg d st colorbuffer sr ax dp st accumbuffer ms cav
    id dep cl sp sz l ci b ro r g b a F gb bf th cl r g b a ns b eat
    —————————————————————————-
    0x05f 0 tc 0 16 0 r . . 5 6 5 0 . . 0 0 0 0 0 0 0 0 0 None
    0x060 0 tc 0 16 0 r . . 5 6 5 0 . . 0 0 0 16 16 16 0 0 0 Slow
    0x061 0 tc 0 16 0 r y . 5 6 5 0 . . 0 0 0 0 0 0 0 0 0 None
    0x062 0 tc 0 16 0 r y . 5 6 5 0 . . 0 0 0 16 16 16 0 0 0 Slow
    0x063 0 tc 0 16 0 r . . 5 6 5 0 . . 0 16 0 0 0 0 0 0 0 None
    0x064 0 tc 0 16 0 r . . 5 6 5 0 . . 0 16 0 16 16 16 0 0 0 Slow
    0x065 0 tc 0 16 0 r y . 5 6 5 0 . . 0 16 0 0 0 0 0 0 0 None
    0x066 0 tc 0 16 0 r y . 5 6 5 0 . . 0 16 0 16 16 16 0 0 0 Slow
    0x067 0 tc 0 16 0 r . . 5 6 5 0 . . 0 24 0 0 0 0 0 0 0 None
    0x068 0 tc 0 16 0 r . . 5 6 5 0 . . 0 24 0 16 16 16 0 0 0 Slow
    0x069 0 tc 0 16 0 r y . 5 6 5 0 . . 0 24 0 0 0 0 0 0 0 None
    0x06a 0 tc 0 16 0 r y . 5 6 5 0 . . 0 24 0 16 16 16 0 0 0 Slow
    0x06b 0 tc 0 16 0 r . . 5 6 5 0 . . 0 24 8 0 0 0 0 0 0 None
    0x06c 0 tc 0 16 0 r . . 5 6 5 0 . . 0 24 8 16 16 16 0 0 0 Slow
    0x06d 0 tc 0 16 0 r y . 5 6 5 0 . . 0 24 8 0 0 0 0 0 0 None
    0x06e 0 tc 0 16 0 r y . 5 6 5 0 . . 0 24 8 16 16 16 0 0 0 Slow
    0x06f 24 tc 0 24 0 r . . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
    0x070 24 tc 0 24 0 r . . 8 8 8 0 . . 0 0 0 16 16 16 0 0 0 Slow
    0x071 24 tc 0 24 0 r y . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
    0x072 24 tc 0 24 0 r y . 8 8 8 0 . . 0 0 0 16 16 16 0 0 0 Slow
    0x073 24 tc 0 24 0 r . . 8 8 8 0 . . 0 16 0 0 0 0 0 0 0 None
    0x074 24 tc 0 24 0 r . . 8 8 8 0 . . 0 16 0 16 16 16 0 0 0 Slow
    0x075 24 tc 0 24 0 r y . 8 8 8 0 . . 0 16 0 0 0 0 0 0 0 None
    0x076 24 tc 0 24 0 r y . 8 8 8 0 . . 0 16 0 16 16 16 0 0 0 Slow
    0x077 24 tc 0 24 0 r . . 8 8 8 0 . . 0 24 0 0 0 0 0 0 0 None
    0x078 24 tc 0 24 0 r . . 8 8 8 0 . . 0 24 0 16 16 16 0 0 0 Slow
    0x079 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 0 0 0 0 0 0 0 None
    0x07a 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 0 16 16 16 0 0 0 Slow
    0x07b 24 tc 0 24 0 r . . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
    0x07c 24 tc 0 24 0 r . . 8 8 8 0 . . 0 24 8 16 16 16 0 0 0 Slow
    0x07d 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
    0x07e 24 tc 0 24 0 r y . 8 8 8 0 . . 0 24 8 16 16 16 0 0 0 Slow
    0x07f 24 tc 0 32 0 r . . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
    0x080 24 tc 0 32 0 r . . 8 8 8 8 . . 0 0 0 16 16 16 16 0 0 Slow
    0x081 24 tc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
    0x082 24 tc 0 32 0 r y . 8 8 8 8 . . 0 0 0 16 16 16 16 0 0 Slow
    0x083 24 tc 0 32 0 r . . 8 8 8 8 . . 0 16 0 0 0 0 0 0 0 None
    0x084 24 tc 0 32 0 r . . 8 8 8 8 . . 0 16 0 16 16 16 16 0 0 Slow
    0x085 32 tc 0 32 0 r y . 8 8 8 8 . . 0 16 0 0 0 0 0 0 0 None
    0x086 24 tc 0 32 0 r y . 8 8 8 8 . . 0 16 0 16 16 16 16 0 0 Slow
    0x087 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None
    0x088 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 Slow
    0x089 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None
    0x08a 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 Slow
    0x08b 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
    0x08c 24 tc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 Slow
    0x08d 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
    0x08e 24 tc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 Slow
    0x08f 0 dc 0 16 0 r . . 5 6 5 0 . . 0 0 0 0 0 0 0 0 0 None
    0x090 0 dc 0 16 0 r . . 5 6 5 0 . . 0 0 0 16 16 16 0 0 0 Slow
    0x091 0 dc 0 16 0 r y . 5 6 5 0 . . 0 0 0 0 0 0 0 0 0 None
    0x092 0 dc 0 16 0 r y . 5 6 5 0 . . 0 0 0 16 16 16 0 0 0 Slow
    0x093 0 dc 0 16 0 r . . 5 6 5 0 . . 0 16 0 0 0 0 0 0 0 None
    0x094 0 dc 0 16 0 r . . 5 6 5 0 . . 0 16 0 16 16 16 0 0 0 Slow
    0x095 0 dc 0 16 0 r y . 5 6 5 0 . . 0 16 0 0 0 0 0 0 0 None
    0x096 0 dc 0 16 0 r y . 5 6 5 0 . . 0 16 0 16 16 16 0 0 0 Slow
    0x097 0 dc 0 16 0 r . . 5 6 5 0 . . 0 24 0 0 0 0 0 0 0 None
    0x098 0 dc 0 16 0 r . . 5 6 5 0 . . 0 24 0 16 16 16 0 0 0 Slow
    0x099 0 dc 0 16 0 r y . 5 6 5 0 . . 0 24 0 0 0 0 0 0 0 None
    0x09a 0 dc 0 16 0 r y . 5 6 5 0 . . 0 24 0 16 16 16 0 0 0 Slow
    0x09b 0 dc 0 16 0 r . . 5 6 5 0 . . 0 24 8 0 0 0 0 0 0 None
    0x09c 0 dc 0 16 0 r . . 5 6 5 0 . . 0 24 8 16 16 16 0 0 0 Slow
    0x09d 0 dc 0 16 0 r y . 5 6 5 0 . . 0 24 8 0 0 0 0 0 0 None
    0x09e 0 dc 0 16 0 r y . 5 6 5 0 . . 0 24 8 16 16 16 0 0 0 Slow
    0x09f 24 dc 0 24 0 r . . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
    0x0a0 24 dc 0 24 0 r . . 8 8 8 0 . . 0 0 0 16 16 16 0 0 0 Slow
    0x0a1 24 dc 0 24 0 r y . 8 8 8 0 . . 0 0 0 0 0 0 0 0 0 None
    0x0a2 24 dc 0 24 0 r y . 8 8 8 0 . . 0 0 0 16 16 16 0 0 0 Slow
    0x0a3 24 dc 0 24 0 r . . 8 8 8 0 . . 0 16 0 0 0 0 0 0 0 None
    0x0a4 24 dc 0 24 0 r . . 8 8 8 0 . . 0 16 0 16 16 16 0 0 0 Slow
    0x0a5 24 dc 0 24 0 r y . 8 8 8 0 . . 0 16 0 0 0 0 0 0 0 None
    0x0a6 24 dc 0 24 0 r y . 8 8 8 0 . . 0 16 0 16 16 16 0 0 0 Slow
    0x0a7 24 dc 0 24 0 r . . 8 8 8 0 . . 0 24 0 0 0 0 0 0 0 None
    0x0a8 24 dc 0 24 0 r . . 8 8 8 0 . . 0 24 0 16 16 16 0 0 0 Slow
    0x0a9 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 0 0 0 0 0 0 0 None
    0x0aa 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 0 16 16 16 0 0 0 Slow
    0x0ab 24 dc 0 24 0 r . . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
    0x0ac 24 dc 0 24 0 r . . 8 8 8 0 . . 0 24 8 16 16 16 0 0 0 Slow
    0x0ad 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 8 0 0 0 0 0 0 None
    0x0ae 24 dc 0 24 0 r y . 8 8 8 0 . . 0 24 8 16 16 16 0 0 0 Slow
    0x0af 24 dc 0 32 0 r . . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
    0x0b0 24 dc 0 32 0 r . . 8 8 8 8 . . 0 0 0 16 16 16 16 0 0 Slow
    0x0b1 24 dc 0 32 0 r y . 8 8 8 8 . . 0 0 0 0 0 0 0 0 0 None
    0x0b2 24 dc 0 32 0 r y . 8 8 8 8 . . 0 0 0 16 16 16 16 0 0 Slow
    0x0b3 24 dc 0 32 0 r . . 8 8 8 8 . . 0 16 0 0 0 0 0 0 0 None
    0x0b4 24 dc 0 32 0 r . . 8 8 8 8 . . 0 16 0 16 16 16 16 0 0 Slow
    0x0b5 24 dc 0 32 0 r y . 8 8 8 8 . . 0 16 0 0 0 0 0 0 0 None
    0x0b6 24 dc 0 32 0 r y . 8 8 8 8 . . 0 16 0 16 16 16 16 0 0 Slow
    0x0b7 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None
    0x0b8 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 Slow
    0x0b9 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 0 0 0 0 0 0 None
    0x0ba 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 0 16 16 16 16 0 0 Slow
    0x0bb 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
    0x0bc 24 dc 0 32 0 r . . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 Slow
    0x0bd 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 0 0 0 0 0 0 None
    0x0be 24 dc 0 32 0 r y . 8 8 8 8 . . 0 24 8 16 16 16 16 0 0 Slow

    john@ubuntu:~$

    December 27th, 2010 at 14:10

  15. Benoit Jacob

    @voidmind: yes, any DOM element may be used as a texture in a WebGL context. a great demo of that is given at http://fhtr.org/webgl_presentation.html#0

    December 28th, 2010 at 00:44

    1. voidmind

      The slides says WebGL can only load CANVAS, IMG and VIDEO as textures so it doesn’t seem to support any DOM element. Loading any DOM element would be a killer feature for web design. (“any” might mean a whole web page rendered on the side of a 3D shape).

      December 29th, 2010 at 19:58

  16. Benoit Jacob

    @Tase: on linux, you still have to enable WebGL manually: go to about:config and set webgl.enabled_for_all_sites

    December 29th, 2010 at 09:59

  17. Tase

    @Benoit Jacob: webgl.enabled_for_all_sites is set to true, and WebGL still doesn’t work… (it works with software rendering when I use libOSMesa but that’s not a solution as it works really really really really really really really really really really really really really slow :)

    OpenGL version string: 1.5 <= Could this be the problem? As WebGL is based on OpenGL ES v2???

    December 29th, 2010 at 10:56

  18. Benoit Jacob

    @Tase: Even though WebGL is closest to OpenGL ES v2, every WebGL implementation that I know, including ours, supports desktop OpenGL too, but you need at least OpenGL 2.1 because WebGL is entirely based on the programmable pipeline. So indeed, OpenGL 1.5 is not good enough.

    December 29th, 2010 at 11:16

  19. Tase

    @Benoit Jacob: Thanks for the details. So the problem is with the MESA graphics drivers. I will go complain somewhere else :P

    December 29th, 2010 at 12:02

  20. Deeve

    so far – dl firefox 4.0 Beta 8 specifically to access google body browser
    full uninstall of firefox 3.xx
    credits now say I’ve got the 4.0 beta onboard
    body browser says “must have webGL enabled
    checking config – sure looks like it to me
    even went naked and allowed all cookies
    still no go – this counts as a fail to me, coz I’m going back to work and giving up on this nonsense.
    All respect – Deeve

    December 29th, 2010 at 16:39

  21. Benoit Jacob

    @voidmind: WebGL *can* load any DOM element as texture. canvas/image/video are just special cases. In addition to DOM elements, WebGL can also load canvas ImageData and plain bitmap arrays.

    December 29th, 2010 at 22:06

  22. Dannii

    Still no DataView?

    December 31st, 2010 at 19:07

  23. Warsaw

    I downloaded firefox 4.08b but it still gives me the same message ur browser needs webgl for http://bodybrowser.googlelabs.com/

    January 3rd, 2011 at 07:07

    1. Deeve

      same here

      January 6th, 2011 at 10:46

  24. Jason Ng

    I know there’s also specifically problems with webGL on 64-bit Vista too. Though it works fine on 32-bit XP.

    January 3rd, 2011 at 14:02

    1. Warsaw

      Ya ur right Jasob, have a vista 64.. thanks anyways. im gonna try it on Windows 7 ultimate edition

      January 4th, 2011 at 04:28

  25. rosaliana

    wow.. very nice. fun day with firefox.

    January 6th, 2011 at 08:11

  26. Rahly

    Updating to 4.0b8 from 7, completely kills my WebGL. I don’t get an error saying WebGL not found, but nothing gets rendered anymore.

    January 6th, 2011 at 13:25

  27. gideonkesse

    Kesse wrote on January 8th,2011 at 6:42 pm
    it very nice and fun day with it.

    January 8th, 2011 at 11:44

  28. dRock

    WebGL is blowing my mind… I think this particular mashup shows the power of an open web and what can be accomplished when software and services are open and freely available.

    great job moz crew.

    January 14th, 2011 at 01:56

  29. mike

    This hasn’t worked since 4.6 now I got 4.8 still don’t work.

    January 14th, 2011 at 16:14

  30. Neale

    Got 6 cores and it one gets thrashed, the rest are rather idle…

    January 18th, 2011 at 14:11

  31. Juliano Dantas

    Worked here on Firefox 4 beta 10, with Windows XP SP3. But the performance is slow and grapich buged [some buildings are blue, no definition].

    January 30th, 2011 at 04:38

  32. Jordi Bancells

    I use Mozilla Firefox 4.0 Beta 11 on Windows XP SP3 32 bits.

    I can not see the demo. Mozilla shows:
    Could not initialise WebGL, sorry :-(

    I have a similar problem with Google Body. The message:
    “To use Google Body, you need a Web browser that supports WebGL. You’ll find links to Chrome Beta, Mozilla Firefox Beta, and others on this page.”

    I’ve searched the problem in the net, and I have found that the preference webgl.enabled_for_all_sites
    must be enabled in about:config

    My problem is that in my about:config doesn’t appear this preference!

    Some idea? Thank you all.

    February 12th, 2011 at 03:49

  33. Solla Carrock

    I tried to load the web gl demo from the link. Result was an error webgl could not initialize, sorry. I am running the firefox 4 beta (just downloaded today) on Windows xp

    March 12th, 2011 at 19:17

  34. brian

    @Jordi, I didnt see webgl.enabled_for_all_sites in my about:config list either but I used turned on webgl-force-enabled and it worked for me.

    March 25th, 2011 at 09:29

  35. icflyoncyber

    doood, its nice 2 work.

    September 20th, 2011 at 12:57

Comments are closed for this article.