Why Hasn't 3D Taken Off For the Web?
First time accepted submitter clockwise_music writes "With HTML5 we're closer to the point where a browser can do almost everything that a native app can do. The final frontier is 3D, but WebGL isn't even part of the HTML5 standard, Microsoft refuses to support it, Apple wants to push their native apps and it's not supported in the Android mobile browser. Flash used to be an option but Adobe have dropped mobile support. To reach most people you'd have to learn Javascript, WebGL and Three.js/Scene.js for Chrome/Firefox, then you'd have to learn Actionscript + Flash for the Microsofties, then learn Objective-C for the apple fanboys, then learn Java to write a native app for Android. When will 3D finally become available for all? Do you think it's inevitable or will it never see the light of day?"
I suffered through the VRML list back in the day when people first wanted to make 3D cyberspace.
There's a conflict: you either model 3D functional worlds, or the underlying structure, or you create a language which can draw things in 3D.
The problem with the latter is that it's not stand alone, but requires people to come up with an intersection of code, resources and aesthetics.
What people actually need is the former, which is the ability to create functional 3D models and describe them in a language like HTML, and have the browser itself create an interactive world from that.
Futurist Traditionalism
Unless it's supported in Links I'm not going to use 3D...
Why should take off? What's the drive behind it? What need does it satisfy?
You can't push out something without a market. Flash created a market for 2D web graphics, and now HTML5 standardizes that based on the experience we had in the Flash years. Unity is doing the same thing for 3D, but it will take a while before 3D on the web becomes common enough to need standardization.
The question should be ..
What is the compelling user experience that would be enabled by 3D?
And what do you really mean by 3D? Do you mean projections onto a 2D surface of a 3D model? Or do you mean something like the spinning displays that render voxels that you can actually walk around? Because a genuine, cheap, ubiquitous 3D display would open up all sorts of possibilities.
I am Slashdot. Are you Slashdot as well?
Because people will start abusing the hell out of it.
Oh, I get it. Like a tesseract. Everyone else sees it as smaller on the outside than it is from your POV.
I've fallen off your lawn, and I can't get up.
I don't think the submitter is asking about the optical-stereo kind of 3d (like what you get with "3d movies" and "3d glasses"), but rather just geometric projections of 3d scenes onto a 2d viewing plane, like you get in Leonardo da Vinci paintings or Quake.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
Why should take off? What's the drive behind it? What need does it satisfy?
I sold medical hardware through the web using a 3rd party plug-in 10 years ago, and it was wow. Here is a small list ....or lets face it the only really one. SHOPPING, no more multiple static views of item.
Education - Planetary Systems, Engines, Inside Human Body
Lets Break out of 2D - Streetview 3D...or walk where it is unsafe...Warzones, Mars...or even oil rigs safety training
As I said I did this years ago for a company, it looked great, but it was a clunky implementation.
There are a few tiny edge cases
What's with this recurring meme that I've been seeing on Slashdot lately that edge cases should be ignored? If everybody has his own edge case, then why not allow something that handles all the edge cases acceptably?
but everything else is FPS or gimmick.
True, one of the first video games with a 3D perspective (Battlezone) was the ur-first-person-shooter, but 3D games in other genres have been popular since the mid-1990s. Or is every other video game genre "gimmick" and "few tiny edge cases" to you? I'm not getting what you mean by "gimmick"; in the circles where I hang out, "gimmick" refers to a 2D platformer for the NES published by Sunsoft with a design aesthetic similar to that of the Kirby games.
kind of like 3D tv's
The "3D" in "3D TV" and the "3D" in WebGL are two different things. WebGL just defines a way to project 3D geometry into a display plane. This display plane may or may not be presented with binocular separation, which is what the "3D" in "3D TV" and "Nintendo 3DS" means.
But did you ever try to create 3D content?
Yes I did. And it is not that hard either. VRML is a great language, I still want language designers to learn from its event handling system. What killed VRML in my opinion, was that the standards body was taken over by a company that wanted to push its own format. Killed by commerce.
Nae king! Nae laird! Nae yurrupiean pressedent! We willna be fooled again!
Article isn't about stereoscopy, it's about OpenGL style 3D (hence webgl).
Around 10 years ago, there were some promising Web3D technologies around. VRML was easy to create VR walkthroughs with. But there was no unified VRML browser plugin - there were multiple plugins, each with its own quirks - and it was hard to create meaningful interaction with it. Shockwave3D was introduced with Macromedia Director 8.5. It was great for creating Web3D applications. It failed on 3 counts though. 1) It had no 3D creation UI whatsoever. Everything had to be scripted by hand with Lingo code, which made it a "programmers only" 3D solution. 2) The Flash crowd put a lot of pressure on Macromedia not to develop Shockwave3D further, and to instead put a 3D engine into the Flash plugin. 3) After Adobe bought Macromedia, nobody updated the DirectX 7/OpenGL based Shockwave3D engine for several years. The engine fell behind the state-of-the-art in graphics quality, and the handful of people who were capable of using Shockwave3D stopped developing web3D apps with it. --- Then there is the sorry story of Virtools 3D, now owned by Dassault Systems. Virtools had a great 3D engine, coupled with a visual-programming paradigm that was as easy to program with as connecting visual flowchart elements with lines. Virtools failed terribly in the market because the ahead-of-their-time French company that created it insisted on pricing Virtools at 25,000 Dollars a seat or thereabouts. That was so expensive that Virtools never attracted more than a handful of users, even though it featured a powerful & easy to use toolset. ----- One more case. Quest3D combined a great-looking, web-capable 3D engine with a visual programming paradigm. But Quest3D's connect-the-nodes programming paradigm was not intuitive at all. Even though it was cheaper than Virtools, the idiosyncratic, and some would say eccentric - way you had to program Quest3D caused it to fail. ------ To sum it up in a few words, the companies that WERE capable of creating Web3D authoring tools in the early 2000s made mistake after mistake, eventually causing Web3D to fail completely. Shockwave3D had no GUI for 3D work. VRML was too simple, no good for anything more than interactive walkthroughs. Virtools was great, but cost as much as a fricking car to buy. Quest3D failed on the user-friendliness front. Flash never got a usable 3D engine integrated. ---- Basically, Web3D had lots of potential as far back as 10 years ago. But the lack of user-friendly or affordable tools caused Web3D to fail. ----- Today there are powerful and easy to use 3D engines like Unity for web development. But it took way too long for it to arrive, and the Web3D market went flat - as in "flat coke" - during the years that passed without any progress being made on the Web3D tech-front. ------- Web3D may eventually come back because of another trend, and that is "Augmented Reality". But nobody knows that for certain.
Why did the chicken cross the road? Because Elon Musk put an AI chip in its head.
If you had even read the summary, you'd know this is about 3d graphics a la OpenGL, not stereoscopic "3d" a la 3d movies.
Your friendly radiologist would like to be able to solve your head pain by reading your MRI study in 3D without having to pay 6 digits for a PACS viewer. That is one legitimate, if infrequent, scenario where 3D support in multiple browsers would be welcome.
I see a lot of folks who are saying that 3D user interface is a gimmick. I think -- actually, I know --- that there just hasn't been much research into intuitive 3D user interface designs. Look around this page. Everything is rectangular and 2D. That's because memory is one dimensional, and with a wrap + offset you get a cheap 2D raster area. Nearly all user interface is directly affected by the old limitations that 2D rasterizable areas have. However, if you add another plane, or "channel" to the pixel data you can create a depth buffer which beautifully handles rasterization and/or stenciling of non rectangular shapes -- and your GPU is fully capable of doing such compositing, even on most 8 year old PCs or laptops w/ integrated graphics (my "minimum system requirements" rigs).
I've actually been doing experimental research into 3D GUIs. In doing so I threw away the 2D rectangular "window", like this text box -- Gone. I had to throw them out, they were expensive. With 3D its more expensive to have areas of rectangular windows in the scene -- "clipping" or scissor / stencil operation to prevent objects from being shown outside a rectangle of pixels. It's much cheaper to load all the 3D stuff into the GPU and let the Z-Buffer handle the compositing (after some rough scene-wide clipping code excludes larger areas you won't be able to see).
One thing I realized is that it costs nothing to tilt things vs having them directly facing the screen. This means I can react to your mouse / head / finger or even eye movement. As you move the mouse to the right I can tilt and rotate the view such that more of the user interface becomes visible. This means you move the mouse less because the 3D elements naturally move towards your cursor (rotating in the opposite direction "around your head"). You effectively get more interface area, and you can have static panels of settings or menus for example off the edges of the screen that come into view as your mouse nears that edge of the screen -- Without overlapping your current workspace (like the Unity panel does in auto-hide).
The subtle tilting seamlessly reminds your brain where those "off screen" panels are -- Unlike with many current 2D touch UIs (Windows 8, for example), which rely on you to memorize gesture locations. These 2D UIs are inferior in my opinion because they lack discoverability. They place more load on your mind. What's interesting is that I've found that folks who use multiple screens or a large enough screens already utilize their peripheral vision to "track" other information. You notice if a twitter feed updates if it's open on another screen or window. In the real world humans do this too. When we're driving our eyes are sensitive to the movement in the side view mirrors. How do you access that field of view? Simply turn your head -- or in the case of mouse driven 3D UI, move the mouse to indicate your focal intent.
I literally have to think outside the box when re-creating standard UI elements like lists -- There's no bounding rectangle needed to conform to. I can simply dim the background a bit to add contrast, and let each list item be as long as it wants to be, tilting and sliding to meet your gaze as you read the individual items; No hard top or bottom, you can simply move them into view, and they stretch off into the distance (w/ multiple Levels of Detail for the various draw distances). To overlap items I can slightly tilt one under the other, or fold panels into the scree -- where they're still visible but take up less area -- They can slowly drift to your peripheral vision to keep you aware of them and snap back into the foreground if you move your mouse or turn your head or shift your gaze upon them momentarily.
There's no reason that you can't use make creating such 3D UIs even more simple than 2D UIs like HTML. For instance, You could simply indicate a section of data be "auto-hideable" and have the user's preference automatically do whatever that means to the user. There hasn't
The demand will continue to be weak, though, perhaps forever, and for good reasons.
3D is compelling in entertainment, but the amount of 3D entertainment media/downloads is but a tiny fraction of 2D because demand is small.
Yes, it's compelling for modeling, be it architectural, artistic, design, engineering, medical holography, and so forth. But from the beginning of recorded history, we've successfully distributed and used 2D. That's because the added information in the 3rd dimension is useful, but in a movie or a picture, I don't need to see what's behind the tree. I don't care. There is reason in some cases, and we've evolved those cases, to give dimensionality as needed information. Otherwise, it's unnecessary and comes at an extra cost of codifying it, and storing it.
3D is cool, no doubt about it. Immersive stuff is great. You're not going to find it on a box of CornFlakes, or as content in a James Patterson novel, or an Annie Leibovitz photo of Beiber.
---- Teach Peace. It's Cheaper Than War.