[x3d-public] Mojo Playground available through a JupyterHub

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Tue Jun 20 00:21:09 PDT 2023


Keyword arguments are part of the Python language.  Also a lot of engineering has gone into their working properly during x3d.py autogeneration.


  *   https://docs.python.org/3/glossary.html#term-argument

Other than ensuring you are using latest Python, you might write to the folks building the other library.  Good luck out there!

all the best, Don
--
Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149
X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman

From: John Carlson <yottzumm at gmail.com>
Sent: Tuesday, June 20, 2023 12:14 AM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>; Vincent Marchetti <vmarchetti at kshell.com>; X3D Graphics public mailing list <x3d-public at web3d.org>; Peitso, Loren (CIV) <lepeitso at nps.edu>
Subject: Re: Mojo Playground available through a JupyterHub

NPS WARNING: *external sender* verify before acting.

I ran into a show stopper with Mojo.  I was progressing using a special form of import, found here:

Modular Docs - Mojo🔥 programming manual<https://docs.modular.com/mojo/programming-manual.html#python-integration>

But ran into:

error: Expression [10]:8:34: keyword arguments are not supported yet
    let newModel=x3d.X3D(profile='Immersive',version='3.3',
                                 ^

If anyone is interested, I can provide a notebook to work from.  I might revamp PythonSerializers to do something else with keyword arguments, since there seems to be a showstopper?

Error below:

error: Expression [10]:8:34: keyword arguments are not supported yet
    let newModel=x3d.X3D(profile='Immersive',version='3.3',
                                 ^

On Tue, Jun 20, 2023 at 1:16 AM John Carlson <yottzumm at gmail.com<mailto:yottzumm at gmail.com>> wrote:
I added a couple of more let's for variables at function scope.

On Tue, Jun 20, 2023 at 12:13 AM John Carlson <yottzumm at gmail.com<mailto:yottzumm at gmail.com>> wrote:
I was able to avoid syntax errors (no global variables in Mojo).  Here's my current code (note that this won't run in python due to "let"

Thanks!

####################################################################################################
#
# Now available: developmental python x3d.py package on PyPi for import.
#   This approach simplifies Python X3D deployment and use.
#   https://pypi.org/project/x3d
#
# Installation:
#       pip install x3d
# or
#       python -m pip install x3d
#
# Developer options for loading x3d package:
#
#    from x3d import *  # preferred approach, terser source that avoids x3d.* class prefixes
#
# or
#    import x3d         # traditional way to subclass x3d package, all classes require x3d.* prefix,
#                       # but python source is very verbose, for example x3d.Material x3d.Shape etc.
#                       # X3dToPython.xslt stylesheet insertPackagePrefix=true supports this option.
#
####################################################################################################
#print("'''")   # comment out output created by importing x3d (see below)
from x3d import *
from x3d import X3D
from IPython import HTML
#print("'''")   # comment out output created by importing x3d (see below)

#  comment preceding root node
def createScene():
    let newModel=X3D(profile='Immersive',version='3.3',
      head=head(
        children=[
        meta(content='HelloWorld.x3d',name='title'),
        meta(content='Simple X3D scene example: Hello World!',name='description'),
        meta(content='30 October 2000',name='created'),
        meta(content='31 October 2019',name='modified'),
        meta(content='Don Brutzman',name='creator'),
        meta(content='HelloWorld.tall.png',name='Image'),
        meta(content='http://en.wikipedia.org/wiki/Hello_world',name='reference'),
        meta(content='https://en.wikipedia.org/wiki/Hello#.22Hello.2C_World.22_computer_program',name='reference'),
        meta(content='https://en.wikipedia.org/wiki/"Hello,_World!"_program',name='reference'),
        meta(content='http://en.wikibooks.org/w/index.php?title=Computer_Programming/Hello_world',name='reference'),
        meta(content='http://www.HelloWorldExample.net<http://www.helloworldexample.net/>',name='reference'),
        meta(content='http://www.web3D.org<http://www.web3d.org/>',name='reference'),
        meta(content='http://www.web3d.org/realtime-3d/news/internationalization-x3d',name='reference'),
        meta(content='http://www.web3d.org/x3d/content/examples/HelloWorld.x3d',name='reference'),
        meta(content='http://X3dGraphics.com/examples/X3dForAdvancedModeling/HelloWorldScenes<http://x3dgraphics.com/examples/X3dForAdvancedModeling/HelloWorldScenes>',name='reference'),
        meta(content='http://X3dGraphics.com/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloWorld.x3d<http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter01TechnicalOverview/HelloWorld.x3d>',name='identifier'),
        meta(content='http://www.web3d.org/x3d/content/examples/license.html',name='license'),
        meta(content='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit',name='generator'),
        #  Alternate encodings: VRML97, X3D ClassicVRML Encoding, X3D Compressed Binary Encoding (CBE), X3DOM, JSON
        meta(content='HelloWorld.wrl',name='reference'),
        meta(content='HelloWorld.x3dv',name='reference'),
        meta(content='HelloWorld.x3db',name='reference'),
        meta(content='HelloWorld.xhtml',name='reference'),
        meta(content='HelloWorld.json',name='reference')]),
      Scene=Scene(
        #  Example scene to illustrate X3D nodes and fields (XML elements and attributes)
        children=[
        WorldInfo(title='Hello World!'),
        WorldInfo(title="Hello ' apostrophe 1"),
        WorldInfo(title="Hello ' apostrophe 2"),
        WorldInfo(title='Hello " quotation mark 3'),
        WorldInfo(title='Hello " quotation mark 4'),
        MetadataSet(name="items'",
          value=[
          MetadataInteger(name='one',value=[1]),
          MetadataInteger(name='two',value=[2])]),
        Group(
          children=[
          Viewpoint(DEF='ViewUpClose',centerOfRotation=(0,-1,0),description='Hello world!',position=(0,-1,7)),
          #  insert commas to test removal when converted to ttl
          Transform(DEF='TestWhitespaceCommas',rotation=(0,1,0,3),
            children=[
            Shape(
              geometry=Sphere(),
              appearance=Appearance(
                material=Material(DEF='MaterialLightBlue',diffuseColor=(0.1,0.5,1)),
                texture=ImageTexture(DEF='ImageCloudlessEarth',url=["earth-topo.png", "earth-topo.jpg", "https://www.web3d.org/x3d/content/examples/Basic/earth-topo.png","http://www.web3d.org/x3d/content/examples/Basic/earth-topo.jpg","http://www.web3d.org/x3d/content/examples/Basic/earth-topo-small.gif"])))]),
          Transform(translation=(0,-2,0),
            children=[
            Shape(
              geometry=Text(DEF='TextMessage',string=["Hello","world!"],
                fontStyle=FontStyle(justify=["MIDDLE","MIDDLE"])),
              appearance=Appearance(
                material=Material(USE='MaterialLightBlue')))])])])
    ) # X3D model complete

    ####################################################################################################
    # Self-test diagnostics
    ####################################################################################################
    let htmlcode = """
    <script type='text/javascript' charset="UTF-8" src='https://x3dom.org/release/x3dom-full.debug.js'> </script>
    <link rel='stylesheet' type='text/css' href='https://x3dom.org/release/x3dom.css'></link>
    <style>
     x3d {
         width:720px;
         height:720px;
         border:2px solid black;
    }
    </style>
    """

    let x3dnode = htmlcode+"""
    <x3d>%s</x3d>
    <script>
    window.x3dom.reload()
    </script>
    """ % newModel.Scene.HTML5()

    HTML(x3dnode)

createScene()


On Mon, Jun 19, 2023 at 10:45 PM John Carlson <yottzumm at gmail.com<mailto:yottzumm at gmail.com>> wrote:
Yes, I tried using Vince’s technique (nearly, couldn’t find %%html) with (Mojo) Jupyter and X3DOM.  I was hoping that Vince could show that his technique still works in Jupyter and (my?)binder.

I’m not seeing anyway to render with Jupyter or Mojo Playground.  Brython may still work.

I will try again tonight.

John

On Mon, Jun 19, 2023 at 11:34 AM Brutzman, Donald (Don) (CIV) <brutzman at nps.edu<mailto:brutzman at nps.edu>> wrote:
I recommend you use the methods to export/launch to X3DOM.  If you have a CORS server running locally, you can export/launch to X_ITE as well.

all the best, Don
--
Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu<mailto:brutzman at nps.edu>
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149
X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman

From: John Carlson <yottzumm at gmail.com<mailto:yottzumm at gmail.com>>
Sent: Monday, June 19, 2023 6:10 AM
To: Andreas Plesch <andreasplesch at gmail.com<mailto:andreasplesch at gmail.com>>; Brutzman, Donald (Don) (CIV) <brutzman at nps.edu<mailto:brutzman at nps.edu>>; Joe D Williams <joedwil at earthlink.net<mailto:joedwil at earthlink.net>>; Peitso, Loren (CIV) <lepeitso at nps.edu<mailto:lepeitso at nps.edu>>; Vincent Marchetti <vmarchetti at kshell.com<mailto:vmarchetti at kshell.com>>; X3D Graphics public mailing list <x3d-public at web3d.org<mailto:x3d-public at web3d.org>>
Subject: Re: Mojo Playground available through a JupyterHub

NPS WARNING: *external sender* verify before acting.

Well, this appears harder than I thought.

I haven’t gotten x3d python rendering working anywhere recently!  Python_OCC?  H3Dviewer?

Is there another x3d rendering library (actually a python game engine recommendation would probably be ok) for python (not JavaScript based)??

On Mon, Jun 19, 2023 at 5:55 AM John Carlson <yottzumm at gmail.com<mailto:yottzumm at gmail.com>> wrote:
This looks like a promising python library built on top of a native rust GPU driver:  https://github.com/pygfx/wgpu-py/blob/main/LICENSE

First hit in bing when you search for python webgpu!

We're going to start converting JSON to wgpu-py!

Have fun!

John

On Sun, Jun 18, 2023 at 11:14 PM John Carlson <yottzumm at gmail.com<mailto:yottzumm at gmail.com>> wrote:
https://www.modular.com/mojo

Maybe we can get some people building native X3D graphics in Mojo?  By same guys as LLVM.

I’d love to disrupt the C/C++ community with a Python superset that targets CPUs, GPUs, TPUs, etc. at native speeds.

I know one person who does 3D python!

This is not your mama’s C# or Java.

John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20230620/59b2e050/attachment-0001.html>


More information about the x3d-public mailing list