X3D Python Language Binding

From Web3D.org
Revision as of 11:50, 20 July 2018 by Npolys (Talk | contribs) (Resources)

Jump to: navigation, search

The X3D Working Group has started to work on this important potential addition to the suite of X3D-capable programming languages and file encodings.



  • multiple language bindings provide equivalent implementations of X3D Scene Access Interface (SAI) Specification, which in turn accesses the X3D Architecture Specification
  • Python is widely used, so many tools and applications might then easily create/use/produce X3D
  • We are not afraid of programming languages that depend on whitespace!

The X3D Specification Relationships diagram shows how the various programming-language bindings and file encodings are related.


  • Python script interfaces
    • H3DAPI has a Python Interface (which includes most of X3D) http://www.h3dapi.org/modules/judoc/
    • Blender has an independent interface
    • NIH has written a series of Python scripts that exercise Blender
    • pyOCC python interface to Open Cascasde geometry kernel

John Carlson has produced


  • Draft 19777-6 specification added in GitHub
    • Follow examples of other X3D language bindings
    • Reach proof-of-capability initial draft
    • New Work Item Proposal (NWIP) by Web3D Consortium for ISO
  • Example scenes
    • Test scenes to demonstrate design patterns
  • Implementations
    • Conversion stylesheet, X3dToPython.xslt
    • PyJnius cross-compilation conversion of X3DJSAIL java classes
    • Possibly another library, X3DPSAIL or X3DPYSAIL perhaps?
  • Validation by compilation
    • are special tests needed, written in Python, to test program validity?
    • Compatible with X3D Unified Object Model (X3DUOM)
  • Plan of Action Milestones (POAM)


To Be Determined:

  • Is it possible to run Python scripts in a Web browser?
  • Python support for DOM?
  • Masaki Aono produced some speculative code a few years ago