<div dir="auto">Hi Masaki, I am well aware of the shortcomings of X3Dautoclass.py, but do not have an instant solution. We either need to upgrade pyjnius, or generate a more complete API instead of X3Dautoclass.py which interfaces with X3DJSAIL, or generate a pure Python API. Or potentially there's some setup issue.<div dir="auto"><br></div><div dir="auto">My reasoning behind showing HelloWorld.py was to show a baseline concrete API usage so that we could easily generate from X3D XML or X3D JSON. Ideally, concrete classes in the future Python API would follow this pattern to make it similar to the Java API.</div><div dir="auto"><br></div><div dir="auto">I am showing a use case or a user story which the Python API should try to match.</div><div dir="auto"><br></div><div dir="auto">This was Don's request. I can provide many more examples and a whole testing environment for generating example python from X3D Resources examples. I can also modify my Python serializer to generate alternate Python, if you have something else in mind.</div><div dir="auto"><br></div><div dir="auto">I am looking forward to working with you on the Python API testing.</div><div dir="auto"><br></div><div dir="auto">Sincerely,</div><div dir="auto"><br></div><div dir="auto">John Carlson</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Aug 11, 2017 8:13 AM, "Masaki Aono" <<a href="mailto:aono@tut.jp">aono@tut.jp</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<p>Dear John Carlson, to whom it may concern;</p>
<p>Thank you for sending HelloWorld.py.</p>
<p>I could play with it to some extent on my laptop (Windows 10).</p>
<p>I am not certain if I send an error report to you all.</p>
<p>If this is not the place for discussion, please forgive me.<br>
</p>
<p><br>
</p>
<p>C:\Aono\ISO-H29\Arlington\<wbr>Python\pythonSAI>python<br>
Python 3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017,
13:25:24) [MSC v.1900 64 bit (AMD64)] on win32<br>
Type "help", "copyright", "credits" or "license" for more
information.<br>
>>> from jnius import autoclass<br>
>>> from X3Dautoclass import *<br>
>>> X3D0 =
X3DObject().setProfile("<wbr>Immersive").setVersion("3.3")<br>
>>> head1 = headObject()<br>
>>> meta2 =
metaObject().setName("title").<wbr>setContent("HelloWorld.x3d")<br>
>>> meta3 =
metaObject().setName("<wbr>description").setContent("<wbr>Simple X3D scene
example: Hello World!")<br>
>>> head1.addMeta(meta3)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b1aabf68
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955928 at 0x247b460aa50>><br>
>>> meta4 =
metaObject().setName("created"<wbr>).setContent("30 October 2000")<br>
>>> head1.addMeta(meta4)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b46cfe08
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955948 at 0x247b4629870>><br>
>>> meta5 =
metaObject().setName("<wbr>modified").setContent("14 April 2017")<br>
>>> head1.addMeta(meta5)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b46cfa40
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955970 at 0x247b4629cb0>><br>
>>> meta6 =
metaObject().setName("creator"<wbr>).setContent("Don Brutzman")<br>
>>> head1.addMeta(meta6)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b46cfaf0
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955998 at 0x247b4629b90>><br>
>>> meta7 =
metaObject().setName("Image").<wbr>setContent("HelloWorld.tall.<wbr>png")<br>
>>> head1.addMeta(meta7)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b46cf2b0
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f9559c0 at 0x247b4629a50>><br>
>>> meta8 =
metaObject().setName("<wbr>reference").setContent(<a class="m_-4747007623819038070moz-txt-link-rfc2396E" href="http://en.wikipedia.org/wiki/Hello_world" target="_blank">"http:/<wbr>/en.wikipedia.org/wiki/Hello_<wbr>world"</a>)<br>
>>> head1.addMeta(meta8)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b49f9af0
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f9559e0 at 0x247b4629150>><br>
>>> meta9 =
metaObject().setName("<wbr>reference").setContent(<a class="m_-4747007623819038070moz-txt-link-rfc2396E" href="https://en.wikipedia.org/wiki/Hello#.22Hello.2C_World.22_computer_program" target="_blank">"https:<wbr>//en.wikipedia.org/wiki/Hello#<wbr>.22Hello.2C_World.22_computer_<wbr>program"</a>)<br>
>>> head1.addMeta(meta9)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b49f9eb8
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955a00 at 0x247b4629070>><br>
>>> meta10 =
metaObject().setName("<wbr>reference").setContent(<a class="m_-4747007623819038070moz-txt-link-rfc2396E" href="https://en.wikipedia.org/wiki/%5C" target="_blank">"https:<wbr>//en.wikipedia.org/wiki/\"</a>Hell<wbr>o,_World!\"_program")<br>
>>> head1.addMeta(meta10)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b46b2a98
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955a60 at 0x247b46290d0>><br>
>>> head1.addMeta(meta10)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b49f9af0
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955a68 at 0x247b4629a50>><br>
>>> meta11 =
metaObject().setName("<wbr>reference").setContent(<a class="m_-4747007623819038070moz-txt-link-rfc2396E" href="http://en.wikibooks.org/w/index.php?title=Computer_Programming/Hello_world" target="_blank">"http:/<wbr>/en.wikibooks.org/w/index.php?<wbr>title=Computer_Programming/<wbr>Hello_world"</a>)<br>
>>> head1.addMeta(meta11)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b46b24c0
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955a88 at 0x247b4629730>><br>
>>> meta12 =
metaObject().setName("<wbr>reference").setContent(<a class="m_-4747007623819038070moz-txt-link-rfc2396E" href="http://www.HelloWorldExample.net" target="_blank">"http:/<wbr>/www.HelloWorldExample.net"</a>)<br>
>>> head1.addMeta(meta12)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b49f9eb8
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955aa8 at 0x247b4629170>><br>
>>> meta13 =
metaObject().setName("<wbr>reference").setContent(<a class="m_-4747007623819038070moz-txt-link-rfc2396E" href="http://www.web3D.org" target="_blank">"http:/<wbr>/www.web3D.org"</a>)<br>
>>> head1.addMeta(meta13)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b46b2468
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955ac8 at 0x247b46292b0>><br>
>>> meta14 =
metaObject().setName("<wbr>reference").setContent(<a class="m_-4747007623819038070moz-txt-link-rfc2396E" href="http://www.web3d.org/realtime-3d/news/internationalization-x3d" target="_blank">"http:/<wbr>/www.web3d.org/realtime-3d/<wbr>news/internationalization-x3d"</a><wbr>)<br>
>>> head1.addMeta(meta14)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b46b2d58
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955ae8 at 0x247b4629430>><br>
>>> meta15 =
metaObject().setName("<wbr>reference").setContent(<a class="m_-4747007623819038070moz-txt-link-rfc2396E" href="http://www.web3d.org/x3d/content/examples/HelloWorld.x3d" target="_blank">"http:/<wbr>/www.web3d.org/x3d/content/<wbr>examples/HelloWorld.x3d"</a>)<br>
>>> head1.addMeta(meta15)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b493f360
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955b18 at 0x247b4629390>><br>
>>> meta16 =
metaObject().setName("<wbr>reference").setContent(<a class="m_-4747007623819038070moz-txt-link-rfc2396E" href="http://X3dGraphics.com/examples/X3dForAdvancedModeling/HelloWorldScenes" target="_blank">"http:/<wbr>/X3dGraphics.com/examples/<wbr>X3dForAdvancedModeling/<wbr>HelloWorldScenes"</a>)<br>
>>> head1.addMeta(meta16)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b493f468
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955b38 at 0x247b46295d0>><br>
>>> meta17 =
metaObject().setName("<wbr>identifier").setContent(<a class="m_-4747007623819038070moz-txt-link-rfc2396E" href="http://X3dGraphics.com/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloWorld.x3d" target="_blank">"http:<wbr>//X3dGraphics.com/examples/<wbr>X3dForWebAuthors/<wbr>Chapter01TechnicalOverview/<wbr>HelloWorld.x3d"</a>)<br>
>>> head1.addMeta(meta17)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b493f410
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f954798 at 0x247b4629670>><br>
>>> meta18 =
metaObject().setName("license"<wbr>).setContent(<a class="m_-4747007623819038070moz-txt-link-rfc2396E" href="http://www.web3d.org/x3d/content/examples/license.html" target="_blank">"http://www.<wbr>web3d.org/x3d/content/<wbr>examples/license.html"</a>)<br>
>>> head1.addMeta(meta18)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b493f4c0
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f9547c0 at 0x247b4629690>><br>
>>> meta19 =
metaObject().setName("<wbr>generator").setContent("X3D-<wbr>Edit 3.3,
<a class="m_-4747007623819038070moz-txt-link-freetext" href="https://savage.nps.edu/X3D-Edit" target="_blank">https://savage.nps.edu/X3D-<wbr>Edit</a>")<br>
>>> head1.addMeta(meta19)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b493f570
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f9547e8 at 0x247b46296b0>><br>
>>> meta20 =
metaObject().setName("<wbr>reference").setContent("<wbr>HelloWorld.wrl")<br>
>>> head1.addMeta(meta20)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b493fb48
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f954808 at 0x247b46295b0>><br>
>>> meta21 =
metaObject().setName("<wbr>reference").setContent("<wbr>HelloWorld.x3dv")<br>
>>> head1.addMeta(meta21)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b493f5c8
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f954828 at 0x247b46296d0>><br>
>>> meta22 =
metaObject().setName("<wbr>reference").setContent("<wbr>HelloWorld.x3db")<br>
>>> head1.addMeta(meta22)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b493fa40
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f954850 at 0x247b46296f0>><br>
>>> meta23 =
metaObject().setName("<wbr>reference").setContent("<wbr>HelloWorld.xhtml")<br>
>>> head1.addMeta(meta23)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b4a118e0
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f954878 at 0x247b4629750>><br>
>>> meta24 =
metaObject().setName("<wbr>reference").setContent("<wbr>HelloWorld.json")<br>
>>> head1.addMeta(meta24)<br>
<org.web3d.x3d.jsail.Core.<wbr>headObject at 0x247b4a11048
jclass=org/web3d/x3d/jsail/<wbr>Core/headObject jself=<LocalRef
obj=0x-4f955f58 at 0x247b4629950>><br>
>>><br>
>>> head1.addComments(<wbr>CommentsBlock("Alternate encodings:
VRML97, X3D ClassicVRML Encoding, X3D Compressed Binary Encoding
(CBE), X3DOM, JSON"))<br>
<org.web3d.x3d.jsail.<wbr>X3DConcreteElement at 0x247b46e1048
jclass=org/web3d/x3d/jsail/<wbr>X3DConcreteElement jself=<LocalRef
obj=0x-4f955c80 at 0x247b460aa30>><br>
>>> X3D0.setHead(head1)<br>
<org.web3d.x3d.jsail.Core.<wbr>X3DObject at 0x247b49f9af0
jclass=org/web3d/x3d/jsail/<wbr>Core/X3DObject jself=<LocalRef
obj=0x-4f954dc8 at 0x247b46299b0>><br>
>>> Scene25 = SceneObject()<br>
>>><br>
>>> Scene25.addComments(<wbr>CommentsBlock("Example scene to
illustrate X3D nodes and fields (XML elements and attributes)"))<br>
<org.web3d.x3d.jsail.<wbr>X3DConcreteElement at 0x247b4a1fe60
jclass=org/web3d/x3d/jsail/<wbr>X3DConcreteElement jself=<LocalRef
obj=0x-4f954de0 at 0x247b46299f0>><br>
>>> WorldInfo26 = WorldInfoObject().setTitle("<wbr>Hello
world!")<br>
>>> Scene25.addChild(WorldInfo26)<br>
<org.web3d.x3d.jsail.Core.<wbr>SceneObject at 0x247b4a48678
jclass=org/web3d/x3d/jsail/<wbr>Core/SceneObject jself=<LocalRef
obj=0x-4f955838 at 0x247b4629a10>><br>
>>> Group27 = GroupObject()<br>
>>> Viewpoint28 =
ViewpointObject().setDEF("<wbr>ViewUpClose").<wbr>setCenterOfRotation([0,-1,0]).<wbr>setDescription("Hello
world!").setPosition([0,-1,7])<br>
Traceback (most recent call last):<br>
File "<stdin>", line 1, in <module><br>
AttributeError: 'org.web3d.x3d.sai.Navigation.<wbr>X3DViewpointNode'
object has no attribute 'setCenterOfRotation'<br>
</p>
<p><br>
</p>
<p>At this point, I encountered the above error.</p>
<p>It looks like "setCenterOfRotation" may not be in
X3DViewpointNode (I may be wrong).</p>
<p>Please note that Python 3.6 (which is not Python 2.7) is not a
problem here, I think.</p>
<p>Sincerely, <br>
<br>
<br>
<br>
</p>
<br>
<div class="m_-4747007623819038070moz-cite-prefix">On 2017/08/11 8:11, John Carlson wrote:<br>
</div>
<blockquote type="cite">
<div class="m_-4747007623819038070WordSection1">
<p class="MsoNormal">Here is HelloWorld.py as generated from my
PythonSerializer.js. Note that I do not use chained calls.</p>
<p class="MsoNormal">This is because I was trying to get pyjnius
to work. If we had some way of getting code like this running,
it would be great. I could modify my PythonSerializer.js and
perhaps include the serializer in X3DJSAIL.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">My JavaScript serializer does not work in
X3DJSAIL yet, and I have not been working on it since my
initial attempt. I have compatible, containable changes to
the X3DJSAIL stylesheet so that X3DJSAIL should be able to
generate JavaScript “SAI”/Nashorn application code.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">The problem appears to be getting the
JavaScript XML parsers integrated with X3DJSAIL. We may be
able to use JSON instead: XML -> JSON -> DOM ->
python. The long way around, instead of XML -> DOM ->
python.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Or we can just use my serializer in
JavaScript, and translate JSON -> DOM -> python. The XML
to JSON would be handled by X3dToJson.xslt (X3DJSAIL).</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I do have examples of Java -> TypeScript
and JavaScript, but they don’t work.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I do not have a Java -> Python
translator. Good luck finding one.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">John</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">Mail</a>
for Windows 10</p>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="border:none;padding:0in"><b>From:
</b><a href="mailto:brutzman@nps.edu" target="_blank">Don
Brutzman</a><br>
<b>Sent: </b>Thursday, August 10, 2017 5:31 PM<br>
<b>To: </b><a href="mailto:mwlee@suwon.ac.kr" target="_blank">Myeong Won Lee</a>; <a href="mailto:aono@tut.jp" target="_blank">Masaki
Aono</a>; <a href="mailto:roy.walmsley@ntlworld.com" target="_blank">Roy Walmsley</a>;
<a href="mailto:yottzumm@gmail.com" target="_blank">John
Carlson</a><br>
<b>Cc: </b><a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public
mailing list</a><br>
<b>Subject: </b>Scene Access Interface: autogenerating
Python</p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Myeong Won Lee and Masaki Aono:</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thank you for meeting today to discuss X3D
Object Model transformation by applying an XSLT stylesheet to
autogenerate of SAI codebases.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Myeong Won Lee, I also thought that your
Unity HAnim player is wonderful. I recommend that you include
some examples in the public release, they will generate strong
interest. Having some public examples while also allowing
private examples provides appealing choices and the best
possible support for your students.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Here is summary excerpted from this week's
Web3D meeting report.</p>
<p class="MsoNormal">==============================<wbr>==============================<wbr>====</p>
<p class="MsoNormal">3. Object Model for X3D (OM4X3D)</p>
<p class="MsoNormal">a. The Object Model for X3D
(OM4X3D) is a full set of object-oriented interfaces for all
nodes, fields and statements in the X3D Abstract
Specification.</p>
<p class="MsoNormal">b. OM4X3D is produced by
decorating the X3D XML Schema with carefully structured
annotations that describe the entire object-oriented nature of
the X3D scene graph.
<a class="m_-4747007623819038070moz-txt-link-freetext" href="http://www.web3d.org/specifications/OM4X3D/ObjectModelForX3dCreation.png" target="_blank">http://www.web3d.org/<wbr>specifications/OM4X3D/<wbr>ObjectModelForX3dCreation.png</a></p>
<p class="MsoNormal">c. Instantiation: Object Model
for X3D definitions are explicitly listed in X3DObjectModel
3.3.xml with corresponding XML schema x3dObjectModel.xsd</p>
<p class="MsoNormal">d. Ongoing public/private dialog
using the <a class="m_-4747007623819038070moz-txt-link-abbreviated" href="mailto:x3d-public@web3D.org" target="_blank">x3d-public@web3D.org</a> mailing list and presentation
at Web3D 2017 Conference has been productive.
<a class="m_-4747007623819038070moz-txt-link-freetext" href="http://www.web3d.org/specifications/OM4X3D/ObjectModelForX3dMasterClassWeb3dConference2017June7.pdf" target="_blank">http://www.web3d.org/<wbr>specifications/OM4X3D/<wbr>ObjectModelForX3dMasterClassWe<wbr>b3dConference2017June7.pdf</a></p>
<p class="MsoNormal">e. Demonstration of strict
object model in X3D JSON Encoding, which is 98% complete and
undergoing extensive review and testing, initial-draft
specification has been prepared.</p>
<p class="MsoNormal">f. Initial implementations are
available in JavaScript, Java, and C++. Also planning to
prepare programming-language implementations for C, C#.</p>
<p class="MsoNormal">g. Two new versions for Python
are started, with dialog occurring to discern best practices.</p>
<p class="MsoNormal">h. SAI no longer just Script
node in Browser object, includes full application-oriented
API. This will lead to some changes and generalizations in
19775-2 Abstract SAI specification.</p>
<p class="MsoNormal">i. Multiple emerging SAI
specifications and implementations are shown on updated draft
X3D Specifications Relationships diagram (attached)</p>
<p class="MsoNormal">j. Implementation: X3D JSON
Loader (X3DJSONLD) <a class="m_-4747007623819038070moz-txt-link-freetext" href="https://github.com/coderextreme/X3DJSONLD" target="_blank">https://github.com/<wbr>coderextreme/X3DJSONLD</a></p>
<p class="MsoNormal">k. Implementation: X3D Java
Scene Access Interface Library (X3DJSAIL)
<a class="m_-4747007623819038070moz-txt-link-freetext" href="http://www.web3d.org/specifications/java/X3dJavaSceneAuthoringInterface.html" target="_blank">http://www.web3d.org/<wbr>specifications/java/<wbr>X3dJavaSceneAuthoringInterface<wbr>.html</a></p>
<p class="MsoNormal">l. Under consideration:
integration into X3D Abstract Specification 19775-1 to more
thoroughly expand on current abstract interface hierarchy.</p>
<p class="MsoNormal">m. Emerging capability: coherent
X3D center, multiple different programming languages that
offer common design patterns to programmers to create
identical scene graphs.</p>
<p class="MsoNormal">==============================<wbr>==============================<wbr>====</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">The essence of autogeneration is that
proper code patterns must first exist. Once we get a few
classes with the design patterns of interest, and generation
of a few classes, then creation of all classes follows in a
straightforward manner.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I recommend that the first example we work
with is HelloWorld.x3d into .c .cpp .cs and .py source.</p>
<p class="MsoNormal">
<a class="m_-4747007623819038070moz-txt-link-freetext" href="http://www.web3d.org/x3d/content/examples/HelloWorld.x3d" target="_blank">http://www.web3d.org/x3d/<wbr>content/examples/HelloWorld.<wbr>x3d</a></p>
<p class="MsoNormal">
<a class="m_-4747007623819038070moz-txt-link-freetext" href="http://www.web3d.org/x3d/content/examples/HelloWorld.html" target="_blank">http://www.web3d.org/x3d/<wbr>content/examples/HelloWorld.<wbr>html</a></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Regarding Python: John Carlson has done
intriguing work that auto-translates Java source in X3DJSAIL
to Python. This is interesting because it would keep the
codebases closely aligned, making it easier to learn and
debug. Consistency is easily maintained across X3D versions
and X3D bugfixes by re-running each distribution. Flexibility
is also possible since each codebase will include custom
utility classes, methods and examples.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Next steps for Python: recommend that we</p>
<p class="MsoNormal">- Examine Masaki's work and compare it with
the pyjnius conversions.</p>
<p class="MsoNormal">- Autogenerate Python library (X3DPSAIL
perhaps?) to provide Python codebase support.</p>
<p class="MsoNormal">- Iterate until we have a good design
pattern for HelloWorld and other exemplars.</p>
<p class="MsoNormal">- Create an X3dToPython.xslt stylesheet
that can convert someModel.x3d to someModel.py source.</p>
<p class="MsoNormal">- run that across all scenes X3D Example
Archives, detect and resolve errors, publish builds.</p>
<p class="MsoNormal">- make T-shirts 8)</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">As with JavaScript and Java, it is good to
use the x3d-public list for this work. Also suitable for a
weekly update reports and monthly telcon item for X3D Working
Group.</p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">all the best, Don</p>
<p class="MsoNormal">-- </p>
<p class="MsoNormal">Don Brutzman Naval Postgraduate School,
Code USW/Br <a class="m_-4747007623819038070moz-txt-link-abbreviated" href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a></p>
<p class="MsoNormal">Watkins 270, MOVES Institute, Monterey CA
93943-5000 USA <a href="tel:(831)%20656-2149" value="+18316562149" target="_blank">+1.831.656.2149</a></p>
<p class="MsoNormal">X3D graphics, virtual worlds, navy robotics
<a class="m_-4747007623819038070moz-txt-link-freetext" href="http://faculty.nps.edu/brutzman" target="_blank">http://faculty.nps.edu/<wbr>brutzman</a></p>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</blockquote>
<br>
<pre class="m_-4747007623819038070moz-signature" cols="72">--
******************************<wbr>************************
青野雅樹
豊橋技術科学大学 情報・知能工学系
知識データ工学・情報検索研究室
〒441-8580 豊橋市天伯町雲雀ヶ丘1-1
<a class="m_-4747007623819038070moz-txt-link-freetext" href="TEL:(0532)" target="_blank">TEL:(0532)</a> 44-6764
FAX:(0532) 44-6757
Masaki Aono
Professor
Knowledge Data Engineering Laboratory
Dept. of Computer Science and Engineering
Toyohashi University of Technology
1-1 Hibarigaoka, Tempaku-cho,
Toyohashi-shi, Aichi 441-8580 JAPAN
TEL: 81+532-44-6764
FAX:81+532-44-6757
email: <a class="m_-4747007623819038070moz-txt-link-abbreviated" href="mailto:aono@tut.jp" target="_blank">aono@tut.jp</a>
******************************<wbr>************************ </pre>
</div>
</blockquote></div></div>