[x3d-public] [x3d] X3D Working Group meeting 19 OCT 2018 minutes: github mirroring, driving towards X3D interoperability

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Tue Oct 23 09:20:52 PDT 2018


(Changed subject line to match discussion... added other key X3D implementers.)

Thanks for the description of your github mirroring plans Michalis.

No need for propagating 'legacy' tree, that is a safety net for old work.

*However* you can still color me "puzzled" why you are motivated to put effort into this mirroring.

For starters, here are most obvious downsides:
a. what benefits occur?
b. original authoritative sources remain elsewhere; how to synchronize updates?
c. similarly how to reconcile conflicts between archives?
d. what happens to years of version-control change history when you copy?
e. there are multiple projects with a lot of build scripts that each have multiple workflows, now what?
f. what are identified problems with current workflow that such version-control mirroring might fix?

Meanwhile SourceForge (where these code and example archives reside) support includes git.  Not sure, perhaps even alignable with subversion?
- https://sourceforge.net/p/forge/documentation/Git
- https://sourceforge.net/p/forge/documentation/SVN%20Overview

I certainly don't want to inhibit growing activity but it looks like it will make things more difficult for us to keep aligned, and possibly much more time needed for me to keep our X3D workflow stable.  Ouch ouch.

Finally am not seeing how any of this accelerates our collective progress towards X3D v4.0.  Again Ouch.

Also am not opposed to the notion of forking whatsoever.  All of these assets are indeed Open Source.  The preceding questions emerge immediately following a fork.

And so, am happy to learn more about what you think.  Truly.

*Meanwhile* am wondering if other activity will have better impact.  Am hoping to combine efforts, not split them.

For example, what if we:

g. Updated our X3D Node Inventory Comparison support spreadsheet to show everyone's latest greatest:
====================================================================================================
     X3D Node Inventory Comparison (.pdf) shows implementation coverage of the X3D Abstract Specification:
     * Validation using X3D Schema, X3D DOCTYPE, and X3D Schematron;
     * X3D Tooltips and VRML97 node sets; plus
     * Selected open-source implementations: X3D-Edit, X3DOM, X_ITE, view3dscene (Castle Game Engine), Xj3D.
    http://www.web3d.org/specifications/X3dNodeInventoryComparison.xlsx
    http://www.web3d.org/specifications/X3dNodeInventoryComparison.pdf

Latest version attached.  This hasn't been updated since last December, so a refresh is due.
====================================================================================================

h. Share/compare open-source code as appropriate to get all major browsers supporting X3D Interchange and Interactive Profiles.
i. Continue prioritization of all major browsers to finally achieve X3D Immersive Profile.
j. Enter new year with active collaborations in place to accelerate X3D v4.0 implementations.

In other words: we have some real opportunities for shared mutual progress in our respective software-development efforts.

Hope this helps. Please let me (and everyone of course) know what you think.  Thanks for considering future possibilities.

v/r Don


On 10/19/2018 11:25 AM, Michalis Kamburelis wrote:
> Brutzman, Donald (Don) (CIV) <brutzman at nps.edu> wrote:>> Updates including today's discussion attached.> 
> Below, some additional information about what I want to do on GitHub,
> and about my "water + mirrors in X3D" demo:
> 
>> - Michalis will look at possibility making a mirror of our sourceforge infrastructure on Github.
> 
> Yes. I will create a mirror of the repository
> https://sourceforge.net/p/x3d/code/HEAD/tree/ , with complete history
> and contents. (Only the subdirectory "www.web3d.org" there, without
> the "legacy" subdirectory? Or everything? Your choice.)
> 
> Every commit will be synchronized automatically (unidirectional
> synchronization, SourceForge -> GitHub).
> 
>> - If that looks worthwhile, creating a new open account for X3D usage there should be free.
> 
> It would be an "organization", not an "account", to be precise. Like
> an organization "web3d-public". So you would have a repository like
> https://github.com/web3d-public/web3d/ (with contents synchronized
> from www.web3d.org SVN repoo on SourceForge).
> 
> In the first approach (without a new organization) we will simply have
> https://github.com/michaliskambi/web3d/ , because
> https://github.com/michaliskambi/ is my account on GitHub.
> 
>> Suggested additions to X3D specification:
>> ========================================================
>> ========================================================
>> https://castle-engine.io/x3d_extensions_mirror_plane.php
>> add RenderedTexture, ViewpointMirror and TextureCoordinateGenerator.mode = MIRROR-PLANE
> 
> Notes:
> 
> - "RenderedTexture" node is already considered for inclusion in X3D
> 4.0, and that's good :) See
> http://www.web3d.org/wiki/index.php/X3D_version_4.0_Development .
> 
>      "RenderedTexture" is implemented by many X3D browsers, and has
> many user-cases.
>      - CGE: https://castle-engine.io/x3d_implementation_texturing_extensions.php#section_ext_rendered_texture
> ,
>      - InstantReality:
> http://doc.instantreality.org/documentation/nodetype/RenderedTexture/
> ,
>      - Xj3D: http://xj3d.org/extensions/render_texture.html ,
>      - X3DOM: https://doc.x3dom.org/author/Texturing/RenderedTexture.html .
> 
> - The remaining features ("ViewpointMirror" and
> TextureCoordinateGenerator.mode = "MIRROR-PLANE") should probably wait
> until more X3D browsers decide to implement them. I welcome opinions
> from other browser implementors :) The description is on
> https://castle-engine.io/x3d_extensions_mirror_plane.php .
> 
>> Discussion questions - totally helpful!
>> a. How might this capability modify the X3Dv4 specifications?
>> b. How is it different from Environmental Texture Component and Texturing Component?
> 
> Using this technique to create mirrors is very similar to using
> GeneratedCubeMapTexture . In fact, my docs
> https://castle-engine.io/x3d_extensions_mirror_plane.php refer to
> GeneratedCubeMapTexture . The way of thinking (for the X3D authors)
> should be:
> 
> - Is this a (mostly) flat object? Like a mirror in your bathroom, or a
> water surface (with small waves). Then use this approach, with 2D
> RenderedTexture and ViewpointMirror. It will result in better quality
> and speed.
> 
> - Is this not a flat object? Like a very shiny teapot, sphere,
> cylinder etc. Then use GeneratedCubeMapTexture , which is using a
> cubemap, which is basically 6x 2D textures.
> 
>> c. How implementable is it by other players? Mirrors considered straightforward.
> 
> If you can implement RenderedTexture, then the rest is easy :)
> 
> In fact, look at how X3DOM does it in JavaScript:
> https://doc.x3dom.org/tutorials/lighting/mirror/index.html .
> 
>> d. Is shader support necessary?  Shader capabilities are internally necessary for all modern X3D players.
>> e. Might these techniques relate to inclusion of shadows?  Not really, separately defined and implemented.
>> f. If ViewpointMirror node only appears within RenderedTexture, might it be incorporated
>> g. Are prismatic effects possible and relevant in this context?
> 
> The X3D extensions proposed above focus on making mirrors.
> 
> More effects, like water waves or caustics, can be added using shaders
> (ComposedShader, or Castle Game Engine "compositing shaders"
> https://castle-engine.io/compositing_shaders.php extensions). I did
> not yet think about expressing them using X3D (without explicit shader
> code). If you'd like to see water with caustics, see at
> https://github.com/castle-engine/demo-models/, subdirectory
> water/caustics/ :) You can open it with view3dscene from snapshots,
> http://michalis.ii.uni.wroc.pl/view3dscene-snapshots/ .
> 
>> h. Might these techniques relate to proposed Projective Texture Mapping (PTM) capabilities?  Possibly...
>>
>> TODO where is PTM linked?  Need to get this material exposed.
>>
> 
> Google finds this :
> http://www.web3d.org/sites/default/files/presentations/Updates%20on%20Projective%20Texture%20Mapping/%285%29ProjectiveTexturemappingDoc%28kwanhee%29.pdf
> 
> Best regards,
> Michalis
> 


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 --------------
A non-text attachment was scrubbed...
Name: X3dNodeInventoryComparison.pdf
Type: application/pdf
Size: 421950 bytes
Desc: X3dNodeInventoryComparison.pdf
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20181023/8537845e/attachment-0001.pdf>


More information about the x3d-public mailing list