41 ms·
Apple proposes adding "model" element to HTML that displays 3D content
- raxxorrax 5y ago> Privacy considerations Rendered <model> data is not exposed to / extractable by the page in this proposal, so no tainting is required. We do expect this would require extensions to Fetch (a new destination type), Content Security Policy (a new policy directive), and likely a few others. I do buy 3d model data occasionally (hobby, not for professional uses). I think most stores obfustcate the data somehow although I never took a look at it in detail. If you wanted, you probably could easily extract the model from the preview. I still think this is a very bad proposal. Why compare something with an image and then disallow it to be treated like other ressources? This is typically bad corporate influence on the web. I think we should go the other way. Remove DRM components from browsers again. Netflix not available anymore? They will either adapt or not be available. Their loss would probably be more significant.
- gruez 5y ago>I still think this is a very bad proposal. Why compare something with an image and then disallow it to be treated like other ressources? This is typically bad corporate influence on the web. Because webgl fingerprinting. Also, I'm not sure why you think not being able to extract the data using javascript is "bad corporate influence on the web" or" DRM". you can still do whatever you want. The models are freely available for you just not the page.
- BiteCode_dev 5y agoYou, the dev. Not you the client, hence the user. It's closed software by design, and we all have seen where it leads to.
- gruez 5y ago>You, the dev. As per the parent comment, it's not exposed to the javascript running on the page, which is arguably the "dev" in this case. >Not you the client, hence the user. I fail to see how it being exposed to the javascript running on the page or not makes a meaningful difference to the user. Are we expecting the average user to interact with the page via the developer console or something? >and we all have seen where it leads to. The proposal doesn't have any DRM element at all. At worse you can just inspect network traffic to download the model file to disk and open it in whatever app you want.
- BiteCode_dev 5y ago> I fail to see how it being exposed to the javascript running on the page or not makes a meaningful difference to the user. Are we expecting the average user to interact with the page via the developer console or something? No, but I'm expecting the average user to be able to enjoy an open ecosystem. Such as bookmarklet, addons, client side widgets, electron apps, WASM plugins, and all the wonderful things we can't yet think of now. Instead, we will have one more walled garden. And just like that, piece by piece, the next step in the IT revolution will be more and more close. Because that's the plan, that's what they want. Something the computer runs, but has no control over.
- gruez 5y ago>No, but I'm expecting the average user to be able to enjoy an open ecosystem. Such as bookmarklet, addons, client side widgets, electron apps, WASM plugins, and all the wonderful things we can't yet think of now. But there's still webgl and <canvas>. I'm failing to see what type of use cases we're missing out on here, because javascript access is missing.
- deleted 5y ago[deleted]
- imwillofficial 5y agoClosed software? You mean being used by every person on earth every day of their lives?
- BiteCode_dev 5y agoPeople also consume refined sugar, alcohol, saturated fat and cigarettes regularly. Just because something is common doesn't mean it's good for you. I'm not against closed software mind you, I'm using some myself, but the web as a platform has reached this amazing stage because it's been built on openness. And now the very same companies that became rich thanks to this openness want to close it to get all the benefits for themself.
- snet0 5y agoMy understanding is basically that DRM is the technology that permits the existence of Netflix and similar. Perhaps I just lack a strength of principle, but I don't see why you'd remove one of the most-enjoyed aspects of the internet for the sake of uh... some kind of privacy-adjacent something?
- tehbeard 5y agoWe got to an ok compromise of video tags and native browser support, with DRM extension for corporate needs/reqs... Is it the best? No. Could it worse, definitely. But without it youd need a Netflix app on your PC... And what safeguards does that have from hoovering my pc usage up for sale or marketing? Atleast Netflix only gets MY Netflix consumption for their metrics and ML, and isn't cross referencing the games I play or other things I'm doing at the same time.
- snet0 5y agoIn addition to the privacy concerns with native applications, they're almost always insecure. One thing that is nice about modern browsers is that (despite Safari's leisurely update cycle) they are actually relatively secure, as far as software goes. Threats to the average user of Chrome are things like phishing, rather than RCE, and tab isolation keeps things from escalating out of control. Contrast that to the now ubiquitous conferencing software solutions, and it seems like every day there's some zero-day RCE vulnerability or other spooky exploit. If we needed to install and run a dozen different closed-source executables from BigCorp et al., I predict that we'd very soon go back to security dark-ages.
- frostburg 5y agoIsn't everything on Netflix ripped as soon as it is available? What is the DRM doing? Compliance?
- dangerface 5y agoNetflix make money from their subscription service not DRM. I can easily torrent anything I watch on netflix but I watch it on netflix because its easier. Thats why I pay for netflix its not because their DRM prevents me from pirating anything.
- Telemakhos 5y agoAs I understand it, this is not so much about DRM as it is about privacy. The new model tag allows the browser to sandbox the display of a 3d object without reporting information back to the web page/server. This way, the browser can use camera data to track the user eye position relative to the device for parallax or to show what is behind the device to accomplish the effect known as "augmented reality." In other words, Apple wants developers to be able to deploy augmented reality experiences on the web without giving them access to the user's camera, which is a privacy issue.
- dheera 5y agoHmmm I wonder if this would open more side channel attacks to extract information about the user without even going through a permissions dialog.
- twic 5y agoWhy not just use the existing object element? There is a section "Why add a new element?", but it only talks about canvas!
- Closi 5y agoThey also said the following: > It would be possible to reuse one of the generic embedding elements, such as <embed> or <object>, for this purpose. However, we think that 3D content should behave like other media types. I think their argument is that although it is semantically possible to use object, they think this would be clearer for the future.
- Waterluvian 5y agoInteresting. So Apple wants better browser AR support for their upcoming goggles?
- snet0 5y agoAssuming I'm reading your snark correctly, is this really such a bad thing? People here seem to have a rose-tinted view of the internet's past, before Google, Apple et al. "abused" their browsers' position to push changes into the spec. I can certainly see that apparently there are a lot of HN commenters who would like to go back to the days of IE and no real web technologies or much progress, but I think practically everyone outside this bubble prefers their browser experience to be at least somewhat feature-rich, and while the proposal under question may be strictly unnecessary, it should be weighed against alternatives: bundling a model viewer with every page view. Maybe this proposal is bad and a waste of resources, but I don't like the knee-jerk response of digging one's heels in and decrying any and all browser APIs as bloat. Not entirely directed at you, but your response just seems to echo something I see very often.
- moron4hire 5y agoAgreed. There is another poster in this thread commenting about "privacy". There is a certain class of perfect privacy fetishist that is completely blind to the fact that that particular horse has long, long bolted out the stable. All these arguments serve, when they are successful in hobbling the browser as an app platform, is too push developers into native apps in the app store. And then the developer doesn't need to fingerprint you, they get your identity just for asking. Meanwhile, browsing habits (sites visited + time of day of visit) is enough to fingerprint the vast majority of people. And sites do collude on the backend to share this data with advertisers, long before the user ever gets a chance to block it in the client app. If privacy fetishists see the browser as a sinking ship, they don't seem to realize they are trying to bail out the Titanic with a teaspoon, or that there is no such thing as dry land. The only way to stay private is too stay off the network entirely.
- jkelleyrtp 5y agoI don’t think the original comment had snark. I interpreted it is speculation around the rumored AR goggles.
- jpm48 5y agoInteresting they show support for USD(Z) in the example. USD will be the standard for most VFX houses and make tooling for various web based systems so much easier.
- moron4hire 5y agoWe have a 3D model format for the web in glTF. This is Apple having Not Invented Here Syndrome again. USD was developed at Pixar, of which Steve Jobs was the founding investor. Apple is the only one who wants USDZ on the Web. Everyone else is already using glTF.
- stefan_ 5y agoEven Windows 10 now has a glTF viewer, as I recently learned.
- ohgodplsno 5y agoUSD is widely used in all industrites, from video games to archviz to 3D rendering. If anything, glTF is the niche format.
- Bigpet 5y agoUSD, glTF and COLLADA are all "widely used" in some parts. I would like to see some data that USD is more popular than the other ones.
- moron4hire 5y agoGLTF, especially the binary format, is specifically design for transmission over the web. Wavefront is uncompressed text, Collada is even worse because it's extremely verbose XML. I don't know a lot about USDZ, but what I do know is that it's overkill for the web (graphics features that are mostly too costly to do in WebGL, additional scene description data like audio tracks, etc), while also lacking specific features that GLTF has that are aimed at the web, like streaming, progressive download of texture data.
- midnightclubbed 5y ago
- afandian 5y agoWhat is old is new. https://en.wikipedia.org/wiki/VRML https://en.wikipedia.org/wiki/VRML
- moron4hire 5y agoAre you the one who posts this link on anything 3D-in-the-browser posted here? If you knew anything about either, you'd know they are completely different things. VRML was more like 3D, inline SVG, before SVG in the browser was a thing. It was markup in the page. And it was meant to be scriptable and interactive. This is none of those things.
- afandian 5y agoNo I'm not.
- stefan_ 5y agoWebGL exists, why do we need a budget restricted version of a model viewer in the browser? None of the motivations are at all convincing. Should browsers now be obliged to integrate with VR headsets?
- moron4hire 5y agoBrowsers do integrate with VR headsets. And it is awesome.
- gkilmain 5y agoThis is intriguing (and new to me). Can you point me to something you enjoy that I can look at? Not even sure what to search...
- moron4hire 5y agoThe API is called WebXR (https://www.w3.org/TR/webxr/ https://www.w3.org/TR/webxr/, https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Devic...). You can find a lot of "getting started" samples here (https://immersive-web.github.io/webxr-samples/ https://immersive-web.github.io/webxr-samples/). Mozilla Hubs (https://hubs.mozilla.com https://hubs.mozilla.com) is publicly available. Message me and I will show you what I'm making at work (it's not exactly hidden, but it's also only meant for our existing customers and I don't need the extra traffic from posting publicly).
- astlouis44 5y agoTry vrland.io/lobby
- vez- 5y agoCheck out "WebXR"
- tenaciousDaniel 5y agoNot only WebGL, but WebGPU is also in the works. I simply don't understand this proposal.
- neilv 5y agoI don't understand why a 3D geometry model would best be called simply "model" in the context of HTML. The term "model" is a pretty generic term that's very relevant to HTML, already used heavily in Web frameworks, etc.
- rjsw 5y agoIt matches the MIME Type for that kind of thing.
- amelius 5y agoBecause "3dmodel" is not a valid identifier?
- silvestrov 5y agoAt least they could use a proper name instead of the generic "model", something like "object3d".
- edflsafoiewq 5y agoThey could just use <object>.
- deleted 5y ago[deleted]
- reportgunner 5y agoyeah just call it <threedee>
- nickpow43 5y ago<geometry> would be nice.
- nynx 5y agoI think this is a great idea. It’d let people pull the model that the page is using pretty easily, which would be great.
- deleted 5y ago[deleted]
- max_ 5y agoHow is this different from WebGL?
- ape4 5y agoAny possible privacy implications? Perhaps the model could be used for tracking?
- mishafb 5y agoI don't think you can use JS to get how the model looks on screen with this, whereas a canvas can be converted to an RGB grid
- satori99 5y agoThis could be implemented right now using native browser APIs (custom elements w/ closed shadow roots & WebGL), on a per site basis. Seems a bit pointless really.
- Brajeshwar 5y agoWe all don't like it but we are kinda inching towards a `Flash Player` in Browsers.
- tiborsaas 5y agoWe already have that for ages now with canvas and webgl.
- jordigh 5y agoIf this gets accepted into webkit, which is now nearly synonymous with "HTML", would it be a huge porting effort to get this working with Firefox, the only other HTML implementation I can think of? (I understand that other webkit forks could have this code easily applied.)
- dmitriid 5y ago> If this gets accepted into webkit, which is now nearly synonymous with "HTML" It's not synonymous with HTML. Chrome's browser engine is now unfortunately synonymous with "the web" in general. And, while it's derived from WebKit, it's diverged from it too far, and bears a different name, https://en.wikipedia.org/wiki/Blink_(browser_engine) https://en.wikipedia.org/wiki/Blink_(browser_engine)
- enjikaka 5y agoNo need for such an element. It's such a private use case to display 3D models that it's better suited as a web component than an element in the standard. See for example <model-viewer> https://modelviewer.dev/ https://modelviewer.dev/
- zemptime 5y agoThis should be much further up than where I found it!
- kaba0 5y agoAs others have mentioned, the privacy implications are much more important. That is, the site owner will not have to have access to eg. the camera stream, but still use AR with this method. So in a way, the value in this proposal is that it is less capable than the from scratch approach, and can be implemented safely just in the browser.
- evrflx 5y agoI would love to see that apple negotiates their wishes but have in turn to implement web APIs they currently keep back by choice. And let users use a real different browser on their device.
- achairapart 5y agoGoogle: "Hey Apple, here is your pet <model> tag for your next AR/VR secret project. Now, here there are all the PWA APIs that are still missing in Safari. Thank you."
- ybahubali2018 5y agoThis functionality resembles Adobe Flash
- JusticeJuice 5y agoBased on the comments so far, I think I'm in the minority who think this would be a good feature for the web. This proposal might not be perfect, but I think the idea is great. There's lots of good reasons to semantically want to embed a 3d model in a page, like any other type of media. Say you're writing a course explaining how differential gears work - a 3d model of that could be really handy to look at to learn. A shoe company wanting to have a model of their sneakers in their shop. Sure we've got canvas, and WebGL, and WebGPU, and libraries like three.js, which work. But wow you gotta get a lot of JS slapped together to just get something rendering. E.g. I wonder how long transit spent getting a truck rendering on this page. https://panic.com/transmit/ https://panic.com/transmit/ The other challenge of doing everything yourself is that code is stuck in time. It's going to get very minimal benefits from browsers and devices getting better over time, it won't get native UI changes - in 5 years it'll look very dated, if it's still accessible. A model element makes a lot of sense to me.
- dsign 5y ago3D models are very variable: some are defined with just triangles, some include quads, some are NURBS or subdivision surfaces. Sometimes two sides per polygon are considered, sometimes just one. Ways of navigating a 3D model also vary wildly. Sometimes you just want to pivot/rotate them around a little, but sometimes "walking" inside them makes more sense. Then there are materials and lights, and here people go wild with ideas. In our "current world", if you want a 3D viewer, you use WebGL and Javascript, and voila, what you get is what you see in all browsers that support WebGL. > But wow you gotta get a lot of JS slapped together to just get something rendering Indeed. But there are some quite nice 3D model viewers out there ready to roll, easy to embed, and full of features.
- albrewer 5y agoI always though the way Windows' Geometry3D[0] element worked was really nice. You define a list of points in a particular order. Whether a face is on the "inside" or "outside" depends on the direction you "wind" a metaphorical string around those points. After defining some primitives you can start to compose them into a single model. [0]https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.media3d.geometry3d?view=net-5.0 https://docs.microsoft.com/en-us/dotnet/api/system.windows.m...
- otrahuevada 5y agoThe naming is unfortunate. But also, it'd be pretty cool if this was implemented as a browser extension, that way it could be much faster to iterate over. I wonder why this is not common practice? Modifying browser internals is such a pain that it strikes me as odd that it is the 1 established way of going about this proposals.
- zodiakzz 5y agoIf I am not wrong, a functional version can be written in plain JS (+ WASM?) using Custom Elements (tho tag names must contain a hyphen). Except I don't know why all the non-Google stakeholders are hell bent on sabotaging Custom Elements. While Google is doing so much innovation in that space. Strange.
- sorenjan 5y agoI think such an element would be welcome, and make it easier to add 3D elements to websites. A while ago I wanted to share some 3D models with people, but there weren't any good options. I found a couple sites that lets you upload .obj files, but you need an account and they worked by embedding renderers in iframes. If 3D models had better browser support I hope there would emerge some sites that would let you upload and share them as easy as regular images now. I don't think it's stranger than having a video tag even though we could embed video without it previously. Having a dedicated 3D tag would make websites more semantic. Hiding stuff in canvas tags like Googles Flutter is the wrong way to go, so bringing stuff out of canvas tags when possible should be encouraged. Edit: I also think this can be compared to the svg tag. Sure, you could use canvas and webgl and render a 2D vector image using some javascript library. But with svg, you don't have to, and you can style it with css etc. I don't agree with the tag name though. IMO, "model" is a singular 3D object. Such a tag should support scenes with multiple objects in them.
- josefx 5y ago> I don't think it's stranger than having a video tag even though we could embed video without it previously. Having a dedicated 3D tag would make websites more semantic. Video had literally thousands of commonly used sites embed third party players before we got a standard. > A while ago I wanted to share some 3D models with people, but there weren't any good options. So in contrast to video no one gives a shit? > If 3D models had better browser support I hope there would emerge some sites that would let you upload and share them as easy as regular images now. We have APIs to render 3D content (WebGL) have APIs to load random files from a site what more do you need for obj files? > I don't agree with the tag name though. IMO, "model" is a singular 3D object. Such a tag should support scenes with multiple objects in them. And what format will you use to describe these Scenes? obj doesn't handle animations or complex structures. What you want isn't a browser but a complete game engine.
- sorenjan 5y ago> Video had literally thousands of commonly used sites embed third party players before we got a standard. Yes, and now I can right click a video and open it in it's own tab, pop it open in an overlay, or download it easily. > So in contrast to video no one gives a shit? It's historically been more difficult to create 3D models than images or video. Now phones have lidar, photogrammetry is becoming more accessible, there are ML models that create 3D from 2D, 3D printers have been around for a while, etc. 3D could be more popular if it was easier to share and display. > We have APIs to render 3D content (WebGL) That gives you a GL context, then you need javascript to render the scene and add interactivity from mouse events etc. > have APIs to load random files from a site what more do you need for obj files? Something like imgur where I can upload a file and send the link to people, and have it work in their chat client and browsers. Something that makes it easy to add a 3D visualization to articles. > And what format will you use to describe these Scenes? obj doesn't handle animations or complex structures. Apple uses the USDZ format in their examples, and there's also the glTF format. But obj and stl files should be supported as well. > What you want isn't a browser but a complete game engine. Game engines does much more than render 3D scenes. They also handle image loading, audio, video, network connections, user input... You're right, browsers does have a lot in common with game engines.
- jchw 5y agoI’m annoyed at the realization that Safari will likely support this before it supports WebM or Ogg.
- doctornoble 5y agoWebM support has been added to Safari 15
- robertoandred 5y agoJust because Google pushes their pet format doesn't mean the industry needs to be their lapdogs.
- jchw 5y agoPlease explain to me how Ogg Vorbis and Ogg Opus are still not supported, then. Please tell me why Apple has no answer for a patent-unencumbered format that replaces it. Better yet, please explain why Google’s “pet formats” are evil, bad, or even just not good. I’m tired of hearing this argument. So basically Google made WebM, so we can never have open formats in browsers? How is this really the answer that’s better for the web ecosystem? Not supporting WebP had some merit, considering there were other answers, but WebM basically doesn’t have any better alternatives. Even iPhones have the necessary hardware to decode VP8 and VP9. Why does Firefox support WebM if it’s so bad for the web? Why is Apple even part of the AV1 alliance without releasing software that supports it? I don’t like Apple getting a free pass on positive intent because it’s not Google. Whether its codecs (which Apple holds both MPEG-4 and HEVC patents,) or WebGPU shaders (nobody else wanted WSL, but Apple forced it on us, apparently because of SPIR-V IP conflicts,) people seemingly make up excuses for why it’s OK that they lag on standards that nobody else seems to have an issue with. It’s beyond frustrating. It’s infuriating. As a web developer, it’s a bigger problem to me than anything Google Chrome does, and trust me, that’s saying a lot.
- dangerface 5y agoI think apple should just fix their webgl implementation. They seem to be missing a fundamental feature of the web it's interactive. They have an interactive attribute for the tag but no description of what this means? What does it mean to interact with a 3d model? Can 3d model interaction be accurately defined in a single attribute? Why not just use javascript for that logic? The whole point of having multi media like a 3d model on a website is so people can interact with it. If the interaction is as simple as spin the model there are three.js and a million other javascript libraries that can do that in a few lines of code. Another fundamental the proposal doesn't address is the model format? As far as I know all model file formats are proprietary OBJ is probably the closest to an open standard and its anything but standard. Another issue that javascript easily solves. A fake problem their solution found is DRM, obviously the DRM could be removed as easy as HLS encryption (Super easy, did it yesterday). The main problem here is again the file format, no one would share their 3dmax file because its fucking huge they would export a low poly model for web that would be useless to anyone wanting to steal your model.
- tehbeard 5y ago> I think apple should just fix their webgl implementation. They can't even make a key-value storage that doesn't break every other release, you expect them to get something involving complex math to work?
- deleted 5y ago[deleted]
- soylentgraham 5y agoIts a few lines of code... for a coder, and even then, its 100 lines of setup, shaders, model loading. Vs a single tag to embed a model. For a non-coder. You dont have to know how to encode/decode videos to add video to a page. Im surprised it's taken this long. (Whether it'll turn out good, not sure, but it will definitely be adopted, and fast)
- onion2k 5y ago
- Ajedi32 5y agoMy initial reaction to this was "just use WebGL", but they've made a pretty compelling case as to why that's not ideal: > Consider a browser or web-view being displayed in Augmented Reality. The developer wants to show a 3D model in the page. In order for the model to look accurate, it must be rendered from the viewpoint of the user - otherwise it is a flat rendering of a three-dimensional image with incorrect perspective. > A solution to this would be to allow the Web page, in particular the WebGL showing the 3D model, to render from the perspective of the user. This would involve granting too much private information to the page, possibly including the camera feed, some scene understanding, and very accurate position data on the user. It should not be a requirement that every Web page has to request permission to show a 3D model in this manner. The user should not have to provide access to this sensitive information to have the experience. > Furthermore, there is more information needed to produce a realistic rendering, such as the ability to cast and receive shadows and reflections from other content in the scene, that might not be on the same Web page. From that perspective, having the rendering handled by the browser seems like a smart idea.
- corentin88 5y ago> Consider a browser or web-view being displayed in Augmented Reality Feels like Apple is working on something that needs this.
- wlesieutre 5y agoRelated history, <canvas> came about from Apple's Dashboard in 10.4
- corentin88 5y agoOh interesting. Do you have more details about that? Edit: it's on the first paragraphs of the MDN page about <canvas> [1]: > First introduced in WebKit by Apple for the OS X Dashboard, <canvas> has since been implemented in browsers. Today, all major browsers support it. [1] https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/...
- trey-jones 5y agoPresumably if Apple is proposing it, then they are already implementing it in Safari and will eventually enable it, and either it will be terrible and nobody will use it, or it will be great, and the rest of the browser vendors will need to catch up.
- EamonnMR 5y agoA model is no better than a image without animation. So at the minimum it needs to support animation. But of course an animation with no interactivity is no better than a video. So it needs to support interactivity. Now you're talking about a bunch of scripting, to which (as they point out) Babylon and Three.js are well suited. I don't see the point of adding this to the browser when canvas exists, unless the point is to take components out of Babylon/Three and put them into fast browser code.
- atum47 5y agoWhen I was building my 3D engine for the web I thought about creating a component for this kind of thing: showing and interacting with a 3D model (I think this would be good for stores to display products) and I also thought about displaying panoramic images (inverted sphere with a 360º picture as texture), back then I found some other people doing something similar so I just gave up on the idea. But I for one think this would be a good feature.
- Benjamin_Dobell 5y agoThis doesn't really seem like the right abstraction. 3D models are inherently interactive. There could be some value in supporting 3D video, where interaction is inherently limited to 3 degrees of freedom. There may even be value to the "videos" being represented as 3D scenes with animation i.e. rendered on the device. However, "models" are something you need to interact with. To achieve an even remotely acceptable level of UX those interactions absolutely need to be custom tailored for the content. Let's say you want to display a 3D building interior. If you're going to allow any form of free camera movement, you need to define how that logic works. Do we want first person walk-through? If so, you need collision detection. For simplicity, let's assume you can walk through walls. However, at the very least you'll want to walk on the floor. What about split levels and stairs? No. That sounds too hard. We'll rule out walk-through. We've now got a floating camera, and it'll happily pass through any geometry. Now, should the camera orbit around a point, or is a first-person flying camera more appropriate? Wait, how fast should the camera even move when you indicate you wish to move forward? Okay, let's make that configurable. What if you have two points of interest and a large gap in between? How do we get from one area to other? Should the camera travel faster in this area? Should there be some standard mechanism to jump to another location in the scene? Hmm, too hard. Let's ignore that problem for now. Should there be constraints with respect to how far you can zoom in and out? I guess we could define that in the file somehow. Okay. Animation tracks. They were mentioned. Do they all auto-play? Is that going to be performant? What if we want to trigger animation tracks based on camera location or some other event? We'll need, like a DOM, I guess? > while we are not proposing a DOM for the data at the moment, we expect to in the future Ah, right. Well. Let's assume in the future there's a DOM. Wait? How do we interact with the DOM? JavaScript somewhere? Where are we collecting user events from to drive this interaction? Can we display UIs within the 3D scene and receive events? How do we build those UIs? This snowballs real fast. The solution you're going to end up with is WebGL/WebGPU. Anything less than that is far too restrictive and going to make for a terrible user experience.
- avnigo 5y agoInteresting use of the example image, I wonder if Apple is thinking of iMessage on the web, after we've seen FaceTime for the browser. I wouldn't have thought it a possibility, but it's strange they used that example.
- pier25 5y ago> I wonder if Apple is thinking of iMessage on the web, after we've seen FaceTime for the browser My first thought was that Apple is indeed working on a VR and/or AR headset.
- thih9 5y ago> while we are not proposing a DOM for the data at the moment, we expect to in the future. On one hand this is exciting. On the other, I'm having trouble seeing practical applications. Can anyone point to some websites showing DOM use in existing media elements (e.g. SVG)?
- gambler 5y agoDOM for SVG allows applying the same code that manipulates HTML to SVG with very little changes. You can splice it in with AJAX, change it via styles, etc. It facilitates writing generic scripts that can be reapplied to widely different use cases. The idea of having a generic interface to widely different types of entities is a very powerful concept and it is very unfortunate that so many web developers today don't seem to get it.
- thih9 5y agoI understand that it is a powerful concept; I'm looking for existing websites that make use of it; is anyone aware of any?
- arduinomancer 5y agoI'm guessing they're aiming for something similar feature-wise to the 3D model viewer built in to Windows 10. A lot of people don't know it exists. It actually supports glTF 2.0 models with PBR textures, which I thought was pretty advanced for a preview application. If you're curious go download this sample glTF model and open it on windows: https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/DamagedHelmet/glTF-Binary https://github.com/KhronosGroup/glTF-Sample-Models/tree/mast... Still, it could be a can of worms because there's a ton of stuff that would need to be specified like camera, lighting, etc.
- AlexAltea 5y agoDismissing Apple's <model> HTML element proposal because WebGL/WebGPU on <canvas> already "solve" the problem feels short-sighted... Under that logic, shouldn't we replace <img> and <video> elements with WASM modules for ffmpeg/libjpeg/libpng rendering into a <canvas> too? Or hey, maybe we could drop HTML altogether and just render all content from WebAssembly straight into the <body>?
- smoldesu 5y ago> Under that logic, shouldn't we replace <img> and <video> elements with WASM modules for ffmpeg/libjpeg/libpng rendering into a <canvas> too? If we're going to town, we may as well go in a Lincoln. Maybe I've just been working in Rust too much recently, but this was my exact thought too upon reading this.
- mkl95 5y agoIt would be a great idea if WebGPU wasn't a thing. Imo Apple and big corp should double down on their WebGPU support instead of pitching their own ideas. And if they want to support something that is production ready, WebGL2 has been out there for a while.
- simonke 5y agoA new element like canvas, except that model should be allowed to only draw 3d scenes? At this point they should just implement the w3c X3D specificiation into the browser with an integrated renderer (like SVG), so that we do not have to rely on x3dom anymore. Since SVG is not blocked, I do not see why X3D would be blocked. https://en.wikipedia.org/wiki/X3D https://en.wikipedia.org/wiki/X3D https://www.x3dom.org/ https://www.x3dom.org/
- peanut_worm 5y agoWhile I agree that Apple should fix their WebGL implementation, this doesn't seem like such a bad idea. I have noticed a lot shopping sites now have 3D models of products that you are buying, I feel like this element would be a great match for those situations.
- zamalek 5y agoThere's an existing standard that they could have collaborated on. https://en.wikipedia.org/wiki/X3D https://en.wikipedia.org/wiki/X3D > Striving to become the 3D standard for the Web, X3D is designed to be as integrated into HTML5 pages as other XML standards such as MathML and SVG. X3DOM is a proposed syntax model and its implementation as a script library that demonstrates how this integration can be achieved without a browser plugin, using only WebGL and JavaScript. Apple is demonstrating a pretty bad case of "not invented here" syndrome.
- shawnz 5y ago> Apple is demonstrating a pretty bad case of "not invented here" syndrome. I don't think that's the case here at all. Apple's proposal solves a completely different problem, which is to embed arbitrary model formats on the page. X3D is just one possible format and without something like Apple's proposal in combination, it could only be used inline, which may not always be preferred.
- bastawhiz 5y agoApple isn't doing anything that's incompatible with X3D. In fact, they didn't even specify which kinds of models they would accept (there's a `type` on the <source> elements). You could easily point one of those at an X3D file. Sure, you could put an <X3D> tag into a HTML document, but there's no `<img>` equivalent (like you can use with SVG) to load that content from another URI. When dealing with extremely large (byte-wise) or complex shapes, having the option to load that data separately (or in a more efficient binary format) is obviously desirable.
- zamalek 5y agoRe-iterating the quote from my comment: > X3D is designed to be as integrated into HTML5 pages as other XML standards such as MathML and SVG. X3DOM[...]
- bastawhiz 5y agoAnd as I said, there's exactly nothing that makes the proposed tag incompatible with that idea. It's just another way of linking to that file. Inlining content is not universally desirable.
- cblconfederate 5y agomodels are heavy though. imagine sketchfab with models instead of images, is that so useful? Isn't model loading/viewing supported by webXR? currently it seems webXR requires a lot of boilerplate to get it to work, it would be nice to have a simpler way to setup a 3d scene , and html tags should follow. Also , limiting the functionality to 3d models seems odd, how about 360 panoramas, and what about animation?
- varjag 5y agoJust embed a .vrml in a <frame>.
- chuckSu 5y agoThis is not a bad idea actually
- lostmsu 5y agoHooray, WPF 3D [0] and VRML [1] are back in the "modern" form! [0] https://docs.microsoft.com/en-us/dotnet/desktop/wpf/graphics-multimedia/3-d-graphics-overview https://docs.microsoft.com/en-us/dotnet/desktop/wpf/graphics... [1] https://en.wikipedia.org/wiki/VRML https://en.wikipedia.org/wiki/VRML
- sfink 5y agoCounterproposal: let's add a new element <visible-complicated-stuff>. It accepts <source> children. You can do <visible-complicated-stuff interactive> and it does... interactive stuff of some sort, but nothing that could be visible from JS because that would leak privacy info, so really it would get direct mouse/keyboard/camera input and do something with it according to the vast list of standardized possibilities. Which would be length 1, because any more than that would be an interoperability nightmare. We'll give it the MIME type "application/stuff+interactive". The source data would be interpreted according to its own vast list of standardized possibilities, which realistically would have a 3D model format subset of size zero because 3D formats are so diverse and cater to such different needs that etching one in stone for standardization is kinda silly. But we can pretend it'll be size 1. In which case the subtly differing implementations of lighting, texturing, potentially rigging, etc. will make it nonportable for the next decade or so, at which time we'll have a common-denominator format a decade out of date. But at least we called it "stuff" instead of "model" because then you couldn't put a scene into it and $DEITY help you if you wanted to animate anything. Ok, it's not a great counterproposal. But it doesn't feel like it's inferior to the proposed <model> in any way, and has the advantage of being slightly more honest with its naming. The only way I could take this proposal seriously is if it set out up-front to define an extremely limited subset of capabilities that are broadly useful. Something like <triangles> with a 'camera' attribute and <lighting> children or something. Then you could evaluate various file formats for suitability. But I just don't see any simplistic subset that would make any two groups of people happy. Everyone needs a tiny bit of additional capability for their use case. This is not a subsettable problem.
- kelvin0 5y agoBlobs. Enjoy. https://developer.mozilla.org/en-US/docs/Web/API/Blob https://developer.mozilla.org/en-US/docs/Web/API/Blob
- purplejacket 5y agoI want a <latex> element.
- saagarjha 5y agoIt'd be really nice if MathML had better support :(
- phkahler 5y agoYou can export 3D models to HTML using Solvespace: https://solvespace.com/index.pl https://solvespace.com/index.pl These are fully self-contained in a single file along with 3js and can be added to web pages as shown here: http://m-labs.hk/software/solvespace/ http://m-labs.hk/software/solvespace/ You can zoom and rotate the models on that page. That's been a feature since whitequark was the maintainer and worked for m-labs. And with the latest development branch you can link STL files too, so it can effectively be used convert STL to HTML.
- theunspoken 5y agoI am very fed up with standards lacking a free and open reference implementation. It's very easy to produce a specification for embedding 3D models into a browser, but who is going to follow up with and actual complying browser? The big guys, that's who. Google, Microsoft, Apple can just throw piles and piles of money at the problem; but what about everyone else? What about Firefox? What about Palemoon? What about Falkon? When the AV1 codec came about one of the first thing provided was the reference implementation (AOMenc), same with Wayland. Not the most performant, not the lightest on resources, but at least it followed the protocol. W3C and alike though don't seem to like this perspective. Why can't we have an average performing BSD-licensed W3C-compliant web browser? Just as a last resort if you just want to use something that is sure to work, or maybe the first browser you can port to a new architecture or OS to get things going.
- comex 5y agoGoogle and Apple's engines are open source (and Microsoft now contributes to Google's). What would be the benefit of a separate reference implementation of this standard? I suppose it would be easier to port to other browsers if it were designed as a standalone library rather than tightly integrated into an engine. But the idea of going to pains to design a standalone library seems to contradict your later statement that you want an entire reference browser. A web browser is orders of magnitude more complex than a video encoder or a Wayland server. Not aiming for high performance would make a browser a little less complex, but not by much, so there doesn't seem to be much point. Minus that, you're just asking for someone (who?) to write a new web browser from scratch. It would certainly be nice if there were more independent web browser codebases in general, but I don't see what special benefit a new one would bring to the table just due to being marked as a "reference implementation".
- c7DJTLrn 5y agoYes, we need more features in browsers. There just aren't enough. It's just too restrictive. We don't need to carefully consider the tradeoffs.
- MR4D 5y agoWe have a video tag, so why not? https://www.w3schools.com/html/html5_video.asp https://www.w3schools.com/html/html5_video.asp
- _carbyau_ 5y agoMain reason against seems to be: 3D is hard. And it is. It is another order of magnitude harder than the complexity step from images to video. As another comment noted: """ A model without animation is an image. A model with animation but without interaction is a video. """ So interaction seems like the next step. But the solution is pretty much = embed game engine in browser. Now the question has to be, which game engine? What features should it have? Sandboxing? Permissions? How will Apples game engine compare to Google/Microsoft/Firefox. How can 3D media possibly be expected to perform the same on all of them? Also, 3D engine in the browser? That will influence the market for games. Epic should be paying attention as this is a direct shot across their bow. So, it is hard technically. It is hard for politicommercial reasons. And we haven't touched on privacy/data collection and how that might look. Is that a reason not to start? No. But when there are already many solutions covering many use cases already there will be arguments over when we should bother.
- epaulson 5y agoI thought this Twitter thread by one of the Google WebGL folks and a response from an Apple Webkit engineer had some good perspectives: https://twitter.com/Tojiro/status/1432382837735374855 https://twitter.com/Tojiro/status/1432382837735374855
- gfxgirl 5y agojust fyi, while it's not exactly the same a <model-viewer> tag already exists https://news.ycombinator.com/item?id=28370584 https://news.ycombinator.com/item?id=28370584
- yayr 5y agoWe will need a full 3d rendering space for future applications anyway. It will require, that 2D content can be embedded in a 3D space and vice versa. Also a standardized 3D dom (with whatever usefully condensation of properties) will be required sooner or later, unless we want only some very big players to provide proprietary 3D environments. I think, a "model" tag is a good and forward compatible path
- rightisleft 5y agoI'll just leave this here: http://iswebrtcreadyyet.com/ http://iswebrtcreadyyet.com/
- new_guy 5y agoApple needs to concentrate on bringing Safari upto spec before suggesting more half-assed ideas.
- mortenlarsen 5y agoDidn't have this before? VRML (Virtual Reality Modeling Language) in the 90's. I seem to recall using it on my SGI O2 with Irix and Netscape.
- davidgl 5y agoWhat about the old vrml standard ? I remember playing with 3d in the browsers in the 90’s https://en.m.wikipedia.org/wiki/VRML https://en.m.wikipedia.org/wiki/VRML
- Minor49er 5y agoI remember a browser plugin + a bunch of demos and tutorials being included on a Tomb Raider game long ago (Tomb Raider III Gold, most likely). I remember VRML being pretty easy to understand.
- omneity 5y agoMaybe the Safari team can consider implementing the existing specs that everyone else is supporting for years, before going overboard with stuff like this.
- throw_m239339 5y agoOf course that spec will also have to specify the format are supported just like WebSQL had to specify the SQL flavor used ... Oh wait, that was the excuse not to make WebSQL a standard... img or audio or video never specs never needed to specify which format these tags should support, but it was a problem with WebSQL? I'd rather have WebSQL than a <model> tag... Also, let's continue with the hypocrisy. If indexedDB is good enough so people "just have to implement a RDBMS on top of it", so is WebGL which had poor support on Safari until very recently...
- twirlock 5y agoThis is a terrible idea, and that's not what model means, not even in computer science jargon. Apple needs to fucking calm down.
- macawfish 5y agoSeems frivolous to foist this on browser developers when custom elements already make this possible. Would be cool of course cause 3d stuff is cool.
- fennecfoxy 5y agoThis is hilarious considering I distinctly remember making some webgl games as a part of a project at a digital agency in like 2015 or so and Safari was the only browser that didn't support webgl unless the user specifically enabled it in the settings, making it a massive pita.