Fwd: Re: [webvr] Choosing a graphics library/framework

Forwarded from web-vr-discuss with permission.





It's funny that you sent this email now. I was just doing a summary on 
what is the best way to get started with WebVR 
<http://lensreality.com/how-to-get-started-with-webvr/> with an overview 
of the different frameworks, so it was cool to read the opinions of so 
many people in the community at once!

I do not think that one solution fits all, the choice of a framework 
should be based on someone's experience and project. As I mention in the 
article:find the framework that feels most comfortable to work with.

A-frame - if you are not very experienced with JS, it is a great place 
to start with as it hides a lot of the complex logic of three.js. Once 
you start building more complex experiments, though, you will need to 
start using three.js. They have a great responsive community on slack 
and twitter
React VR - perfect place to start if you have experience with React, 
otherwise maybe go with the other options
Three.js - if you have significant experience working with JS libraries, 
start with it as it will allow you to do more stuff and better 
understand the logic behind what you are doing. Also, it has a great 
community, extensive documentation, and many helpful examples
Babylon.js - similar to three.js but the main difference is that it was 
specifically created for games. As they just recently added WebVR 
support, there might be less WebVR developers currently using it (I 
don't know any)
WebGL - Learning WebGL is hard but also a very rewarding job. It takes 
years to perfect it, so if you want to get a VR prototype up and running 
in the next few weeks, it's better to go with some of the already 
mentioned frameworks.

Hope, it was helpful!

Have a great day!

Billy
Product Manager Creator Experience
www.coherent-labs.com <http://www.coherent-labs.com>

<http://t.signauxdix.com/e1t/c/5/f18dQhb0S7lC8dDMPbW2n0x6l2B9nMJW7t5XZs7fcFhRW3LrccW5vwml6W1p7Y5W56dRvDf1RJsxC02?t=http%3A%2F%2Fcoherent-labs.com%2F&si=5323868319252480&pi=1ee05a1a-0601-4858-af06-f624a93676d4>







On Wed, Aug 23, 2017 at 10:41 AM, Chris Van Wiemeersch <cvan@mozilla.com 
<mailto:cvan@mozilla.com>> wrote:

    I'd recommend the following frameworks for building WebVR experiences:

    • A-Frame – https://aframe.io/ (entity-component WebVR framework,
    built atop three.js)
    • LÖVR – http://lovr.org/docs/WebVR (scenes can be written in Lua
    and executed natively, and packaged to WebVR using emscripten +
    asm.js: http://lovr.org/share)
    • Primrose – https://www.primrosevr.com/ (built atop three.js)
    • three.js – https://threejs.org/examples/?q=webvr
    <https://threejs.org/examples/?q=webvr> (underlying and here's a
    good example of an open-source experience:
    https://github.com/stewdio/day-and-night-webvr
    <https://github.com/stewdio/day-and-night-webvr>)
    • Babylon.js –
    https://docs.microsoft.com/en-us/windows/uwp/get-started/adding-webvr-to-a-babylonjs-game
    <https://docs.microsoft.com/en-us/windows/uwp/get-started/adding-webvr-to-a-babylonjs-game>
    (WebGL engine, alternative to three.js)
    • Vizor – https://vizor.io/ (easy WebVR content-creation tool +
    hosting service)
    • PlayCanvas – https://developer.playcanvas.com/user-manual/vr/
    <https://developer.playcanvas.com/user-manual/vr/> (powerful WebGL
    3D game engine with a custom WebGL engine, entity-component
    framework, and hosting service)
    • Hologram – https://hologram.cool/ (easy-to-use macOS native
    application, built atop A-Frame)

    IYCMI: Here's a case study of a recent experiment by Shopify built
    using PlayCanvas:
    https://medium.com/shopify-vr/building-a-vr-shopping-experience-for-the-web-tips-and-takeaways-shopify-4a8017d5f6f5
    <https://medium.com/shopify-vr/building-a-vr-shopping-experience-for-the-web-tips-and-takeaways-shopify-4a8017d5f6f5>




    On Tue, Aug 22, 2017 at 5:03 PM, John Carlson <yottzumm@gmail.com
    <mailto:yottzumm@gmail.com>> wrote:

        I don’t have a framework!  Convince me to use yours instead of
        THREE.js!

        John

        Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986>
        for Windows 10

        *From: *Sean McBeth <mailto:sean.mcbeth@gmail.com>
        *Sent: *Tuesday, August 22, 2017 8:00 PM
        *To: *James Baicoianu <mailto:james_mozilla@baicoianu.com>
        *Cc: *web-vr-discuss@mozilla.org <mailto:web-vr-discuss@mozilla.org>
        *Subject: *Re: [webvr] Choosing a graphics library/framework

        Well, if we're naming off our own frameworks, then Primrose
        <https://www.primrosevr.com>!

        On Tue, Aug 22, 2017 at 7:28 PM, James Baicoianu
        <james_mozilla@baicoianu.com
        <mailto:james_mozilla@baicoianu.com>> wrote:

            Don't forget JanusVR as well!  Our JanusWeb client is also
            built on top of Three.js, provides a declarative layer
            similar to A-Frame, and like Babylon provides more entity
            management and game engine functionality that's useful for
            building larger interactive interconnected worlds.

            https://web.janusvr.com/

            -- James Baicoianu

            On 8/22/2017 1:06 PM, Michael Chang wrote:

                There's also ReactVR now which I haven't heard anyone
                mention (or use).

                On Tue, Aug 22, 2017 at 11:53 AM, Leonard Daly
                <web3d@realism.com <mailto:web3d@realism.com>> wrote:

                    Hi John,

                    As others have pointed out, you are mixing different
                    technologies/layers here. The closest two being
                    THREE and Babylon.

                     From my perspective, you are trying to build a
                    Metaverse. That is a lot of content. As long as it
                    works, people (as in users) are not going impressed
                    with your underlying technology. So choose the
                    technology that males your work (and that of
                    user/developers) easy -- as long as it works.

                    WebGL is when you absolutely need it to run fast. 
                    Unless you are going to write your own bower, this
                    is about as low as you can go. BTW, I put shaders
                    here. You probably want to have a decent library of
                    them so people don't have to write one.

                    THREE/Babylon are programmatic interfaces to WebGL
                    (there more than that, but it's a good first start).
                    Writing code at this level is much easier to manage
                    and maintain that WebGL code. If this is your
                    choice, all metaverse developers will need to use
                    one of these APIs -- meaning they will need to write
                    JavaScript code.

                    A-Frame is a semi-declarative language. It abstracts
                    some of the features of THREE into a declarative
                    language. If this is your choice, developers will
                    need to write HTML-like code (tags and attributes),
                    unless the particular desired feature is not
                    available. Then the developer will need to write
                    using the A-Frame API to THREE. (This is what makes
                    it semi-declarative.) Carefully check the A-Frame
                    documentation to make sure that it provides the
                    features you are looking for. Also note that A-Frame
                    is still in pre-release development (V0.6). Things
                    will probably change.

                    The W3C has a community group for Declarative VR
                    (https://www.w3.org/community/decwebvr/
                    <https://www.w3.org/community/decwebvr/>).
                    Membership is open to everyone. (I am co-chair). The
                    group is working on a fully declarative language. We
                    would like your inputs as you work through the
                    issues of what is needed for a declarative language
                    that will fully integrate with HTML, DOM, CSS, and
                    other W3C technologies. If you are interested, I can
                    provide further information as to my findings and
                    preliminary development.


                    Leonard Daly





                    On 8/22/2017 12:08 AM, John wrote:

                        Hi all!

                        I'm a recent CS grad who is convinced that WebVR
                        is going to play a major part in the development
                        of the Metaverse.

                        I've spent some time dabbling with three.js, but
                        I feel that it's time for me to choose to choose
                        between WebGL, three.js, and A-Frame; could
                        anyone give me a quick breakdown of the pros and
                        cons of each? I don't want to invest too much
                        time in learning something only to have it
                        superseded like Vulkan has with OpenGL.

                        Any tips would be greatly appreciated.

                        Cheers,

                        John Reynolds

                    -- 
                    *Leonard Daly*
                    3D Systems Architect & Cloud Consultant
                    President, Daly Realism - /Creating the Future/


                    _______________________________________________
                    web-vr-discuss mailing list
                    web-vr-discuss@mozilla.org
                    <mailto:web-vr-discuss@mozilla.org>
                    https://mail.mozilla.org/listinfo/web-vr-discuss
                    <https://mail.mozilla.org/listinfo/web-vr-discuss>

                _______________________________________________

                web-vr-discuss mailing list

                web-vr-discuss@mozilla.org
                <mailto:web-vr-discuss@mozilla.org>

                https://mail.mozilla.org/listinfo/web-vr-discuss
                <https://mail.mozilla.org/listinfo/web-vr-discuss>


            _______________________________________________
            web-vr-discuss mailing list
            web-vr-discuss@mozilla.org <mailto:web-vr-discuss@mozilla.org>
            https://mail.mozilla.org/listinfo/web-vr-discuss
            <https://mail.mozilla.org/listinfo/web-vr-discuss>



        -- 

        *Sean T. McBeth*

        Principal

        www.primrosevr.com <https://www.primrosevr.com/>


        _______________________________________________
        web-vr-discuss mailing list
        web-vr-discuss@mozilla.org <mailto:web-vr-discuss@mozilla.org>
        https://mail.mozilla.org/listinfo/web-vr-discuss
        <https://mail.mozilla.org/listinfo/web-vr-discuss>



    _______________________________________________
    web-vr-discuss mailing list
    web-vr-discuss@mozilla.org <mailto:web-vr-discuss@mozilla.org>
    https://mail.mozilla.org/listinfo/web-vr-discuss
    <https://mail.mozilla.org/listinfo/web-vr-discuss>


-- 
*Leonard Daly*
3D Systems Architect & Cloud Consultant
President, Daly Realism - /Creating the Future/

Received on Thursday, 24 August 2017 23:02:59 UTC