Hacker News new | ask | show | jobs
by gyf304 1055 days ago
Does anyone remember X3D[1] / VRML? X3D is roughly the same concept, 20-some years ago.

Here's a hello world for X3D: https://www.web3d.org/x3d/content/examples/Basic/X3dSpecific...

And here's a hello world for OpenUSD: https://www.openusd.org/release/tut_helloworld.html#viewing-...

Although X3D is a bit more verbose, a lot of parallels can be drawn between the two, 20 years apart.

[1] https://en.wikipedia.org/wiki/X3D

6 comments

I do remember VRML. I read a book about it and spent some time playing around with it in the mid-90s. I didn't follow it closely enough to know when it died off (I'm assuming it died off since I haven't heard it mentioned much in decades).
VRML is still around — it became X3D. It's a different file format but the semantics are much the same.

All the plugins that used to be needed to display VRML online are gone now, but you can still display VRML 2.0/97 files online using JavaScript library called X_ITE [1]. I used it recently to view some old VRML I had saved but could no longer view. Works great.

1. https://create3000.github.io/x_ite/

I was tinkering in that space in the mid-90s, and always felt the file format was a missed opportunity, and wasn't taking any of the lessons of HTML.

What I wanted (but never built) was a semantic file format, something like:

    <room style="square" id="room1">
      <wall direction=north>
        <picture frame="modern" src="http://foo.com/fancycat.jpg" />
      </wall>
      <wall direction=south>
        <door room="room2" />
      </wall>
    </room>
Sounds like you are looking for react-three-fiber, which looks just like this!

The examples, demos, and development experience are great, but since it's based on web tech hasn't made a big splash yet with the bigger 3D content businesses.

You can actually render a gltf as a JSX tree too with gltfjsx: https://github.com/pmndrs/gltfjsx

There was a company in Sweden that built a system that used VRML and extended like that where you could define what the nodes were and reference and re-use them. The system also enable Python to script behaviour.

It also used the PHANToM for haptic feedback and used a 3D stereoscopic display

https://www.researchgate.net/figure/A-Reachin-Display-equipp...

The company H3D has built something similar.

https://h3d.org/

That's way too high level and ambiguous. Something could look okay in one browser and totally crap in another.
>look okay in one browser and totally crap in another.

We're talking about 3d model formats where the current industry standard is a close sourced Autodesk nightmare. This is already the default situaton.

There's not much incentive to change either because animation and game studios tend to roll their own tech.

<surface orientation=x name="south wall" rotation=-125 .../>
I remember VRML. Unfortunately KiCAD still uses it for 3D models (though thankfully it supports STEP files too)
> X3D is roughly the same concept, 20-some years ago

That was my initial thought also.

> Although X3D is a bit more verbose

The USDA file format reminds me a lot of the pre-XML VRML 97 file format, with the curly bracket C-style syntax, #comments, and 'def' everywhere.

https://openusd.org/release/spec_usdpreviewsurface.html#usd-...

We had to wait 20 years until some entity interested in interoperability became powerful enough that vendors started listening to them.
Not all surprising that X3D uses xml and of course OpenUSD uses some form of python/json thing