[x3d-public] file converter based on pythonocc

John Carlson yottzumm at gmail.com
Fri May 8 03:37:04 PDT 2020


No NURBS, but yes to curved triangles and meshes (constellations):

https://en.wikipedia.org/wiki/Additive_manufacturing_file_format

I've been waiting for someone to get on board who will create a
tessellation package for X3D--earcut.js?, or otherwise provide a
tessellation tutorial on how to use such packages. I want to take
tessellation out of my code and make it a service of some sort.
Ah, Tessellation as a Service (TaaS)!

So X3D to AMF?  What programming language will it be in?   A standardized
language, or a non-standardized language?

John

On Thu, May 7, 2020 at 8:04 AM Andreas Plesch <andreasplesch at gmail.com>
wrote:

> Hi Don,
>
> no, I do not think x3dom has LineProperties, something to consider.
> X_ITE does but I could not figure out how to use x_ite with jupyter.
>
> Good idea to use the edges for selection purposes. I think we are
> still looking for good DEF naming.
>
> I do not think ElementTree would be very helpful to x3d.py. It could
> be used for testing but round-tripping for testing and validation
> would be more strict. Or just XML validating the X3D.XML() output, for
> the examples.
>
> We should probably start to look into what 3d printing requires in
> terms of X3D restrictions (probably no NURBS ;)).
>
> -Andreas
>
> On Thu, May 7, 2020 at 12:57 AM Don Brutzman <brutzman at nps.edu> wrote:
> >
> > really great how this is all on one page for comparison!  8)
> >
> > wondering if X3DOM has LineProperties, that might be another output
> variation.  slight file-size reduction, offers opportunities for selection
> animation as well.
> >
> > On 5/6/2020 2:39 PM, Andreas Plesch wrote:
> > > Here is a further update which adds edge accents through LineSets
> > >
> > >
> https://nbviewer.jupyter.org/github/andreasplesch/OCCToX3D/blob/conda2/notebooks/doc_to_wire_vrml.ipynb
> > >
> > > Edges rendering is not natively supported by OCC but pythonocc has
> > > extended functionality including edge rendering, meant for its x3dom
> > > renderer.
> > >
> > > The x3dom renderer can be used to generate X3D but the example uses
> > > the native OCC vrml export (it has more interesting def/use nodes) and
> > > adds on the XML level the x3dom renderer edges.
> > >
> > > So this example uses now three sources for X3D: the OCC vrml export,
> > > x3d.py, and pythonocc x3dom extensions, using XML as the glue.
> > >
> > > -Andreas
> > >
> > > On Wed, May 6, 2020 at 9:54 AM Andreas Plesch <andreasplesch at gmail.com>
> wrote:
> > >>
> > >> We have been working on getting colors transferred to x3d as well.
> Here is an example of a more complex assembly:
> > >>
> > >>
> https://nbviewer.jupyter.org/github/andreasplesch/OCCToX3D/blob/conda2/notebooks/doc_to_vrml.ipynb
> > >>
> > >> This is also shows how to combine x3d.py generated X3D XML and
> pythonocc generated vrml translated to x3d with tovrmlx3d, using python's
> ElementTree builtin XML processing (which is basic but builtin).
> > >>
> > >> Just an update, -Andreas
> > >>
> > >> On Wed, Apr 22, 2020 at 7:22 AM Andreas Plesch <
> andreasplesch at gmail.com> wrote:
> > >>>
> > >>> Just a quick update with a more complete notebook:
> > >>>
> > >>>
> https://nbviewer.jupyter.org/github/andreasplesch/OCCToX3D/blob/77cda237a7055d796b48623712c0c0296d579973/notebooks/stp_to_x3d2.ipynb
> > >>>
> > >>> [scroll to the end]
> > >>>
> > >>> This demonstrates:
> > >>>
> > >>> - how to use pythonocc to load step files.
> > >>> - how to use pythonocc to generate x3d, and vrml which uses a
> different pathway.
> > >>> - how to use view3dscene's tovrmlx3d from within python to convert
> > >>> vrml to x3d xml.
> > >>> - how to render x3d with x3dom in a python notebook [ note to the
> > >>> future: since key presses get intercepted by the notebook, it would
> be
> > >>> useful to add js buttons to select viewpoints ]
> > >>>
> > >>> I also managed to use a more standard jupyter binder approach which
> > >>> only uses conda on a regular ubuntu system. This should make the
> > >>> notebooks easier to transport, and apply in regular python
> > >>> environments.
> > >>>
> > >>> -Andreas
> > >>>
> > >>> On Sun, Apr 19, 2020 at 9:15 PM Andreas Plesch <
> andreasplesch at gmail.com> wrote:
> > >>>>
> > >>>> Thanks for the response, see below for more.
> > >>>>
> > >>>> On Sun, Apr 19, 2020 at 7:29 PM Don Brutzman <brutzman at nps.edu>
> wrote:
> > >>>>>
> > >>>>> cooler and cooler!
> > >>>>>
> > >>>>> On 4/19/2020 1:54 PM, Andreas Plesch wrote:
> > >>>>>> I am happy to report that the core OCCT vrml writer works fine
> with
> > >>>>>> pythonocc. It generates more optimized vrml than the pythonocc x3d
> > >>>>>> exporter.
> > >>>>>
> > >>>>> obvious statement: if the vrml exporter works well, it might be a
> simple variation to copy/refactor the output-producing sections of that
> code to output XML instead of WRL.
> > >>>>>
> > >>>>> ... reading on ...
> > >>>>>
> > >>>>>> I updated https://github.com/andreasplesch/OCCToX3D with example
> vrml
> > >>>>>> output, and used tovrmlx3d to convert to xml which is also
> available
> > >>>>>> in the repo.
> > >>>>>
> > >>>>> very pretty outputs.  is it using LineProperties to give colored
> borders along mesh edges?
> > >>>>
> > >>>> There is an option to generate wireframe output in addition to what
> > >>>> they call shaded shape output. The edges are IndexedLineSets but the
> > >>>> Appearance does not have a LineProperties. This is something which
> > >>>> x3d.py could presumably do in postprocessing.
> > >>>>
> > >>>> Another goal would be to add better Metadata since it should be
> > >>>> possible to get those - probably prettyy easily - with pythonocc
> from
> > >>>> the original source.
> > >>>>
> > >>>>>> I could add tovrmlx3d to the docker image, and then call it from
> > >>>>>> python. Are there other options to convert from vrml2 to xml x3d,
> > >>>>>> using python ? x_ite could do it but requires a browser.
> > >>>>>
> > >>>>> i suspect that Holger knows how to run x_ite headless without a
> browser.
> > >>>>
> > >>>> John went with headless chrome which is an option but it seems
> heavier
> > >>>> than using castle tovrmlx3d.
> > >>>>
> > >>>>>
> > >>>>>> Enhancing c++ OCCT itself with a x3d writer, parallel to the vrml
> > >>>>>> writer is in principle possible but pretty daunting.
> > >>>>>
> > >>>>> this is what i was trying to express above... don't rewrite the
> whole functionality, just look for output-producing code and put a selector
> on those code blocks for one X3D encoding or another - .wrl for VRML97,
> .x3dv for ClassicVRML (differs only in header line), then .x3d for XML.
> > >>>>
> > >>>> Yes but even with this strategy in mind it seems a major effort:
> > >>>>
> > >>>> mostly in:
> > >>>>
> http://git.dev.opencascade.org/gitweb/?p=occt.git;a=tree;f=src/Vrml;h=d24d7db215fb0c4f26ac73af52fe68735bf8adee;hb=master
> > >>>>
> > >>>> but also in:
> > >>>>
> http://git.dev.opencascade.org/gitweb/?p=occt.git;a=tree;f=src/VrmlAPI;h=bacc62597d161a9cb978386b13cb8ba8f072d6e4;hb=master
> > >>>>
> http://git.dev.opencascade.org/gitweb/?p=occt.git;a=tree;f=src/VrmlConverter;h=79507809ac27c8b4ed3674ede2c3198b06b352e1;hb=master\
> > >>>>
> http://git.dev.opencascade.org/gitweb/?p=occt.git;a=tree;f=src/VrmlData;h=18683ffff1dac6a17cd9eef9a3e37b25e642e50b;hb=master
> > >>>>
> > >>>> This would make x3d available to all OCCT users.
> > >>>>
> > >>>> Another option is to improve x3d generation by pythonocc:
> > >>>>
> > >>>>
> https://github.com/tpaviot/pythonocc-core/blob/master/src/Display/WebGl/x3dom_renderer.py
> > >>>> which uses
> > >>>>
> https://github.com/tpaviot/pythonocc-core/blob/master/src/Tesselator/ShapeTesselator.cpp#L427
> > >>>>
> > >>>>>> The pythonocc generated vrml and x3d does not include a nice
> default
> > >>>>>> viewpoint. If x3d.py would have a createX3DfromString() method,
> it may
> > >>>>>> be possible to add a viewpoint and then create xml with toXML.
> > >>>>>
> > >>>>> somebody with better python skills than me should write that
> parser.  shouldn't be hard for a python guru since all of the X3D nodes
> have Python classes with essentially the same name.
> > >>>>
> > >>>> Yes, I think that would make x3d.py a lot more useful. In addition a
> > >>>> createVRMLfromString() would help with legacy content, and
> conversion.
> > >>>> x_ite has good parsers in js which could serve as a template for
> > >>>> python parsers. titanias parsers are probably similar.
> > >>>>
> > >>>>>> John suggested to use the stylesheet to convert from xml to Python
> > >>>>>> code. Saxon is probably the only processor which can handle the
> > >>>>>> stylesheet ? There is saxon-c/he which is free and has apparently
> a
> > >>>>>> python wrapper:
> https://www.saxonica.com/saxon-c/doc/html/saxonc.html
> > >>>>>
> > >>>>> I'm using Saxon Home Edition jar in all of the ant files for
> builds and regression testing.  Also embedded in X3DJSAIL.  Even checked in
> to help builders avoid versionitis.
> > >>>>>
> > >>>>> Better to find and use a Python package for XSLT 2 (not 1).
> > >>>>
> > >>>> Agree but there seem to be no native Python packages for XSLT 2. The
> > >>>> Python recommendation seems to be to use saxon he. In addition to
> the
> > >>>> java version, there is the c version which has an official Python
> > >>>> wrapper. Do you want to give it a quick try ?
> > >>>>
> > >>>>> We would not want to hardwire such a package into x3d.py since it
> might collide with other uses.  am trying to fit x3d.py well in the python
> ecology.
> > >>>>>
> > >>>>> meanwhile I believe there is a python incantation to check at run
> time and load such-and-such a package (if necessary) if a specialty method
> gets invoked.  we might also create a x3d-tools.py package for simplfying
> addition of commonly used packages (such as XSLT or even pythonocc).
> > >>>>
> > >>>> pythonocc is big, since it depends on c++ occ.
> > >>>>
> > >>>> There is a pip package:
> > >>>> https://pypi.org/project/pythonocc-core/#description
> > >>>> but it has not been updated to 7.4.0, the current version.
> > >>>>
> > >>>> But there is also a conda package
> > >>>> https://anaconda.org/pythonocc/pythonocc-core
> > >>>> which is uptodate. Hm, I wonder why this is not used for the
> binderhub
> > >>>> pythonocc docker image. It is compiled from scratch in the
> Dockerfile,
> > >>>> instead. Perhaps the package does not work well.
> > >>>>
> > >>>>>> Did anybody try saxon-c/he with the python api ? It may work.
> > >>>>>>
> > >>>>>> If that is succesful, it would be probably possible to eval the
> > >>>>>> resulting python code in python and get a x3d document/object.
> This
> > >>>>>> could then be manipulated with x3d.py.
> > >>>>>
> > >>>>> with enough coercion many things can be forced to work... but
> cross-language solutions are notoriously difficult to port and maintain.
> also worth noting is that 'eval()' opens up an endless security hole,
> usually frowned upon...
> > >>>>
> > >>>> I do not think there would a lot of coercion sicne there is an
> > >>>> official Python API for saxon.
> > >>>>
> > >>>>>
> > >>>>> don't want to sound discouraging!  a build workflow can work even
> if cross-language.  so those might establish initial capability, but we are
> likely best served by seeking general Pythonic solutions when
> possible/practical and then folding them into x3d.py itself.
> > >>>>
> > >>>> I agree, this should stay Python as much as possible.
> > >>>>
> > >>>> Cheers,  -Andreas
> > >>>>
> > >>>>>> So think the plan would be for now:
> > >>>>>>
> > >>>>>> - create a Dockerfile which includes also view3dscene for
> tovrmlx3d
> > >>>>>> - try Jupyter viola and/or appmode, there is an example with
> upload of a file
> > >>>>>> - use binder to host for now, get a viable service
> > >>>>>> - try saxon-c/he python api, by installing in dockerfile and then
> > >>>>>> trying it in Jupyter.
> > >>>>>>
> > >>>>>> -Andreas
> > >>>>>
> > >>>>> good luck out there!  8)
> > >>>>>
> > >>>>>
> > >>>>>> On Sun, Apr 19, 2020 at 12:35 PM Andreas Plesch <
> andreasplesch at gmail.com> wrote:
> > >>>>>>>
> > >>>>>>> OpenCascade is the only realistic, open-source option to digest
> step
> > >>>>>>> format. It is a c++ library, so there is a need for
> backend/server
> > >>>>>>> side processing. The easiest option for that is docker and there
> is a
> > >>>>>>> preconfigured, working docker image with both, a working
> OpenCascade
> > >>>>>>> installation, and the pythonocc wrapper which also adds some
> > >>>>>>> functionality such as x3d export. Also, python is faster to
> iterate
> > >>>>>>> than c++, and jupyter gets you even more convenience.
> > >>>>>>>
> > >>>>>>> I added a small example jupyter notebook which work on top of
> > >>>>>>> https://mybinder.org/v2/gh/tpaviot/pythonocc-binderhub/master to
> > >>>>>>> https://github.com/andreasplesch/OCCToX3D, and an example x3d
> > >>>>>>> conversion as proof of concept.
> > >>>>>>>
> > >>>>>>> I also discovered that OpenCascade supports generally
> compilation to
> > >>>>>>> wasm using emscripten. So longer term it may be possible to
> compile
> > >>>>>>> the OCC libraries required for loading, triangulation and
> exporting
> > >>>>>>> (to VRML) to wasm/ecmascript, and get a completely client based
> > >>>>>>> solution. However, the content typically is large and complex,
> and
> > >>>>>>> there is a lot of computation involved. So in practice it may
> not work
> > >>>>>>> out. A main advantage would be that users would not have to
> trust a
> > >>>>>>> remote server with their valuable content.
> > >>>>>>>
> > >>>>>>> I think next I will try for a bit if is feasible to use the OCC
> VRML
> > >>>>>>> writer, rather than the relatively simple pythonocc x3d
> exporter. The
> > >>>>>>> python wrapper seems to exist but I do not think there is an
> example.
> > >>>>>>>
> > >>>>>>> -Andreas
> > >>>>>>>
> > >>>>>>> On Sat, Apr 18, 2020 at 9:47 PM John Carlson <yottzumm at gmail.com>
> wrote:
> > >>>>>>>>
> > >>>>>>>> X3DJSAIL has
> www.web3d.org/x3d/stylesheets/java/src/org/web3d/x3d/jsail/X3DLoaderDOM.java
> which supports DOM scenegraphs.
> > >>>>>>>>
> > >>>>>>>> Examples of usage are here:
> > >>>>>>>>
> > >>>>>>>> www.web3d.org/x3d/stylesheets/java/nashorn/examples/Json.js
> > >>>>>>>> www.web3d.org/x3d/stylesheets/java/nashorn/examples/Nashorn.js
> > >>>>>>>> www.web3d.org/x3d/stylesheets/java/nashorn/examples/X3d.js
> > >>>>>>>>
> > >>>>>>>> Basically, the examples parse JSON into a document using
> X3DJSONLD.java then convert DOM into a X3DJSAIL scenegraph.
> > >>>>>>>>
> > >>>>>>>> So to answer your createX3DFromString() question, if you start
> with JSON, I think you could get a X3DJSAIL scenegraph from a JSON string
> using the X3DJSAIL-like python API (the one we got to work with Jupyter).
> > >>>>>>>>
> > >>>>>>>> Otherwise, you probably have to wait for enhancements to
> x3d.py.  It looks like toXML is supported in x3d.py currently.  One could
> use a stylesheet X3dToPython.xslt to convert XML to Python.
> > >>>>>>>>
> > >>>>>>>> So one could use the stylesheet in a web program (GL with
> that!) to output python.  Then you would have to use something like eval
> (ugh!).
> > >>>>>>>>
> > >>>>>>>> John
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>>
> > >>>>>>>> On Sat, Apr 18, 2020 at 5:20 PM Andreas Plesch <
> andreasplesch at gmail.com> wrote:
> > >>>>>>>>>
> > >>>>>>>>> Thanks for the interest. I initialized a project at
> > >>>>>>>>>
> > >>>>>>>>> https://github.com/andreasplesch/OCCToX3D
> > >>>>>>>>>
> > >>>>>>>>> The wiki has some collected info and a short outline. The wiki
> is
> > >>>>>>>>> editable by anyone.
> > >>>>>>>>>
> > >>>>>>>>> pythonocc has a method to generate X3D xml. It is a simple
> Shape with
> > >>>>>>>>> a TriangleSet, nothing sophisticated. If x3d.py would have  a
> > >>>>>>>>> createX3DFromString() function, it would be possible to use
> x3d.py to
> > >>>>>>>>> enhance the generated X3D. But I do not think x3d.py has that.
> But
> > >>>>>>>>> x3d.py may come in handy in other ways.
> > >>>>>>>>>
> > >>>>>>>>> The first goal is to add a simple jupyter notebook to the repo
> based
> > >>>>>>>>> on the available pythonocc docker image which demonstrate how
> to load
> > >>>>>>>>> step and output X3D.
> > >>>>>>>>>
> > >>>>>>>>> Any feedback or ideas welcome, using Issues on the project or
> here,
> > >>>>>>>>>
> > >>>>>>>>> -Andreas
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>> On Sat, Apr 18, 2020 at 1:27 PM Don Brutzman <brutzman at nps.edu>
> wrote:
> > >>>>>>>>>>
> > >>>>>>>>>> Hi Andreas, sounds like a great idea to me.  Here are some
> peripheral points of support.
> > >>>>>>>>>>
> > >>>>>>>>>> Last weekend i updated and deployed the x3d.py package
> (sometimes called X3DPSAIL) at
> > >>>>>>>>>>
> > >>>>>>>>>> [1]     Python Package Index (PyPi) x3d 0.0.25
> > >>>>>>>>>>           Package support for Extensible 3D (X3D) Graphics
> International Standard (IS)
> > >>>>>>>>>>           https://pypi.org/project/x3d/
> > >>>>>>>>>>
> > >>>>>>>>>> [2]     Python X3D Package x3d.py,X3D Python Scene Access
> Interface Library (X3DPSAIL)
> > >>>>>>>>>>
> https://www.web3d.org/x3d/stylesheets/python/python.html
> > >>>>>>>>>>
> > >>>>>>>>>> "The x3d.py Python X3D Package supports programmers with
> Python interfaces and objects for standards-based X3D programming, all as
> open source.
> > >>>>>>>>>> The presentation *Python X3D Package Implementation* provides
> an overview and shows examples."
> > >>>>>>>>>>
> > >>>>>>>>>> [2.1]   Python X3D Package Implementation
> > >>>>>>>>>>
> https://www.web3d.org/x3d/stylesheets/python/documents/PythonX3dPackageImplementation.pdf
> > >>>>>>>>>>
> > >>>>>>>>>> So you would use this library for model creation and
> data-driven improvement, no need to reinvent X3D data structures or methods.
> > >>>>>>>>>>
> > >>>>>>>>>> This is autogenerated from X3DUOM so it will always stay in
> sync with latest/greatest X3D4.
> > >>>>>>>>>>
> > >>>>>>>>>> We've done some preliminary work with Jupyter notebook,
> listed there.  Lots of potential projects in TODO section.
> > >>>>>>>>>>
> > >>>>>>>>>> [2.2]   X3DPSAIL: Jupyter notebook, TODO
> > >>>>>>>>>>
> https://www.web3d.org/x3d/stylesheets/python/python.html#Jupyter
> > >>>>>>>>>>
> https://www.web3d.org/x3d/stylesheets/python/python.html#TODO
> > >>>>>>>>>>
> > >>>>>>>>>> For pythonocc conversion efforts, will be happy to ensure that
> > >>>>>>>>>> a. all improvements to API are applied,
> > >>>>>>>>>> b. ensure that validation of all scene-graph inputs remains
> rigorous,
> > >>>>>>>>>> b. utility methods are added for easy use together,
> > >>>>>>>>>> d. examplar conversion models are properly saved in X3D
> Examples Archive,
> > >>>>>>>>>> e. Whatever else!
> > >>>>>>>>>>
> > >>>>>>>>>> Looks like there is vast potential here.  Hoping folks start
> picking it up and applying capabilities.
> > >>>>>>>>>>
> > >>>>>>>>>> Have fun with X3D Python!  8)
> > >>>>>>>>>>
> > >>>>>>>>>>
> > >>>>>>>>>> On 4/17/2020 5:15 PM, Andreas Plesch wrote:
> > >>>>>>>>>>> Did somebody put together an x3d converter based on
> pythonocc ?
> > >>>>>>>>>>>
> > >>>>>>>>>>> Here is an example:
> > >>>>>>>>>>>
> > >>>>>>>>>>> https://senties-martinelli.com/software/cad-viewer
> > >>>>>>>>>>>
> > >>>>>>>>>>> It could convert  step, stp, igs, iges, obj and stl formats.
> Format
> > >>>>>>>>>>> import and export is only a small subset of pythonocc
> > >>>>>>>>>>> (https://github.com/tpaviot/pythonocc-core) but I think
> just making
> > >>>>>>>>>>> this functionality easy to use with a dedicated converter
> could be
> > >>>>>>>>>>> really valuable.
> > >>>>>>>>>>>
> > >>>>>>>>>>> In the end, I think a  web service just for conversion would
> be most useful.
> > >>>>>>>>>>>
> > >>>>>>>>>>> I played with the Jupyter notebook and could generate with
> only a few lines x3d.
> > >>>>>>>>>>>
> > >>>>>>>>>>> And there are ways to generate a standalone webapp from a
> notebook:
> > >>>>>>>>>>>
> https://discourse.jupyter.org/t/how-to-transform-a-jupyter-notebook-into-a-webapp/758/6
> > >>>>>>>>>>>
> > >>>>>>>>>>> That could be quick way to offer a web service.
> > >>>>>>>>>>>
> > >>>>>>>>>>> Have there been attempts of this kind ? Would there be
> interest in a
> > >>>>>>>>>>> open source github hosted project ?
> > >>>>>>>>>>>
> > >>>>>>>>>>> -Andreas
> > >>>>>>>>>>
> > >>>>>>>>>> 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
> http://faculty.nps.edu/brutzman
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>> --
> > >>>>>>>>> Andreas Plesch
> > >>>>>>>>> Waltham, MA 02453
> > >>>>>>>>>
> > >>>>>>>>> _______________________________________________
> > >>>>>>>>> x3d-public mailing list
> > >>>>>>>>> x3d-public at web3d.org
> > >>>>>>>>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
> > >>>>>>>
> > >>>>>>>
> > >>>>>>>
> > >>>>>>> --
> > >>>>>>> Andreas Plesch
> > >>>>>>> Waltham, MA 02453
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>> --
> > >>>>>> Andreas Plesch
> > >>>>>> Waltham, MA 02453
> > >>>>>>
> > >>>>>
> > >>>>> 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
> http://faculty.nps.edu/brutzman
> > >>>>
> > >>>>
> > >>>>
> > >>>> --
> > >>>> Andreas Plesch
> > >>>> Waltham, MA 02453
> > >>>
> > >>>
> > >>>
> > >>> --
> > >>> Andreas Plesch
> > >>> Waltham, MA 02453
> > >>
> > >>
> > >>
> > >> --
> > >> Andreas Plesch
> > >> Waltham, MA 02453
> > >
> > >
> > >
> >
> > 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
> http://faculty.nps.edu/brutzman
>
>
>
> --
> Andreas Plesch
> Waltham, MA 02453
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20200508/50e052e3/attachment-0001.html>


More information about the x3d-public mailing list