diff --git a/build.xml b/build.xml
index 93ae9068183029f1c9577dc76bde015ec5ad6b30..48544f9ee30ad987def1c518cc7a3894db9f87a0 100644
--- a/build.xml
+++ b/build.xml
@@ -106,16 +106,15 @@ POSSIBILITY OF SUCH DAMAGE.
 
     <!-- https://stackoverflow.com/questions/919692/how-to-execute-xslt-2-0-with-ant -->
     <!-- https://sourceforge.net/projects/saxon/files/Saxon-HE jar download handled in X3DJSAIL build -->
-    <!-- https://sourceforge.net/projects/saxon/files/Saxon-HE/11/Java/ -->
     <!-- https://www.saxonica.com/documentation10/#!about/gettingstarted/gettingstartedjava -->
     <!-- SaxonHE 11 (java.lang.NoClassDefFoundError: org/xmlresolver/Resolver) https://saxonica.plan.io/boards/3/topics/8478?r=8480 -->
-    <property name="saxon.dir"        location="lib" description="relative path from archive directory"/>
-    <property name="saxon.jar"           value="saxon-he-11.4.jar"/><!-- previously saxon-he-11.3.jar saxon-he-11.2.jar saxon-he-10.6.jar saxon9he.jar -->
-    <property name="xmlresolver.jar"     value="xmlresolver-4.4.3.jar"/><!-- required with saxon-he-11+.jar -->
-    <property name="saxon.classpath" value="${saxon.dir}/${saxon.jar};.${saxon.dir}/${xmlresolver.jar};."/>
+    <property name="saxon.dir"        location="lib" description="relative path from stylesheets directory"/>
+    <property name="saxon.jar"           value="saxon-he-12.1.jar"/><!-- previously saxon-he-11.4.jarsaxon-he-11.3.jar saxon-he-11.2.jar saxon-he-10.6.jar saxon9he.jar -->
+    <property name="xmlresolver.jar"     value="xmlresolver-5.1.1.jar"/><!-- required with saxon-he-11+.jar -->
+    <property name="saxon.classpath"     value="${saxon.dir}/${saxon.jar};.${saxon.dir}/${xmlresolver.jar};."/>
 
     <!-- compiled stylesheets are no longer supported as of saxon 9.4 -->
-<!--<property name="saxononicaSA.dir" location="C:/java/saxonsa9-1-0-6j"/> not actively used -->
+    <!--<property name="saxononicaSA.dir" location="C:/java/saxonsa9-1-0-6j"/> not actively used -->
 
     <property name="c14n.dir"            value="../../../tools/canonical/dist/lib"/>
     <property name="c14n.jar"            value="X3dC14n.jar"/>
@@ -275,13 +274,14 @@ POSSIBILITY OF SUCH DAMAGE.
     <!-- all Xj3D.nps jars need to be in same directory for fileset to work properly. -->
     <!-- Prerequisite:  run build.xml 'dist' or 'all' target to get the .jars built and in the right place -->
     <!-- TODO in order for server-side jenkins to also work, they are retrieved to same directory -->
-    <property name="xj3d.dir"            location="C:/x-nps-gitlab/xj3d"/>        <!-- formerly C:/xj3d-code/branches/NPS, C:/j3d-code/xj3d, C:/xj3d-code/xj3d -->
-    <property name="xj3d.dir.jars"       location="${xj3d.dir}/jars"/>            <!-- C:/j3d-code/xj3d/jars -->
-    <property name="xj3d.3rdparty.jar"   value="xj3d-2.3-3rdparty-nps.jar"/>      <!-- C:/j3d-code/xj3d/jars -->
-    <property name="xj3d.jar"            value="xj3d-2.3-nps.jar"/>               <!-- C:/j3d-code/xj3d/jars -->
-    <property name="xj3d.browser.jar"    value="xj3d.browser_2.3.0-nps.jar"/>     <!-- C:/j3d-code/xj3d/jars -->
-    <property name="xj3d.cadfilter.jar"  value="xj3d.cadfilter_2.3.0-nps.jar"/>   <!-- C:/j3d-code/xj3d/jars -->
-    <property name="xj3d.replica.jar"    value="xj3d.replica_2.3.0-nps.jar"/>     <!-- C:/j3d-code/xj3d/jars -->
+    <property name="xj3d.dir"            location="C:\x3d-nps-gitlab\xj3d"/>      <!-- formerly C:/xj3d-code/branches/NPS, C:/j3d-code/xj3d, C:/xj3d-code/xj3d -->
+    <property name="xj3d.dir.jars"       location="${xj3d.dir}/jars"/>            <!-- C:\x3d-nps-gitlab\xj3d\jars -->
+    <property name="xj3d.3rdparty.jar"   value="xj3d-2.3-3rdparty-nps.jar"/>      <!-- C:\x3d-nps-gitlab\xj3d\jars -->
+    <property name="xj3d.jar"            value="xj3d-2.3-nps.jar"/>               <!-- C:\x3d-nps-gitlab\xj3d\jars -->
+    <property name="xj3d.browser.jar"    value="xj3d.browser_2.3.0-nps.jar"/>     <!-- C:\x3d-nps-gitlab\xj3d\jars -->
+    <property name="xj3d.cadfilter.jar"  value="xj3d.cadfilter_2.3.0-nps.jar"/>   <!-- C:\x3d-nps-gitlab\xj3d\jars -->
+    <property name="xj3d.replica.jar"    value="xj3d.replica_2.3.0-nps.jar"/>     <!-- C:\x3d-nps-gitlab\xj3d\jars -->
+    <property name="aviatrix.jar"        value="aviatrix3d-all_3.1.1-nps.jar"/>   <!-- C:\x3d-nps-gitlab\xj3d\lib -->
     <!-- see HelloWorld task for path diagnostic messages -->
     <fileset dir="${xj3d.dir.jars}" id="xj3d.jars.all">
         <include name="${xj3d.jar}"/>
@@ -291,6 +291,7 @@ POSSIBILITY OF SUCH DAMAGE.
         <include name="${xj3d.3rdparty.jar}"/>
         <include name="jhall.jar"/><!-- javahelp -->
         <include name="jogamp-fat.jar"/><!-- includes all native OS dlls, etc. -->
+        <include name="${aviatrix3d.jar}"/>
     </fileset>
 
     <!-- site to download latest xj3d jars -->
@@ -2982,8 +2983,8 @@ ignoreSetupDownloadErrors=true
                                 <fileset refid="xj3d.jars.all"/>
                             </classpath>
                             <arg value="Identity"/>
-                            <arg value="${relative.path1}/${relative.path2}/${name.short}.x3d"/>
-                            <arg value="${relative.path1}/${relative.path2}/${name.short}.x3db"/>
+                            <arg value="${archive.path}/${relative.path1}/${relative.path2}/${name.short}.x3d"/>
+                            <arg value="${archive.path}/${relative.path1}/${relative.path2}/${name.short}.x3db"/>
                         </java>
                     </sequential>
                 </outofdate>
@@ -3202,7 +3203,7 @@ TODO:  fix Xj3D from launching window, instead perform offline rendering while h
     <target name="processScenes.captureImages"
           description="Utilize Xj3D's Replica class to create thumbnails and viewpoint images for each scene for use as icons, triggered by html timestamp, then updates html">
         <echo message="Utilize Xj3D's Replica class to create thumbnails and viewpoint images for each scene for use as icons, triggered by html timestamp, then updates html"/>
-        <echo message="Optional prerequisite: processScenes.touch.X3dModels or clean.htmlPrettyPrintPages prior to reshooting all images"/>
+        <echo message="Optional prerequisite to force regeneration of all images: processScenes.touch.X3dModels or clean.htmlPrettyPrintPages prior to reshooting all images"/>
         <echo message="Rework usually minimized by only regenerating images for each triggering .html change as needed."/>
         <echo message="processScenes.captureImages depends on local Xj3D installation available, current directory xj3d.dir=${xj3d.dir}"/>
         <echo message="   -Djava.library.path=${xj3d.dir.jars}/../${native.library.path}"/>
@@ -3276,9 +3277,9 @@ TODO:  fix Xj3D from launching window, instead perform offline rendering while h
                         <echo>============================================================================================================ </echo>
                         <echo>Xj3D Replica model loading and generation of Thumbnail (icon) image:</echo>
                         <echo>${archive.path}/${relative.path1}/${relative.path2}/${name.short}.x3d</echo>
-                        <var name="outfilePath" value="${relative.path1}/${relative.path2}/_thumbnails/${name.short}Thumbnail.png"/>
+                        <var name="outfilePath" value="${archive.path}/${relative.path1}/${relative.path2}/_thumbnails/${name.short}Thumbnail.png"/>
                         <echo>${archive.path}/${outfilePath}</echo>
-                        <mkdir                    dir="${relative.path1}/${relative.path2}/_thumbnails"/>
+                        <mkdir                    dir="${archive.path}/${relative.path1}/${relative.path2}/_thumbnails"/>
                         <!-- copy default thumbnail image as destination file to indicate if failure occurs and avoid repeated hangups -->
                         <copy file="../images/Xj3dRenderCaptureFailed.png" tofile="${outfilePath}" overwrite="true" verbose="false"/>
 
@@ -3301,7 +3302,7 @@ TODO:  fix Xj3D from launching window, instead perform offline rendering while h
                             <arg value="-threepointlight"/>
                             <arg value="-timeout"/><arg value="10000"/><!-- ms -->
                             <arg value="--illegal-access=warn"/><!-- enable warnings of further illegal reflective access operations -->
-                            <arg value="${relative.path1}/${relative.path2}/${name.short}.x3d"/> <!-- sceneFile -->
+                            <arg value="${archive.path}/${relative.path1}/${relative.path2}/${name.short}.x3d"/> <!-- sceneFile -->
                         </java>
                         <!-- process individual files here.  show full path to facilitate user loading, editing of reported files -->
                         <echo>- - - - - - - - - - - - - - - - - - - -</echo>
@@ -3337,8 +3338,8 @@ TODO:  fix Xj3D from launching window, instead perform offline rendering while h
                             <arg value="--illegal-access=warn"/><!-- enable warnings of further illegal reflective access operations -->
                        <!-- <arg value="-view"/><arg value="ICON_VIEWPOINT"/> -->
                             <arg value="-filePrefix"/><arg value="${name.short}"/>
-                            <arg value="-outdir"/><arg value="${relative.path1}/${relative.path2}/_viewpoints"/> <!-- output directory -->
-                            <arg value="${relative.path1}/${relative.path2}/${name.short}.x3d"/>
+                            <arg value="-outdir"/><arg value="${archive.path}/${relative.path1}/${relative.path2}/_viewpoints"/> <!-- output directory -->
+                            <arg                       value="${archive.path}/${relative.path1}/${relative.path2}/${name.short}.x3d"/>
                         </java>
 
 <!-- reference for Xj3D screenshot from Xj3D NPS branch build.xml and build.properties invocations:
@@ -3652,19 +3653,24 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
                 <echo message="SavageLinks found"/>
             </equals>
         </if>
+        <copy file="../index.Archives.local.html" todir="." verbose="true"/>
+        <copy file="../README.X3dExamplesArchives.txt"           todir="." verbose="true"/>
         -->
         <zip destfile="${zipFileName}">
-            <zipfileset dir="." prefix="">
-                <include name="README.txt"/>
+            <!-- zipfileset dir is relative location, prefix indicates destination within the zip file -->
+            <zipfileset dir=".." prefix="">
+                <!-- these files are visible at top of distributed .zip and identical for each archive, overwriting prior entries on user system -->
+                <include name="index.Archives.local.html"/>
+                <include name="README.X3dExamplesArchives.txt"/>
             </zipfileset>
-            <zipfileset dir="../../.." prefix="www.web3d.org">
-                <include name="../README.txt"/>
+            <zipfileset dir="." prefix="www.web3d.org">
+                <include name="license.html"/>
+                <include name="license.txt"/>
             </zipfileset>
             <zipfileset dir="../.." prefix="www.web3d.org/x3d/content/">
-                <include name="icons/*.*"/>
-                <include name="images/x3d2-s.gif"/>
-                <include name="images/web3d_logo2.png"/>
-                <include name="${CreateContentCatalog.dir}/ContentCatalog.dtd"/>
+                <include name="images/*.png"/>
+                <exclude name="${CreateContentCatalog.dir}/ContentCatalog.dtd"/>
+                <exclude name="icons/*.*"/>
                 <exclude name="**/*.nrrd"/>
                 <exclude name="CVS/*"/>
                 <exclude name=".svn/*"/>
@@ -3684,6 +3690,7 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
                 <exclude name="hide"/>
                 <exclude name="**/hide"/>
                 <exclude name="**/hide/*"/>
+                <exclude name="**/*.hide"/>
                 <exclude name="jenkins"/>
                 <exclude name="nbproject/*"/>
                 <exclude name="**/nbproject/*"/>
@@ -3693,37 +3700,52 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
                 <exclude name="**/*.bak"/>
                 <exclude name="**/Thumbs.db"/>
             </zipfileset>
-            <zipfileset dir="../../../../.." prefix="">
-                <include name="index${archive.name}.localRedirect.html"/>
-            </zipfileset>
             <zipfileset dir=".." prefix="www.web3d.org/x3d/content/examples/">
+                <!-- these include statements must precede following zipfileset or else will get excluded -->
+                <include name="index${archive.name}.local.html"/>
+                <!-- note unique README*.txt names in each archive -->
+                <include name="README${archive.name}.txt"/>
                 <include name="images/*.*"/>
-                <include name="*.xml"/>
-                <include name="Makefile"/>
-                <include name="*.html"/>
-                <include name="license.*"/>
-                <include name="Hello*.*"/>
-                <include name="earth-topo*.*"/>
-                <include name="newScene.*"/>
-                <include name="newHtmlPageWithX3dObject.html"/>
-                <include name="newEcmascript.js"/>
-                <include name="newX3dScript.java"/>
-                <include name="*.x3d"/>
-                <include name="*.xml"/>
-                <include name="*.html"/>
-                <include name="*.wrl"/>
-                <include name="*.x3dv"/>
-                <include name="*.json"/>
-                <include name="*.java"/>
-                <include name="*.gif"/>
-                <include name="*.jpg"/>
-                <include name="*.png"/>
-                <include name="*.txt"/>
-                <include name="*.pdf"/>
-                <include name="*.ppt"/>
-                <include name="_svg/*.svg"/>
-                <exclude name="index*Redirect.html"/>
-                <exclude name="**/access.properties"/>
+                <include name="X3dResources*.html"/>
+                <include name="X3dSceneAuthoringHints*.html"/>
+            </zipfileset>
+            <!--
+            <zipfileset dir=".." prefix="www.web3d.org/x3d/content/examples/">
+                <exclude name="*.x3d"/>
+                <exclude name="*.xml"/>
+                <exclude name="*.html"/>
+                <exclude name="*.wrl"/>
+                <exclude name="*.x3dv"/>
+                <exclude name="*.json"/>
+                <exclude name="*.java"/>
+                <exclude name="*.gif"/>
+                <exclude name="*.jpg"/>
+                <exclude name="*.png"/>
+                <exclude name="*.txt"/>
+                <exclude name="*.pdf"/>
+                <exclude name="*.ppt"/>
+                <exclude name="_svg/*.svg"/>
+                <exclude name="*.html"/>
+                <exclude name="license.*"/>
+                <exclude name="Hello*.*"/>
+                <exclude name="earth-topo*.*"/>
+                <exclude name="newScene.*"/>
+                <exclude name="newHtmlPageWithX3dObject.html"/>
+                <exclude name="newEcmascript.js"/>
+                <exclude name="newX3dScript.java"/>
+                <exclude name="**/access.properties*"/>
+                <exclude name="images/*.*"/>
+                <exclude name="build*.txt"/>
+                <exclude name="build.xml"/>
+                <exclude name="buildExamplesTemplate.xml"/>
+                <exclude name="BrowserBuglist.txt"/>
+                <exclude name="earth-topo.*"/>
+                <exclude name="HelloWorld*.*"/>
+                <exclude name="newScene*.*"/>
+                <exclude name="index*.redirect.html"/>
+                <exclude name="README.X3dExamplesArchives.txt"/>
+                <exclude name="_*.*"/>
+                <exclude name="Makefile"/>
                 <exclude name="**/*.nrrd"/>
                 <exclude name="CVS/*"/>
                 <exclude name=".svn/*"/>
@@ -3731,7 +3753,7 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
                 <exclude name="*.bak"/>
                 <exclude name="Thumbs.db"/>
                 <exclude name="*.$$$$$$"/>
-                <exclude name="**/*.$$$$$$"/><!-- escape $ as $$ -->
+                <exclude name="**/*.$$$$$$"/><!- - escape $ as $$ - ->
                 <exclude name="_archive/*"/>
                 <exclude name="**/_archive"/>
                 <exclude name="**/_archive/*"/>
@@ -3750,7 +3772,8 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
                 <exclude name="**/*.bak"/>
                 <exclude name="**/Thumbs.db"/>
             </zipfileset>
-            <!-- windows shortcuts for this archive, no longer included
+            -->
+            <!-- windows shortcuts for this archive, no longer included since html redirect files provided instead
             <zipfileset dir="../../../../..">
                 <include name="Documents and Settings/All Users/Start Menu/Programs/X3D Extensible 3D Graphics/X3D Examples/${archive.name} examples.lnk"/>
                 <include name="WINDOWS/Start Menu/Programs/X3D Extensible 3D Graphics/X3D Examples/${archive.name} examples.lnk"/>
@@ -3759,9 +3782,7 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
             </zipfileset>
             -->
             <zipfileset dir="." prefix="www.web3d.org/x3d/content/examples/${archive.name}/">
-                <include name="*.xml"/>
                 <include name="*.spp"/>
-                <include name="Makefile"/>
                 <include name="*.html"/>
                 <include name="license.*"/>
                 <include name="Hello*.*"/>
@@ -3813,9 +3834,13 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
                 <include   name="*/_svg/*.svg"/>
                 <include name="*/*/_svg/*.svg"/>
                 <exclude name="**/*.nrrd"/>
-                <exclude name="**/access.properties"/>
+                <exclude name="**/access.properties*"/>
+                <exclude name="Makefile"/>
                 <exclude name="_new*.*"/>
                 <exclude name="*.bak"/>
+                <exclude name="*.bat"/>
+                <exclude name="*.sh"/>
+                <exclude name="*log.txt"/>
                 <exclude name="Thumbs.db"/>
                 <exclude name="*.$$$$$$"/>
                 <exclude name="**/*.$$$$$$"/><!-- escape $ as $$ -->
@@ -3845,6 +3870,9 @@ app.replica.args=-mode scene -mipmaps -antialias 8 -anisotropicDegree 16 -verbos
                 <exclude name="SanCarlosCathedral/photographs/"/>
             </zipfileset>
         </zip>
+        <!-- delete just-copied version
+        <delete file="index.Archives.local.html"/>
+        <delete file="README.X3dExamplesArchives.txt"/> -->
         <antcall target="zip.checksum"/>
         <length property="archive.zip.length" file="${zipFileName}"/>
         <echo>Building ${zipFileName} (${archive.zip.length} bytes) complete</echo>