[x3d-public] Viewpoint (clipBoundary); missing from X3DUOM view on iPhone via google drive
John Carlson
yottzumm at gmail.com
Sun Jan 4 12:52:18 PST 2026
Holger’s example here has a rich use of clipBoundary!
https://github.com/create3000/Library/blob/main/Tests/Components/Layering/Viewport.x3d
Hopefully, you’ll get a donation!
John
On Sun, Jan 4, 2026 at 12:14 PM Don Brutzman <don.brutzman at gmail.com> wrote:
> Appreciate your offer of a sophisticated example, but that is not what the
> archives and implementer community need right now.
>
> In addition to LayerSet Layer Viewport, you have prototypes (which overly
> complicate a simple test) and Script code (which is not well supported by
> all X3D browsers).
>
> ComposedCubeMapTexture and ComposedShader and ShaderPart add further
> complications that are not widely supported.
>
> The request remains, for anyone: simple example demonstrating Viewport
> (perhaps with Layer LayerSet and no other more-complex nodes).
>
> I recently sent everyone a long explanation of why simple examples are
> important, especially for issue requests.
>
> - [x3d-public] Request for X3D encoding comment output from X3DPSAIL
> -
> https://web3d.org/pipermail/x3d-public_web3d.org/2025-December/022165.html
>
> Hope this helps.
>
> all the best, Don
> --
> X3D Graphics, Maritime Robotics, Distributed Simulation
> Relative Motion Consulting https://RelativeMotion.info
>
>
> On Sun, Jan 4, 2026 at 9:48 AM John Carlson <yottzumm at gmail.com> wrote:
>
>> You can use this example of clipBoundary, in the archives, if you replace
>> the shaders and images:
>>
>>
>> https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/data/bumpyx_itesliders.x3d
>>
>> I was working on a version with different shaders and no images. The
>> sliders didn’t work in FreeWRL, so I shelved it. It’s available on this
>> page, and you can use in the archives.
>>
>> https://coderextreme.net/X3DJSONLD/src/main/html/bumpyrefs.html
>>
>> I don’t know if the sliders work on these as I am on my phone. Try
>> dragging the grey/white letters next to the = sign with the mouse.
>>
>> Again, much of this is Christoph Valentin and Doug Sanden’s work, with a
>> new face!
>>
>> John
>>
>> On Sun, Jan 4, 2026 at 10:42 AM Don Brutzman <don.brutzman at gmail.com>
>> wrote:
>>
>>> John, we do not have a simple example demonstrating proper use of the
>>> Viewport node in the X3D Example Archives, and so it is difficult to test
>>> what you are reporting.
>>>
>>> all the best, Don
>>> --
>>> X3D Graphics, Maritime Robotics, Distributed Simulation
>>> Relative Motion Consulting https://RelativeMotion.info
>>>
>>>
>>> On Sun, Jan 4, 2026 at 8:31 AM John Carlson via x3d-public <
>>> x3d-public at web3d.org> wrote:
>>>
>>>> One of the gotchas in adding strict mode to Ajv JSON schema validation
>>>> is Viewport.clipBoundary:
>>>>
>>>> Viewport : X3DViewportNode, X3DBoundedObject {
>>>> MFNode [in] addChildren [X3DChildNode]
>>>> MFNode [in] removeChildren [X3DChildNode]
>>>> MFNode [in,out] children [] [X3DChildNode]
>>>> MFFloat [in,out] clipBoundary 0 1 0 1 [0,1]
>>>> SFBool [in,out] bboxDisplay FALSE
>>>> SFNode [in,out] metadata NULL [X3DMetadataObject]
>>>> SFBool [in,out] visible TRUE
>>>> SFVec3f [] bboxCenter 0 0 0 (-∞,∞)
>>>> SFVec3f [] bboxSize -1 -1 -1 [0,∞) or -1 -1 -1
>>>> }
>>>>
>>>> I don’t recall if this was discussed on the mailing list before.
>>>>
>>>> The error reported was:
>>>>
>>>> strict mode: "prefixItems" is 4-tuple, but minItems or maxItems/items are not specified or different at path "#/oneOf/1/properties/%40clipBoundary"
>>>>
>>>>
>>>> I don’t know if # prefixItems = 4 is appropriate here, since
>>>> clipBoundary is an MFFloat. I don’t know how to set a default for MFFloat
>>>> without prefixItems. I could set minItems = 0
>>>>
>>>> The JSON schema says:
>>>>
>>>> "@clipBoundary": {
>>>> "$comment": "MFFloat inputOutput",
>>>> "type": "array",
>>>> "prefixItems": [
>>>> {
>>>> "default": 0,
>>>> "maximum": 1,
>>>> "minimum": 0,
>>>> "type": "number"
>>>> },
>>>> {
>>>> "default": 1,
>>>> "maximum": 1,
>>>> "minimum": 0,
>>>> "type": "number"
>>>> },
>>>> {
>>>> "default": 0,
>>>> "maximum": 1,
>>>> "minimum": 0,
>>>> "type": "number"
>>>> },
>>>> {
>>>> "default": 1,
>>>> "maximum": 1,
>>>> "minimum": 0,
>>>> "type": "number"
>>>> }
>>>> ],
>>>> "items": {
>>>> "maximum": 1,
>>>> "minimum": 0,
>>>> "type": "number"
>>>> }
>>>> },
>>>>
>>>>
>>>> X3DUOM 4.0 says:
>>>>
>>>> ConcreteNode name="Viewport">
>>>> <InterfaceDefinition specificationUrl="
>>>> https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layering.html#Viewport
>>>> "
>>>> appinfo="Viewport is a Grouping node that can contain most nodes.">
>>>> <componentInfo name="Layering" level="1"/>
>>>> <Inheritance baseType="X3DViewportNode"/>
>>>> [snip]
>>>> <field name="clipBoundary"
>>>> type="MFFloat"
>>>> accessType="inputOutput"
>>>> default="0 1 0 1"
>>>> minInclusive="0"
>>>> maxInclusive="1"
>>>> description="clipBoundary is specified in fractions of the normal
>>>> render surface in the sequence left/right/bottom/top."/>
>>>> [snip]
>>>>
>>>> An addition, such as min/max length, if needed, would be a welcome
>>>> addition to X3DUOM.
>>>>
>>>> Also X3DUOM 4.0 XML ConcreteNode Viewport wasn’t viewable on my iPhone
>>>> in Google drive as downloaded from web3d.org (there was no way to view
>>>> the full XML in safari, chrome or on sourceforge or drive). I
>>>> probably could have downloaded from sourceforge.
>>>>
>>>> So I used my old copy on GitHub.
>>>>
>>>> John
>>>>
>>>>
>>>> _______________________________________________
>>>> x3d-public mailing list
>>>> x3d-public at web3d.org
>>>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20260104/ddfdd013/attachment.html>
More information about the x3d-public
mailing list