Category Archives: 3D graphics

Yes, WebGL Is Open: Here We Go Again

THE OTHER day, I was reading this blog post “Protecting WebGL content (and why you probably shouldn’t)” from Brandon Jones. While reading, I got all these flash backs from the 1990s. Here we go again, I thought!

What is the problem? In short WebGL are Javascript calls as part of a larger javascript program running inside the browser. Due to the nature of the web, javascript – and HTML, CSS and all other web page assets – are open for everybody to see and inspect. When the web was gaining traction, I saw the same reaction to HTML and GIF images. Designers and companies were afraid due to the openness that their site design and image assets were copied all over the place. At the time, it was really hip to obfuscate HTML source code and disable the right-click action inside the browser, so that nobody could copy the web page and its content. Of course, this proved to be fruitless since circumventing these “protections” was trivial.

Now we are in 2012, and nobody is protecting their web page assets anymore. You do see obfuscated javascript code from time to time. But most sites have no protective measures. And you know what? It did not really led to any problems. I am even of the opinion that the open nature of the web accelerated the growth and innovation. People could learn from and get inspired by each other’s accomplishments.

Now we are entering the next evolution of the web with WebGL. I think the reason this question arises again is that 3D on the web brings in a new set of people and companies who were not delivering content on the web before. I am thinking about 3D designers, game designers and their respective companies. They have the same fears as the web designers and developers of 2 decades ago.

In my opinion, the reason that it did not lead to any problems is, that the value of internet services is not in their online digital assets. Those assets are the result of a creation process. The value is in that creation process. Next to that is the interaction. Interaction is mostly a server-side affair – though it partly moved to the client with the advent of AJAX. Server side is maintained and under control of the creators and cannot be copied. If you take games as an example, the value is in the creation of digital assets, the game scenario and playability of the game. If you copy the digital assets, you just end up with just the assets. There is no game.

Just copying the homepage of Google or a timeline of Facebook does not give you the ability to copy their services. You need the whole package.

Of course, there are copies of assets or (parts of) whole sites, but it is really not wild west on the internet. If everybody is benign in nature, why can shops have you freely walk around without supervision. Shoplifting is a problem but shops still exist and make money. The same applies to the internet.

At Shapeways, we use WebGL for our creators. WebGL allows our users to interact directly with the product and see it change in realtime. The generation of the product is done server-side. This is part is valuable to us. It is our intellectual property. At the same time, we use a 3D HTML viewer with generated JPEG sprites to show uploaded 3D models. The reason is that we cannot allow any 3D model information to leak onto the internet. Using WebGL it is theoretically possible to copy a 3D mesh from the GPU and save it. That is not acceptable for a lot of designers in our community.

So yes WebGL is open. You can freely look into the work of others and even copy the work others. But no it is not a problem. HTML javascript and CSS work in a similar way and web designers / internet services thrive regardless.

Do you think the openness of the web in general is good or bad?

2011 Wrap Up!

SINCE everybody in the blogosphere is doing a best-of-2011-post, I will do the same. Here is my list. I based it on both number of page views together with a bit of curation by me.

Hobby 3D Printers (needs an update since things are moving so fast)

So Who Invented 3D Printing Anyway?

3D Printing Is A Hype – According To Gartner

3D On The Web, WebGL To The Rescue

3D Printing Technologies Explained

I enjoyed blogging this year, and I am continuing writing next year. I want to thank everybody for the fantastic feedback and insights you send to me through Disqus, email and – especially – Twitter.

I wish everybody a fantastic holiday and a happy 2012!

SIGGRAPH: Web 3D Is Hot, X3D Makes A Comeback

Shapeways has been an avid supporter of X3D file format. And although X3D has been successful in some areas, it was as a standard file format not very successful. In my opinion, X3D always lacked a delivery mechanism. The birth of WebGL and X3DOM is finally creating the delivery platform.

Somebody wrote to me:

So the strangest this just happened.  I tried to goto a Web3D Medical BOF.  It has 25 people waiting outside and I can’t even get into the room. That’s not happened since the .dotcom days.  Nice to see.

Indeed nice to see!

X3DOM organized a X3D/HTML & WebGL BoF session, and all 120 seats were taken. All the technologies to get 3D on the web are getting more mind share of developers. I hope that this, finally, brings 3D to the web. It is one of the last things not properly support by the web.

In short, 3D on the web is gaining traction. We have WebGL to thank for that.

3D on the web – WebGL to the rescue

There is at last progress on bringing 3D to the web. For years, different companies have tried to solve this problem, but the solutions – often with proprietary browser plugins – were cumbersome and limited. With the creation of WebGL, there is finally a way forward.

There are a host of solutions to bring 3D to the web. There are straightforward solutions like animated GIFs of prerendered 3D images or a little more advanced like javascript animated JPG or PNG images with limited interaction with the 3D model. These solutions are extremely well supported with most browsers – even mobile ones. A notable example is the 3DNP (3D No Plugin).

Adobe Flash supports 3D since last year and the same applies for Microsoft Silverlight. Flash has a sizeable installed base and is truly platform-independent except for the Apple IOS platforms. The plugin suffers from performance issues on a certain platform like Linux. Silverlight is very much geared towards Windows and Mac OSX. The installed base is quite low, and Microsoft seems to have lost interest in moving Silverlight forward. They are currently repositioning it for Windows 8 mobile. The 3D engine is still immature and needs improvements. I expect that Microsoft will improve it for the next Windows Mobile version to enable gaming.
Performance wise both plugins are limited by their underlying technologies. Adobe cannot go beyond 50,000 polygons to achieve smooth animation and Silverlight is even more limited than Flash.

Another option is Java. Java has a mature openGL implementation called Jogl. It provides hardware accelerated 3D engine which is extremely powerful. The major issue for real 3D performance is the limited memory available to an applet. An applet can only use 64MB, and this effectively limits the polygon count to around 250,000. Another problem is that OpenGL support is buggy. On Windows OpenGL support is provided by the video card vendors, and the level of support varies per vendor. On other platforms – like Linux – it is the same story.

This year WebGL came to life with support from Google, Apple and Mozilla. It is build on top of the HTML5 canvas-element. It is managed through Khronos standardization group who are also responsible for managing the Collada 3D file format standard. Microsoft is sitting on the side lines without any support for WebGL in Internet Explorer.
In short, WebGL exposes OpenGL calls to the javascript engine and uses the HTML renderer to show the result. This enables far better integration with web applications, and this is already shown by online 3D editors like 3DTin and Tinkercad.
WebGL suffers from the same problem as Java applets using Jogl and that are the buggy OpenGL implementations.
For compatibility reasons, the number of vertices are limited to 65k (16-bits) per mesh which is quite low. Fortunately multiple meshes are supported and scenes or models with up to 500k triangles stay interactive in the browser.

To me WebGL is a significant move forward in making 3D possible on the internet via a browser using an open standard. It has all the conditions to be a success. The biggest challenge is to keep WebGL secure. It exposes direct hardware calls to javascript, and it depends on the filtering techniques of the browser javascript engine to make it secure.
In the end, I am confident that WebGL will succeed. We finally have a 3D solution for the web. Now it is time to make use of it.

I would like to close with this extremely impressive demo from Google about the capabilities of WebGL.