Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Display of an inline 3D model #10901

Open
zachernuk opened this issue Jan 7, 2025 · 8 comments
Open

Display of an inline 3D model #10901

zachernuk opened this issue Jan 7, 2025 · 8 comments
Labels
addition/proposal New features or enhancements stage: 0 Proposal

Comments

@zachernuk
Copy link

What problem are you trying to solve?

We want to display 3D assets directly in a web page in a privacy-preserving, spatial manner that allows for the integration of potentially sensitive input streams like the user's inter-pupillary distance, head movement, ambient lighting etc - without divulging that information to the Javascript context.

What solutions exist today?

WebGL and WebGPU allow for the real-time, in-line presentation of 3D objects - but exist as a 2D image on the page, and do not respond to the user's head position.

The WebXR API allows for immersive Augmented and Virtual Reality (AR/VR) display of content, but by deferring all rendering responsibility to WebGL, it requires the Javascript context to have awareness of all the necessary information.

For privacy and security reasons, it's also not possible to integrate WebXR content with traditional DOM content, meaning that WebXR-based spatial experiences must provide all other interaction and GUI elements themselves.

In both instances, the author-facing complexity of using a Javascript-based renderer that must be downloaded additionally - and represent significant overhead for a now-consistent and simple set of needs.

How would you solve it?

To create a new <model> element that allows the asset to be rendered outside of the Javascript context, and establish a reasonable initial API to meet basic use cases. We have been developing a proposal within the W3C Immersive Web Community Group to produce a model explainer, and an explanatory demo of the desired goal.

Anything else?

Establishing a new element for this approach to display is a high priority for platforms with spatial display capabilities such as a headset or other stereoscopic device, but provides significant benefits to web platform consistency on non-spatial devices as well. A consistent, browser-managed rendering strategy will result in smaller website transfers, greater consistency of display, accessibility and manipulation.

@zachernuk zachernuk added addition/proposal New features or enhancements needs implementer interest Moving the issue forward requires implementers to express interest labels Jan 7, 2025
@annevk annevk added the agenda+ To be discussed at a triage meeting label Jan 23, 2025
@cabanier
Copy link

Quest browser is also interested in adding this feature. Can I attend the meeting as well?

@virtualgeoff
Copy link

A new element to display a 3D model in a webpage?

Back in the '90s we used to do this with:

<embed src="model.wrl">

@zachernuk
Copy link
Author

I recall! For those interested, we have a Model explainer with a "considered alternatives" section that includes <embed> and why we'd like to consider something else.

@marcoscaceres
Copy link
Member

marcoscaceres commented Apr 11, 2025

Moving this explicitly to the Stages model.

To meet Stage 1:

  • A comprehensive explainer for the Contribution, in a standards organization-approved incubation venue such as a W3C CG or a branch of an existing WHATWG Standard.
  • Consensus that the WHATWG is interested in exploring solutions in this problem space.
  • (At least) one implementer interested in doing prototyping work: WebKit is prototyping, Meta and Samsung have expressed interest (potentially targeting Chromium).
  • Identification of the Contributor: @zachernuk (Apple).
  • Identification of a relevant WHATWG Workstream and Standard that will host the Contribution, and notification of the Workstream Editor(s).

@annevk, can you help us identify the right workstream? What's the appropriate mechanism for formally recording "consensus that the WHATWG is interested in exploring solutions in this problem space"?

@marcoscaceres
Copy link
Member

If we have consensus, the Stages document for Stage 1 states that:

The WHATWG commits to hosting a specification draft in a repository or branch (if the Contributor requests it).

The Contributor would like to request the WHATWG host this proposal.

@domenic
Copy link
Member

domenic commented Apr 12, 2025

Your wish is granted! You can host it in a branch. Just please do not send a pull request before stage 3, when you have complete specification text.

@marcoscaceres
Copy link
Member

marcoscaceres commented Apr 14, 2025

I think we want it in a repository though, that way we can track our own issues. Given the complexity of this feature, we expect the final PR to be quite large and probably take about 1-2 years to complete Stage 3 before sending it over as pull request to the main spec.

@zcorpan
Copy link
Member

zcorpan commented Apr 14, 2025

I see two possibilities for hosting this work in the WHATWG and supporting separate issue tracking:

  1. Incubate in a branch of whatwg/html and create a new repo only for issue tracking. I think PRs to merge to this branch would not be possible without notifying whatwg/html watchers.
  2. Incubate in a new repo (fork of whatwg/html or blank) under whatwg.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
addition/proposal New features or enhancements stage: 0 Proposal
Development

No branches or pull requests

8 participants