[x3d-public] C/C++/C#---X3DCSAIL/ECMAScript 6 apps/module work

John Carlson yottzumm at gmail.com
Tue Aug 11 09:48:04 PDT 2020


After perusing the previous efforts found in www.web3d.org/x3d/languages,
it looks like the C and C++ SAI implementations need the most effort.   The
C# libraries are the most complete. I haven't been able to tell if the
libraries are hand generated, or auto-generated. If they were
autogenerated, it would be nice to have the tool which auto-generated them.

In short, it appears (but a second set of eyes is welcome) that we have C,
C++ and C# proposed standards for language binding at the ISO CD level,
found on github?   And a C# library and C/C++/C# SAI examples on
sourceforge?

What is the next step after CD for the C/C++/C# standards?

Would the new work give us an opportunity to switch implementation
efforts to github?

To be clear there, there are 5 efforts:

1) standardizing a specification.   This is primarily documenting various
interfaces and dictionaries.

2) implementing a specification

3) implementing validation tools (schemas), especially for loosely typed
encodings.

4) implementing example apps

5) implementing comprehensive test cases and test frameworks.

I am primarily interested in efforts 3-5.  It seems like we are currently
working on 1 and 2 with some examples that go into the standards?   Are we
prepared to work on 3-5 yet?
============================================
I primarily got interested in the ES6 work because it looked like we were
divorcing the ECMAScript and Python implementations from outside
dependencies (X3DJSAIL), plus I wanted a firm footing in ES6 classes
instead of a transpiled version of Java, one that used ES6 best practices
instead of Java best practices. However, that work has been delayed due to
lack of examples and my own ennui/listlessness.  That is, I find it hard to
work on both apps and libraries at the same time, and I would prefer to
work on apps.  I've stated this before. This might provide an additional
revenue stream.

I do think that ES6 and X3DJSAIL effort should be separated.   This would
allow an implementation separate from the npm java module and/or
nashorn/GraalVM.

While I tried to implement an ES6 library, it's still a long way from
working with a whole test suite.

I do not know exactly where we are with ES6 X3D standardization?   What are
the tasks to accomplish for standardization?

John

On Tue, Aug 11, 2020 at 9:01 AM Don Brutzman <brutzman at nps.edu> wrote:

> John, thanks for posting.  There are a number of steps still to go, here
> is more information.
>
> a. We currently 2/3 complete in our virtual 3-week-long annual meeting for
> ISO Standards Committee 24.  Ordinarily this is a dedicated 1-week
> face-to-face meeting, it is quite involved.
>
> b. Dr. Myeong Won Lee of Suwon University has provided an update to the
> C/C++/C# language bindings for X3D that were first proposed two years ago.
>
> [1]     Web3D Consortium Members are now considering C, C++ and C#
> language bindings for
>         #X3D Graphics International Standard. Member value continues to
> grow, early adopters are advised to join!
>         All community feedback is welcome too.
>         https://twitter.com/Web3DConsortium/status/984257256270135296
>
> c. The Scene Access Interface (SAI) language bindings are strictly defined
> by X3D specifications.  No proprietary technology or external-library
> dependencies are required.
>
> [2]     Web3D Recommended Standards
>         https://www.web3d.org/standards
>
> d. We have captured all X3D scene-graph structure and typing in the X3D
> Unified Object Model (X3DUOM).
>
> [3]     X3D Unified Object Model (X3DUOM)
>         https://www.web3d.org/specifications/X3DUOM.html
>
> e. We have achieved autogeneration from X3DUOM to open-source
> implementations that support SAI for Java, Python and Turtle.  This occurs
> through careful consideration of design patterns to hold strictly designed
> data structures.  This does not include any form of rendering or
> platform-specific adaptations.
>
> [4]     X3D Graphics Standards Relationships
>
> https://www.web3d.org/specifications/X3dSpecificationRelationships.png
>
> f. A major benefit of autogeneration is that everything is exactly correct
> and can always track X3D4 refinements.
>
> g. As you know, we hope to repeat this pattern for JavaScript.  Your
> experience with X3DJSONLD and JavaScript means that an autogenerated
> implementation oriented to Node.js is appealing.
>
> h. Once implementations are stable, we will have to write corresponding
> X3D SAI specifications to match, likely next spring.
>
> i. Professor Lee has also produced an example code library that should
> serve as a good basis for design templates.
>
> j. We hope to begin tackling this new task after SIGGRAPH.
>
> k. Since an unavoidable FAQ will be "How are the C/C++/C# implementations
> and specifications similar, and how are they different?" the X3D working
> group currently plans to work all three in tandem and submit all three
> specifications simultaneously.  This approach will maximize consistency and
> best-of-breed design patterns.
>
> l. Clearly we will need multiple X3D experts who are each familiar with C,
> C++ and C# in order to achieve our goals of useful reusable open-source
> libraries and specifications.
>
> m. This is not a debate about programming styles or preferences, rather
> how do we produce the most platform-neutral APIs that are widely reusable.
>
> n. Resulting codebases will be hooked up to regression testing of the X3D
> Examples Archives.
>
> [5]     X3D Resources, Examples: Scene Archives for X3D
>
> https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples
>
> o. Success is measured by how these libraries encourage adoption of X3D by
> C/C++/C# applications, either open source or commercial. Original
> announcement follows.
>
> [6]     [x3d] X3D C and C++ language bindings NWIPs [corrected copy]
>
> http://web3d.org/pipermail/x3d-public_web3d.org/2018-April/008598.html
>
> p. I'll be sending out an annual Web3D ISO liaison report to Web3D
> Consortium members in another week, once the SC24 meeting is complete.
> This report will get released publicly sometime afterwards.
>
> q. So the answer to most of your questions below is "same as before" with
> Java, Python, Turtle.
>
> Hope this makes sense.  These are new big projects, adapting and repeating
> capabilities that we have already demonstrated three times.
>
> Worthy mountains to climb that make X3D ever-more available.  Usually this
> is where business plans add a sentence saying, approximately, "total world
> domination to follow."  8)
>
> Thanks everyone for considering the possibilities.  Have fun with X3D4!  8)
>
>
> On 8/10/2020 5:10 PM, John Carlson wrote:
> >
> > We're looking for some programmers to contribute to a project creating
> X3DCSAIL, a C/C++/C# version of X3DJSAIL.
> >
> > My question is, how will X3DCSAIL be different from OpenInventor or
> Coin3D or FreeWRL?  Can these run headless?   Can we adapt one of these to
> run headless?  It looks like OpenInventor has a headless mode, but I'm not
> sure about the others.
> >
> > How might we pursue this library?  What are the requirements?  Who are
> the customers?   Should we just create examples, and adopt one of the
> existing open source X3D browser implementations?  Is there a website
> describing the goals of this project?  Should I create one?
> >
> > I have something written in C++ that reads in X3D JSON and writes out
> X3D XML, but that's pretty much a prototype at this stage--works with a
> couple of cases.  This opens up C++ X3D browser to the X3D JSON
> capabilities similar to how X3DJSONLD transformed X_ITE and X3DOM.
> >
> > The cplusplus version in in <X3DJSONLD>/src/main/cplusplus/src
> >
> > More testing is welcome!
> >
> > We currently do not have a X3dToC.xslt, but would appreciate examples of
> C++ code that people would like to develop to use X3DCSAIL, so we can
> pattern the appropriate stylesheet for the X3DCSAIL library.
> >
> > O can provide a C++ Serializer that will convert a DOM document to C++
> using JavaScript code, but  I'm also wondering what kind of target I should
> hit, similar to what we might do with a stylesheet.
> >
> > So we're just looking for C++ test cases at this point.
> >
> > Thanks,
> >
> > John
>
> all the best, Don
> --
> Don Brutzman  Naval Postgraduate School, Code USW/Br
> brutzman at nps.edu
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
> X3D graphics, virtual worlds, navy robotics
> http://faculty.nps.edu/brutzman
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200811/3343b645/attachment-0001.html>


More information about the x3d-public mailing list