I plan for TESAI (TypeScript/ECMAScript) SAI class hierarchy to have the following features:<div dir="auto"><br></div><div dir="auto">Importer/Exporter interface pattern.  Pass a JSON snippet to Importer, then pass Importer to  scenegraph constructors, breaking up the JSON into smaller and smaller pieces.   This should allow for any Importer: XML, JSON, VRML, etc.  JSONImporter will be the first implementation.</div><div dir="auto"><br></div><div dir="auto">Also an Exporter can be passed to scenegraph export methods.  An OpenUSD Exporter is planned.  </div><div dir="auto"><br></div><div dir="auto">Reference: </div><div dir="auto"><br></div><div dir="auto"><div><a href="https://www.amazon.com/Holub-Patterns-Learning-Looking-Professionals/dp/159059388X">https://www.amazon.com/Holub-Patterns-Learning-Looking-Professionals/dp/159059388X</a></div><br></div><div dir="auto"><br></div><div dir="auto">This doesn’t mean I will ignore SAI X3D creation methods.  In particular, JS scenegraph construction methods in X_ITE and X3DOM will likely be supported.  createX3D…. and import…</div><div dir="auto"><br></div><div dir="auto">This should be fun, and provide adequate encapsulation.</div><div dir="auto"><br></div><div dir="auto">Your thoughts are welcom.</div><div dir="auto"><br></div><div dir="auto"><br></div>