<div dir="auto">I recommend Holger, Christoph or Doug’s examples as they are easier than mine. I think that Christoph uses a slider to adjust the scale of a Sphere instead of a Script or shader. We will have to remove DIS.</div><div dir="auto"><br></div><div dir="auto">The problem becomes that the scenes cease to be usable to us if we do that.</div><div dir="auto"><br></div><div dir="auto">So it might be better if people who are employed or studying to do such things, not necessarily hobbyists who do it for the joy of it.</div><div dir="auto"><br></div><div dir="auto">Anyone can take inspiration from our examples and develop similar ones, just like I did.</div><div dir="auto"><br></div><div dir="auto">Perhaps Holger might have something to donate which shows the components in question.</div><div dir="auto"><br></div><div dir="auto"><div style="font-size:inherit"><a href="https://github.com/create3000/Library/tree/main/Tests/Components/Layering" style="font-size:inherit">https://github.com/create3000/Library/tree/main/Tests/Components/Layering</a></div><br></div><div dir="auto"><div style="font-size:inherit"><a href="https://github.com/create3000/Library/tree/main/Tests/Components/Layout" style="font-size:inherit">https://github.com/create3000/Library/tree/main/Tests/Components/Layout</a></div><div style="font-size:inherit" dir="auto"><br></div><div style="font-size:inherit" dir="auto">There appears to be an MIT License on the files.</div><br></div><div dir="auto"><br></div><div dir="auto">John </div><div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sun, Jan 4, 2026 at 12:14 PM Don Brutzman <<a href="mailto:don.brutzman@gmail.com">don.brutzman@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="ltr"><div>Appreciate your offer of a sophisticated example, but that is not what the archives and implementer community need right now.</div><div><br></div><div>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).</div><div><br></div><div>ComposedCubeMapTexture and ComposedShader and ShaderPart add further complications that are not widely supported.</div><div><br></div><div>The request remains, for anyone: simple example demonstrating Viewport (perhaps with Layer LayerSet and no other more-complex nodes).</div><div><br>I recently sent everyone a long explanation of why simple examples are important, especially for issue requests.</div><div><ul><li>[x3d-public] Request for X3D encoding comment output from X3DPSAIL</li><li><a href="https://web3d.org/pipermail/x3d-public_web3d.org/2025-December/022165.html" target="_blank">https://web3d.org/pipermail/x3d-public_web3d.org/2025-December/022165.html</a></li></ul></div><div>Hope this helps.</div></div><div dir="ltr"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace" style="font-family:monospace;color:rgb(34,34,34)"><br></font></div><div style="color:rgb(34,34,34)"><font face="monospace" style="font-family:monospace;color:rgb(34,34,34)">all the best, Don</font></div><div style="color:rgb(34,34,34)"><font face="monospace" style="font-family:monospace;color:rgb(34,34,34)">-- </font></div><div style="color:rgb(34,34,34)"><font face="monospace" style="font-family:monospace;color:rgb(34,34,34)">X3D Graphics, Maritime Robotics, Distributed Simulation</font></div><div style="color:rgb(34,34,34)"><font face="monospace" style="font-family:monospace;color:rgb(34,34,34)">Relative Motion Consulting <a href="https://RelativeMotion.info" target="_blank" style="font-family:monospace">https://RelativeMotion.info</a></font></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 4, 2026 at 9:48 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="auto">You can use this example of clipBoundary, in the archives, if you replace the shaders and images:</div><div dir="auto"><br></div><div dir="auto"><div style="font-size:inherit"><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/data/bumpyx_itesliders.x3d" style="font-size:inherit" target="_blank">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/data/bumpyx_itesliders.x3d</a></div><br></div><div dir="auto">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.</div><div dir="auto"><br></div><div dir="auto"></div><div style="font-size:inherit" dir="auto"><a href="https://coderextreme.net/X3DJSONLD/src/main/html/bumpyrefs.html" style="font-size:inherit" target="_blank">https://coderextreme.net/X3DJSONLD/src/main/html/bumpyrefs.html</a></div><div style="font-size:inherit" dir="auto"><br></div><div style="font-size:inherit" dir="auto">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.</div><div style="font-size:inherit" dir="auto"><br></div><div style="font-size:inherit" dir="auto">Again, much of this is Christoph Valentin and Doug Sanden’s work, with a new face!</div><div dir="auto"></div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 4, 2026 at 10:42 AM Don Brutzman <<a href="mailto:don.brutzman@gmail.com" target="_blank">don.brutzman@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="ltr"><div>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.</div><div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="color:rgb(34,34,34)"><font face="monospace" style="font-family:monospace;color:rgb(34,34,34)"><br></font></div><div style="color:rgb(34,34,34)"><font face="monospace" style="font-family:monospace;color:rgb(34,34,34)">all the best, Don</font></div><div style="color:rgb(34,34,34)"><font face="monospace" style="font-family:monospace;color:rgb(34,34,34)">-- </font></div><div style="color:rgb(34,34,34)"><font face="monospace" style="font-family:monospace;color:rgb(34,34,34)">X3D Graphics, Maritime Robotics, Distributed Simulation</font></div><div style="color:rgb(34,34,34)"><font face="monospace" style="font-family:monospace;color:rgb(34,34,34)">Relative Motion Consulting <a href="https://RelativeMotion.info" style="font-family:monospace" target="_blank">https://RelativeMotion.info</a></font></div></div></div></div><br></div><br><div class="gmail_quote"></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 4, 2026 at 8:31 AM John Carlson via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>> wrote:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"></blockquote></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div><div dir="auto"><div dir="auto">One of the gotchas in adding strict mode to Ajv JSON schema validation is Viewport.clipBoundary:</div><div dir="auto"><br></div><div dir="auto"><div style="font-size:inherit"><pre style="font-family:monospace;font-size:inherit;margin-left:25px;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;word-spacing:0px;text-decoration:none;background-color:rgb(255,255,255);color:rgb(0,0,0)">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
}</pre></div>I don’t recall if this was discussed on the mailing list before.</div><div dir="auto"><br></div><div dir="auto">The error reported was:</div></div><div dir="auto"><br></div><div dir="auto"><div style="font-size:inherit"><pre style="white-space:pre-wrap;font-size:inherit;font-style:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;word-spacing:1px;text-decoration:none;font-family:monospace;color:rgb(49,49,49)"><code style="font-size:1rem;font-family:monospace">strict mode: "prefixItems" is 4-tuple, but minItems or maxItems/items are not specified or different at path "#/oneOf/1/properties/%40clipBoundary"</code></pre></div><br></div><div dir="auto">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</div><div dir="auto"><br></div><div dir="auto">The JSON schema says: </div><div dir="auto"><br></div><div dir="auto"><div style="font-size:inherit"> "@clipBoundary": {<br style="font-size:inherit"> "$comment": "MFFloat inputOutput",<br style="font-size:inherit"> "type": "array",<br style="font-size:inherit"> "prefixItems": [<br style="font-size:inherit"> {<br style="font-size:inherit"> "default": 0,<br style="font-size:inherit"> "maximum": 1,<br style="font-size:inherit"> "minimum": 0,<br style="font-size:inherit"> "type": "number"<br style="font-size:inherit"> },<br style="font-size:inherit"> {<br style="font-size:inherit"> "default": 1,<br style="font-size:inherit"> "maximum": 1,<br style="font-size:inherit"> "minimum": 0,<br style="font-size:inherit"> "type": "number"<br style="font-size:inherit"> },<br style="font-size:inherit"> {<br style="font-size:inherit"> "default": 0,<br style="font-size:inherit"> "maximum": 1,<br style="font-size:inherit"> "minimum": 0,<br style="font-size:inherit"> "type": "number"<br style="font-size:inherit"> },<br style="font-size:inherit"> {<br style="font-size:inherit"> "default": 1,<br style="font-size:inherit"> "maximum": 1,<br style="font-size:inherit"> "minimum": 0,<br style="font-size:inherit"> "type": "number"<br style="font-size:inherit"> }<br style="font-size:inherit"> ],<br style="font-size:inherit"> "items": {<br style="font-size:inherit"> "maximum": 1,<br style="font-size:inherit"> "minimum": 0,<br style="font-size:inherit"> "type": "number"<br style="font-size:inherit"> }<br style="font-size:inherit"> },</div><br></div><div dir="auto"><span><br></span></div><div dir="auto"><span>X3DUOM 4.0 says: </span></div><div dir="auto"><div dir="auto"><br></div><div><div style="font-size:inherit" dir="auto">ConcreteNode name="Viewport"><br style="font-size:inherit"> <InterfaceDefinition specificationUrl="<a href="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layering.html#Viewport" target="_blank">https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layering.html#Viewport</a>"<br style="font-size:inherit"> appinfo="Viewport is a Grouping node that can contain most nodes."><br style="font-size:inherit"> <componentInfo name="Layering" level="1"/><br style="font-size:inherit"> <Inheritance baseType="X3DViewportNode"/><br style="font-size:inherit">[snip]<br style="font-size:inherit"> <field name="clipBoundary"<br style="font-size:inherit"> type="MFFloat"<br style="font-size:inherit"> accessType="inputOutput"<br style="font-size:inherit"> default="0 1 0 1"<br style="font-size:inherit"> minInclusive="0"<br style="font-size:inherit"> maxInclusive="1"<br style="font-size:inherit"> description="clipBoundary is specified in fractions of the normal render surface in the sequence left/right/bottom/top."/><br style="font-size:inherit">[snip]</div><div style="font-size:inherit" dir="auto"><br></div><div style="font-size:inherit" dir="auto">An addition, such as min/max length, if needed, would be a welcome addition to X3DUOM.</div><div style="font-size:inherit" dir="auto"><br></div><div style="font-size:inherit" dir="auto">Also X3DUOM 4.0 XML ConcreteNode Viewport wasn’t viewable on my iPhone in Google drive as downloaded from <a href="http://web3d.org" target="_blank">web3d.org</a> (there was no way to view the full XML in safari, chrome or on sourceforge or drive)<span style="font-size:inherit">. I probably could have downloaded from sourceforge.</span></div><div style="font-size:inherit" dir="auto"><br></div><div style="font-size:inherit" dir="auto">So I used my old copy on GitHub.</div><div style="font-size:inherit" dir="auto"><br></div><div style="font-size:inherit" dir="auto">John</div><div style="font-size:inherit" dir="auto"><br></div><div style="font-size:inherit" dir="auto"><br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
</blockquote></div></div>
</blockquote></div></div>
</div>
</div></blockquote></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div>
</blockquote></div></div>
</blockquote></div>
</blockquote></div></div>