[x3d-public] X3D minutes 4 DEC 2020: resolving X3D4 endgame issues

Don Brutzman brutzman at nps.edu
Fri Dec 4 10:41:50 PST 2020


Attendees: Vince Marchetti, Dick Puk, Don Brutzman

Big agenda but milestone deadline is looming and all issues are familiar.  Thanks for all advance meeting preparation, we hope to proceed rapidly.

We now meet one hour later than before:  09-1000 Pacific time.

[0.1] Web3D Teleconference Information
        https://www.web3d.org/member/teleconference-information

> Please use the following link for all Web3D Consortium Meetings.
>
> Join URL: https://us02web.zoom.us/j/81634670698?pwd=a1VPeU5tN01rc21Oa3hScUlHK0Rxdz09

Prior minutes:

[0.2] [x3d-public] X3D working group minutes: scheduling, conference quicklook, specification work planning, X3D4 finalization
        https://web3d.org/pipermail/x3d-public_web3d.org/2020-November/014002.html

---

1. X3D4 topics

[1.0] X3D4
        https://www.web3D.org/x3d4

Changes to X3D4 specification on members-only github are also being refreshed daily at

[1.1] X3D4 Working Draft 3
       https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/

Corresponding pristine text in preparation for Web3D Consortium member ballot is currently being autogenerated along with a log of both corrections and remaining issues.

---

a. MIDI 2.0 and Web Midi accepted. Audio and sound changes complete, checked in.

[2] [x3d-public] X3D4 Sound Component and MIDI 2.0 review: accepted for ballot
     https://web3d.org/pipermail/x3d-public_web3d.org/2020-December/014188.html

Many thanks for many reviews and multiple endorsements.

---

b. Continued review and editing of prose for clarity in Lighting and Shape components, with focus on glTF support.

[3] Various comments reading X3Dv4 current working draft (WD3 in GitHub repository)
      https://web3d.org/pipermail/x3d-public_web3d.org/2020-December/014189.html

No problems noted but more editing work needed.  Michalis has the baton for some technical clarifications, then Dick and Don will continue working on prose phrasing to meet ISO editorial conventions.

*** TODO

Note phrasing of intensity values > 1:
=====================
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/components/lighting.html

17.3.1 X3DLightNode
X3DLightNode : X3DChildNode {

   SFFloat [in,out] ambientIntensity 1     [0,1]
or
   SFFloat [in,out] ambientIntensity 1     [0,∞] # Consider maintaining nominal upper limit 1

   SFFloat [in,out] intensity        1     [0,1]
or
   SFFloat [in,out] intensity        1     [0,∞] # Consider maintaining nominal upper limit 1

   SFColor [in,out] color            1 1 1 [0,1]
   SFBool  [in,out] global           FALSE

Nominal lighting intensity and ambientIntensity values are typically limited to a range [0,1] for consistent composability of scenes. If multiple light sources illuminate a single geometric shape, the totals for color values computed at a given point may be greater than one. Using intensity values greater than one can provide useful effects and is allowed without error.
=====================

---

c.  Gamma correction

Of note in this long-running issue:
- no single entity (hardware, software, browser, author) can yet drive to a cross-platform solution.
- stating accepted expectation (gamma correction is expected) might lead to false sense of optimism.
- still complex but some further progress might be expected with XR activity next year.

and realization that there is something we can mostly control: rendering screen to image, allowing visual checking/comparison and also unit testing.  No requirement that all browsers look exactly the same - rendering pipelines have some leeway - but at least we can test compare and keep improving.  Especially useful with addition of physically based and non-photorealistic (unlit) rendering.

[4] [x3d-public] [...] Gamma Correction for X3D4 final draft
      https://web3d.org/pipermail/x3d-public_web3d.org/2020-November/014103.html

summarized as

> There are 2 spec choices below: acknowledging norms by simply stating that gamma correction is typically expected,
> or else continuing to say nothing.

Check consensus: adding no additional statement still seems most pragmatic? So "not" say we all...

---

d. Putting default duration bounds on url refresh activity

Clearly we don't want a lot of unclosed 3D scenes and window frames becoming zombie network loads (or even Denial Of Service DOS threats).

[5] [x3d-public] X3D4 security-related field addition: X3DUrlObject refreshTimeLimit
      http://web3d.org/pipermail/x3d-public_web3d.org/2020-November/014182.html

with John Carlson's follow-on reply exploring rationale and examples further.

Recommendation: include this field (X3DUrlObject refreshTimeLimit) as a prudent security precaution.

========================
9.3.2 X3DUrlObject
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/components/networking.html#X3DUrlObject

X3DUrlObject {
    SFString [in,out] description ""
    SFBool   [in,out] load        TRUE
    SFTime   [in,out] refresh     0.0 [0,∞)
    MFString [in,out] url         []  [URI]
}
[...]
=====================

Proposed field for maximum refresh duration.  Note this is not the same as browser working its way through url list, and finding or timing out on any individual url, which is owned by the software implementation and the associated network protocol.

    SFTime   [in,out] refreshTimeLimit  3600.0  [0,infinity]

"The refreshTimeLimit field defines the maximum duration in seconds that /refresh/ activity is allowed to occur.  This field is intended to reduce potential risks associated with indefinite repetition of automatic link retrieval. Setting the /load/ field to TRUE resets the refreshTimeLimit clock. If refreshTimeLimit is exceeded then load is set to FALSE."

Alternate names might be autoRefreshTimeLimit, together with renaming /refresh/ as /autoRefresh/.

X3DUrlObject {
    SFString [in,out] description           ""
    SFBool   [in,out] load                  TRUE
    SFTime   [in,out] autoRefresh           0.0     [0,∞)
    SFTime   [in,out] autoRefreshTimeLimit  3600.0  [0,infinity]
    MFString [in,out] url                   []      [URI]
}
[...]

Absent further comment, we expect to proceed with this clarifying naming refinement.

---

e. References review requested

[6.0] [x3d-public] X3D4 endgame review: normative references and informative bibliography
        http:s//web3d.org/pipermail/x3d-public_web3d.org/2020-November/014122.html

Note several replies that are not part of the thread per se.

[6.1] X3D4 Architecture, Normative references
       https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/references.html

[6.2] X3D4 Architecture, (Informative) bibliography
       https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/bibliography.html

Continuing review welcome, thanks for several improvements received.

---

f. ExternalShape, ExternalGeometry?

ExternalShape handled by Inline.

[7.0] X3D4 9.4.2 Inline
        https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/components/networking.html#Inline

What about ExternalGeometry for glTF models, is it needed?  Not finding it in Mantis, wondering if there is no strong use case or maybe we've dropped a ball.  Wondering if this was an intentional omission or overlooked?

Presumed use case: glTF file contains a mesh (perhaps a compressed mesh) and then X3D Appearance gets applied.

Can we add this node?  If overlooked then it would have to be non-controversial and already have multiple implementations, at this late date...

As of today it seems too late for X3D4, feedback welcome.

---

g. Event Utility node clarifications

Thanks Andreas for remembering this long-overlooked issue.

[8.0] [x3d-public] X3D4 draft nearing readiness for ballot; Mantis 519 Event utilities, ignoring set_boolean false events
        https://web3d.org/pipermail/x3d-public_web3d.org/2020-November/014185.html

This applies to IntegerTrigger and TimeTrigger nodes, ignoring set_boolean FALSE improves logical understanding and simplifies event animation chains.

Absent objections (none heard) will apply this straightforward change.  No problems with prior compatibility identified as a result of this logical refinement.

Review led Dick and I to also look at related issue

[8.1] Mantis 1183, 30.4.6 IntegerTrigger - Ambiguous response when integerKey field is reset
       https://www.web3d.org/member-only/mantis/view.php?id=1183

> Suggested clarification to ensure consistent implementations and expectations: append
> "Resetting the integerKey field generates a corresponding integerKey field output event."

also related:

[8.2] Mantis 1182: 30.4.3 BooleanToggle - Ambiguous response when toggle field is reset
        https://www.web3d.org/member-only/mantis/view.php?id=1182

> "Resetting the toggle field generates a corresponding toggle field output event."

Absent objections, we plan to apply all of these related simple/sensible clarifications to X3D4 specification prose.

---

h. HTML guidelines

Draft still pending, initial entries have started.

* https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/htmlGuidelines.html

More to follow on mailing list.

---

i. Field name consistency

The possibility of synonym names for inconsistently named X3D3 fields looks to provide an excellent opportunity to regularize X3D4 scene graph for new authors, HTML5 X3D models, etc. without unintended loss of backwards compatibility.

[8.0] [x3d-public] X3D4 finalization endgame: Field naming reconciliation as synonyms
        https://web3d.org/pipermail/x3d-public_web3d.org/2020-November/014125.html

Agree with Andreas note that GeoLOD should not have a synonym field for children since accessType is different.  Others appear feasible and deserve close checking based on rationale.

This does not appear to be everyone's first preference, but does appear to be feasible (i.e. "can live with it").

Dick is preparing general prose regarding synonyms for section 4 Concepts.

Previously attached to agenda was screenshot of how specification format for affected node interfaces might change.  We reviewed this draft during meeting, details below.

[8.2] X3D4 32.4.2 CADFace
        https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/components/CADGeometry.html#CADFace

Discussed that the synonym concept adds a greater burden on implementers, they have to be checked in multiple contexts, mixing/matching within a single model file is further difficult, other reasonable concerns.  Agreed that it is a different requirement that does not exist in X3D3.

Vince can "live with" field name changing, but does not expect that implementers will ever really apply synonyms because of added complexity.

Strictly speaking, the "call for consensus" was for field name changing.  That is what people said they could live with.

There are too many implications associated with synonyms to be sorted out in short order as we try to finish. So we won't do synonyms (though nothing prevents an implementation from utilizing that design path if they like).

Last last call, revisit next week.  For those who haven't answered "can I live with it" a response is welcome.

---

2. Specification release timing.

Group discussion.  Looks like we need one more week.

Additional items welcome.  Are any other finals steps needed to be ready to ship X3D4 for Web3D Consortium member ballot and Board of Directors approval?  We discussed details. Appears like we simply need to finish, all preparations for Web3D Consortium are in place.

[9] Web3D Standards Adoption Process
     https://www.web3d.org/standards/adoption-process

---

Having too much fun with X3D4 maybe... finish line almost here.

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




More information about the x3d-public mailing list