WebGL Seminar @ TUT

Tampere University of Technology
Seminar OHJ-1860
December 2010 — March 2011

Seminar organizers:

QUICKLINK: Seminar Schedule and Presentations

Seminar Background and Motivation

The software industry is currently experiencing a paradigm shift towards web-based software. In the past few years, the Web has become the predominant deployment environment for new software systems and end user applications. In the near future the vast majority of end user software will be written for the Web, instead of conventional target platforms such as specific types of computers, operating systems, CPU architectures or devices. For the ordinary user, the web browser will serve as the primary environment for most computer-related activities, effectively displacing conventional operating systems from the central role that they used to have.

Web browser standardization has progressed relatively slowly in recent years. Furthermore, there is a considerable "alphabet soup" problem in this area, and it is often difficult to separate the truly important forthcoming standards from all the noise surrounding the software industry.


We believe that one of the most important future web standards — along with the upcoming HTML5 standard — is WebGL. WebGL is a cross-platform web standard for hardware accelerated 3D graphics developed by Mozilla, Khronos Group and a consortium of additional companies including Apple, Google and Opera.

High-performance 3D graphics directly in the web browser. The main feature that WebGL brings to the Web is the ability to display 3D graphics directly in the web browser without any plug-in components or browser extensions. WebGL content runs in the HTML5 canvas element, and WebGL data is generally accessible programmatically via the Document Object Model (DOM) interfaces of the web browser. A comprehensive JavaScript API is provided to open up OpenGL programming capabilities to JavaScript programmers.

Viewed from distance, the most dramatic impact of WebGL is that it will effectively eliminate the "last safe bastion" of conventional binary applications. Although the majority of end user software has already started migrating towards the Web, so far it has been very difficult to convince hardcore game developers and players to take web-based software seriously. This is partly because suitable development APIs were not available, and partly because until recently the execution speed of web-based software was completely inadequate for CPU-hungry gaming applications. However, with the recent introduction of high-performance JavaScript engines such as Google's V8, Apple's SquirrelFish Extreme, and Microsoft's Chakra, the situation has changed dramatically. Given the other benefits of web-based software — including portability, instant worldwide deployment and seamless "zero-installation" upgrades — it is clear that WebGL will cause even hardcore game developers to seriously consider migrating their applications to the Web.

Not only 3D graphics, but more extensive 2D graphics capabilities as well. Note that the use of WebGL is not limited only to the development of 3D applications. Given how difficult it has been to do procedural (as opposed to declarative) development of highly interactive (as opposed to document- or form-oriented) web applications, it is obvious that WebGL will serve as an important feature for the development of more conventional, desktop-style 2D applications as well. In fact, it is quite possible that WebGL will effectively replace the use of the 2D Canvas API that has been supported (rather poorly) by many web browsers. Therefore, the presence of WebGL support in the web browser will be important not only for 3D applications but for more conventional 2D applications as well.

WebGL Libraries

It is important to note that the WebGL API is implemented at a lower level compared to the equivalent OpenGL APIs. This increases the software developers' burden as they have to implement some commonly used OpenGL functionality themselves. To make it easier and faster to use WebGL, several additional JavaScript frameworks and APIs have been introduced. The most important frameworks include (in alphabetical order):

All the frameworks above have their own JavaScript API through which the actual WebGL API is used. In general, the goal of these libraries is to hide the majority of technical details and thus make it simpler to write applications using the framework APIs. Furthermore, these WebGL frameworks provide functions for performing basic 2D and 3D rendering operations such as drawing a rotating cube on the canvas. The more advanced libraries also have functions for performing animations, adding lighting and shadows, calculating the level of detail, collision detection, object selection, and so forth.

Seminar Goals and Format

In this seminar, we will investigate WebGL and the emerging WebGL libraries in the form of student presentations, application development exercises and group discussions. Students will prepare a presentation on one of the topics they choose, and will give a presentation in front of the seminar participants to summarize their findings. Students will also build sample applications using at least one of the libraries mentioned above.

Presentations may be prepared and presented in Finnish or English (English preferred if there are non-Finnish-speaking seminar participants).

Intended Audience

The seminar is intended for third-year students and up. The seminar is intended also for Ph.D. students.

If necessary, the number of participants will be limited to about 30 people to enable fruitful discussions.

Seminar Schedule and Presentations

Seminar will be held on Fridays, 12:15 - 13:45 in Tietotalo TC103. (Except the first seminar get-together which was held on Thursday, December 9, 2010)

The first two seminar meetings (in December 2010) will consist of lectures given by the seminar organizers. Student presentations will begin in January 2011.

Presentation Schedule

  • Thursday, December 9, 2010: Initial get-together and WebGL Overview (Tommi Mikkonen and Antero Taivalsaari, SLIDES)
  • Friday, December 17, 2010: WebGL Technical Overview (Matti Anttonen and Arto Salminen, SLIDES)
  • Student presentations (max 2 presentations per each seminar date):

  • Friday, January 7, 2011: X3DOM (Jaakko Salonen, SLIDES), QML3D for the Web (Pietu Pohjalainen, SLIDES)
  • Friday, January 14, 2011: Collada (Lauri Paimen, SLIDES)
  • Friday, January 21, 2011: NO SEMINAR THIS WEEK (TRAVELING)
  • Friday, January 28, 2011: SpiderGL (Marko Leppänen, SLIDES), C3DL (Veerakishore Goduguluri, SLIDES)
  • Friday, February 4, 2011: GLGE (Janne Lautamäki, SLIDES), Copperlicht (D.Veerendra Kumar, SLIDES)
  • Friday, February 11, 2011: WebGL support in GWT (Janne Kuuskeri, SLIDES), O3D (Alexander Lokhman, SLIDES)
  • Friday, February 18, 2011: WebGL support in Qt/QtWebKit (Joosa Toivonen, SLIDES)
  • Friday, February 25, 2011: NO SEMINAR THIS WEEK (TRAVELING)
  • Friday, March 11, 2011: Three.js (Teemo Tebest, SLIDES), X3DOM demo (Juha Nurmi, SLIDES)
  • Friday, March 18, 2011: VRML to X3D (Jarno Marttila, SLIDES), latest Lively 3D demos (Arto Salminen, Jari-Pekka Voutilainen)

Suggested Outline for Student Presentations and Written Reports

  • Introduction (high-level overview, purpose of the technology, background, history...)
  • Technical overview of the technology
  • Small examples
  • Walkthrough of a more comprehensive example illustrating the use of the technology
  • Evaluation (benefits, drawbacks, general usefulness, possible measurements, ...)
  • Summary

    Presentation length: 30-45 minutes (with 10-15 minutes reserved for questions).

    You can use the same outline for written reports.


Please register to the seminar by sending e-mail
to Prof. Tommi Mikkonen (tommi.mikkonen(at)tut.fi)
by November 30, 2010.