[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