Ask HN: 3D Websites?

2 points by quantum2022 ↗ HN
There are movies with 3D glasses, and now things like the metaverse. Why no 3d style websites?

7 comments

[ 3.0 ms ] story [ 28.1 ms ] thread
(comment deleted)
(comment deleted)
I worry when people think of the 3D website they think of the 90s era like the movie hackers.

Technology has progressed so far since then, yet nobody has really tried making 3D websites. Websites that integrate with glasses.

WTF was google glass doing? They could have integrated the glasses with websites but no they had to make it work with the real world which is 1000x more difficult.

(comment deleted)
Well, it kind of depends on what you mean by "3D website".

There are CSS 3D transforms that you can apply to elements. Some people use them sparingly to give some visual relief to otherwise 2D UIs. Some people have exploited them to make full 3D environments: https://pantel.is/projects/css3d/

There are WebGL websites that people have built that use 3D as their main representation, like this famous resume site: https://bruno-simon.com/

And then there are WebXR (https://en.wikipedia.org/wiki/WebXR) applications. The WebXR API gives WebGL applications access to be able to render on VR headsets [0], AR headsets [1], or smartphones with AR capability [2].

Most often, these sorts of sites are built using a 3D rendering library like Three.js or Babylon.js.

I myself build a WebXR app at work. I work for a foreign language instruction company. We have our own VR training environment for students to practice speaking with their instructors in different cultural and role-play settings. There are some WebXR games out there, if you search [3]. And there are a few VR chat environments, like Mozilla Hubs.

To be completely honest, I struggle to call these things "3D/VR Websites", because they take exclusive control of the user's view and require the developer to completely define 100% of the interactions available in the application.

It'd be like if all we had for the 2D Web was HTML5 Canvas and you had to figure out on your own how to draw all your text blocks, links, buttons, etc., and how to wire up mouse and keyboard events to interact with those elements. There's no multitasking. There's no linking between sites/apps while remaining in immersive mode.

They're really more like games that happen to run in the browser environment. They aren't built anything like websites, other than the tertiary fact that you're programming them in JavaScript. These are all "XR on the Web". Not "the Web in XR".

A Web browser in an XR world needs to be a windowless system for loading 3D assets into the user's home space. Those elements would be declaratively coded. There'd be a rich set of behaviors codified by different types of elements. Not every application needs to be innovating on interactions. A calculator app should probably just be a grid of buttons and a display. The developer should not have to know if the user is using a controller or hand tracking. The interactions should be baked into the OS.

And it needs to be a single standard, that multiple browsers implement, like HTML. There are app frameworks like A-Frame and React VR that provide a declarative, HTML-like syntax for building XR apps. But again, there is still the issue of being exclusive-mode and defining all interactions, even if some of the interactions are provided for you by 3rd party scripts. It needs to be a part of the runtime environment already, because it needs to already be on the user's device.

Users and developers need to be able to rely on there being a single, shared UI metaphor. We don't have to relearn how to use the mouse on every 2D website, or what buttons and textboxes look like, or how keyboards behave.

X3D, the successor to VRML, was kind of an attempt at doing this. I have not been able to find any meaningful updates from the X3D project since 2015. There was some discussion on potentially making it possible to render DOM elements in WebXR (though it has stalled for a few years now). There are some "alternatives to the browser" platforms like JanusVR that attempt to make a Web-like experience through their own application. But there is really nothing that integrates with the user's system quite the same way that the 2D...