Virtual Instrument Representation in X3D and some CIF->XML stuff.

Similar documents
Topics. Overview of VRML 97 VRML Today After VRML

Introduction to X3D. Roberto Ranon HCI Lab University of Udine, Italy

Introduction to Computer Graphics. Knowledge basic concepts 2D and 3D computer graphics

CS451Real-time Rendering Pipeline

High Level Graphics Programming & VR System Architecture

Open Scene Graph Lecture Note #1

Fulfilling the Mandate of Information Durability and Access. Nov 2, 2018

<Insert Picture Here> JavaFX 2.0

2.5 Animations. Applications. Learning & Teaching Design User Interfaces. Content Process ing. Group Communi cations. Documents.

2.5 Animations. Contents. Basics. S ystem s. Services. Usage. Computer Architectures. Learning & Teaching Design User Interfaces.

Foundations of 3D Graphics Programming

AADL Graphical Editor Design

Index FEATURES LIST 2

Web Standards Mastering HTML5, CSS3, and XML

Chapter 5 - The Scene Graph

3D Programming. 3D Programming Concepts. Outline. 3D Concepts. 3D Concepts -- Coordinate Systems. 3D Concepts Displaying 3D Models

Index FEATURES LIST 2

SimLab plugin for 3DS Max. SimLab Plugin for 3DS Max

lecture 18 - ray tracing - environment mapping - refraction

Ciril Bohak. - INTRODUCTION TO WEBGL

Delivery Options: Attend face-to-face in the classroom or remote-live attendance.

Drawing Fast The Graphics Pipeline

WebGL and the Three-D Internet. Hugh Fisher CECS ANU 2013

Drawing Fast The Graphics Pipeline

U3D and Javaview s PDF Export

Lecture 12: Mid-term test solution & project. CITS 3003 Graphics & Animation

Delivery Options: Attend face-to-face in the classroom or via remote-live attendance.

X3DOM Getting declarative (X)3D into HTML

Computer Graphics 1. Chapter 2 (May 19th, 2011, 2-4pm): 3D Modeling. LMU München Medieninformatik Andreas Butz Computergraphik 1 SS2011

Rasterization and Graphics Hardware. Not just about fancy 3D! Rendering/Rasterization. The simplest case: Points. When do we care?

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

Part III: Survey of Internet technologies

Grid Exemplars: Web mapping in 3D. - Mark Morrison

Lesson 5: Multimedia on the Web

Fire Dynamics Simulator

3D ENGINE/DEVELOPER TOOLS ANALYSIS

RIS shading Series #2 Meet The Plugins

Introduction to Virtual Environments - Spring Wernert/Arns. Lecture 4.2 Animation & Interaction

NVSG NVIDIA Scene Graph

On Design of 3D and Multimedia Extension of Information System Using VRML

Introduction to Shaders.

Preparing design to support automation and robotisation in construction

MathML to TeX Conversion: Conserving high-level semantics

Computer Graphics CS 543 Lecture 1 (Part I) Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

CaptainCasa Enterprise Client. CaptainCasa Enterprise Client. CaptainCasa & Java Server Faces

Visual HTML5. Human Information Interaction for Knowledge Extraction, Interaction, Utilization, Decision making HI-I-KEIUD

IADS Model Information. June 2013 SYMVIONICS Document SSD-IADS SYMVIONICS, Inc. All rights reserved.

Grouping Nodes. X3D Graphics for Web Authors. Chapter 3

CS 354R: Computer Game Technology

Cuttlefish The Universal 3D Printer Driver

Development of Computer Graphics

Full Screen Layout. Main Menu Property-specific Options. Object Tools ( t ) Outliner. Object Properties ( n ) Properties Buttons

Digital Asset Management 2. Introduction to Digital Media Format

informatory frame VRML browser window Java applet

Cinema 4D R20 (SP2) Change List Cinema 4D / BodyPaint 3D Service Release

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

An Introduction to Geometric Modeling using Polygonal Meshes

Drawing Fast The Graphics Pipeline

Lesson 5: Multimedia on the Web

Java2D/Java3D Graphics

Computer Graphics - Treasure Hunter

Dynamics in Maya. Gary Monheit Alias Wavefront PHYSICALLY BASED MODELING SH1 SIGGRAPH 97 COURSE NOTES

ACGV 2008, Lecture 1 Tuesday January 22, 2008

RenderMonkey 1.6. Natalya Tatarchuk ATI Research

Dive into Mobile VR/AR Games

Digital 3D technologies

CS 543: Computer Graphics. Introduction

Qt + Maemo development

John Hsu Nate Koenig ROSCon 2012

X3D Specification Activities

D19 Technology Transfer in Partners

CS 4620 Program 3: Pipeline

CS2 Advanced Programming in Java note 8

WebGL. Announcements. WebGL for Graphics Developers. WebGL for Web Developers. Homework 5 due Monday, 04/16. Final on Tuesday, 05/01

AN INTERACTIVE LAND USE VRML APPLICATION (ILUVA) WITH SERVLET ASSIST. Lee A. Belfore, II Suresh Chitithoti

Topics and things to know about them:

MPEG-4 AUTHORING TOOL FOR THE COMPOSITION OF 3D AUDIOVISUAL SCENES

Future of X3D: X3D version 4 with HTML5/DOM

Esri UC2013. Technical Workshop. Type Presentation Name Here

Overview. VO Rendering SS Radiance Workflow 1. Radiance. Radiance Workflow 2. Radiance in Practice. Unit 8: Rendering Systems

Data Analysis Workbench

R E L E A S E N OT E S

3D webservices - where do we stand? Emmanuel Belo

Content. Building Geometry Appearance Lights Model Loaders

CS 4620 Program 4: Ray II

ABOUT ME. Gianluca Bardaro, PhD student in Robotics Contacts: Research field:

A tutorial report for SENG Agent Based Software Engineering. Course Instructor: Dr. Behrouz H. Far. XML Tutorial.

VRML for Visualization

Developing a Common Instrument Middleware Architecture for Remote Instrument Operation

Web3D Design Printing and Scanning WG

MODELING AND HIERARCHY

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 24 Solid Modelling

API Background. Prof. George Wolberg Dept. of Computer Science City College of New York

move object resize object create a sphere create light source camera left view camera view animation tracks

WME MathEdit. An initial report on the WME tool for creating & editing mathematics. by K. Cem Karadeniz

Building scalable 3D applications. Ville Miettinen Hybrid Graphics

Graphics Shaders. Theory and Practice. Second Edition. Mike Bailey. Steve Cunningham. CRC Press. Taylor&FnincIs Croup tootutor London New York

GiD v12 news. GiD Developer Team: Miguel Pasenau, Enrique Escolano, Jorge Suit Pérez, Abel Coll, Adrià Melendo and Anna Monros

Towards Intelligent Summarising and Browsing of Mathematical Expressions

Interactive 3D graphics in HEP

Transcription:

Virtual Instrument Representation in X3D and some CIF->XML stuff. Doug du Boulay, Materials and Molecular Structure Network, University of Sydney

Virtual Diff. evolution J. Appl. Cryst. (1995). 28, 225-227. Min Yao, Hokkaido University C code program SGI Iris GL (Graphics Library predates OpenGL 3D graphics library) Displays kappa and 4 circle X-ray diffractometers. Also displays observed reflection listings from a file...? ESRF (Min Yao + Darren Spruce) adapted for use on HP computers, updated to OpenGL for 3D graphics, uses tcl/tk for the GUI, also uses tcl pipes for communication with beamline. Used to display/monitor beamline status. control? dunno. Support for about 6 different diffractometer geometries.

original & ESRF versions

new - Java Translated Min's C-code to Java. JOGL JNI to OpenGL libraries Minimalist Java Swing GUI useable as an Applet, or Java application. Diffractometer Status Monitoring HTTP server communication using: PUSHLETS Pseudo-realtime display updates.

OpenGL - the sad truth Very low level code: public static void draw_diskz(gl gl, float r, float[] center, float shifx, float shify, floa t[] vect, int divid, int start, int end) { int i; float x,y; float n[] = new float[3]; float v[] = new float[3]; } gl.glbegin(gl.gl_triangle_fan); gl.glnormal3fv(vect, 0); v[0] = center[0] ; v[1] = center[1]; v[2] = center[2]; if (divid == 40) { for (i = start; i <= end; i++) { if(i == divid ) { x = cons40[0][0]; y = cons40[1][0]; } else { x = cons40[0][i]; y = cons40[1][i]; } v[0] = x*r-shifx; v[1] = y*r-shify; gl.glvertex3fv(v, 0); } } gl.glend(); Construct all diff. components algorithmically - Decompose cylinders, etc into triangles with vertex normals for correct shading. Repeat: adjust, recompile, execute... Time consuming/tedious/mundane

Higher level approaches 3DS 3D studio DXF used by AutoCAD FLT openflight IGES Initial Graphics Exchange Specification IV Open Inventor LWSC Lightwave Scene MGF Materials and geometry format OBJ wavefront advanced visualizer object file. U3D universal 3D format Intel +... 3DXML - Dassault + Microsoft standard Beyond Tomorrow: Dassault Falcon Jet aeroplane: designed/modelled/simulated entirely in VR Solid Works (perhaps the best commercial option???) a standard for autocad/cam as well as physics simulation STEP format supplied by Bruker - vastly more detail than we need for simulation.

Virtual worlds? Proprietry 3D virtual world formats activeworlds.com Blaxxun Interactive Worlds.com SecondLife.com Alternatively: VRML or X3D advantages: ISO standard! scripted text file, relatively easy to read and edit. several free players/browsers free editor X3D has an XML format can play nicely with other XML dialects. (namespace issues???) Open flexible, evolving spec - different possible levels of support

VRML/X3D Web3D consortium - the driving force behind VRML VRML1 ~1994 SGI Open Inventor VRML2 = VRML97 also an ISO standard SGI Cosmo Player cortona X3D Also includes a spatial audio spec. Octaga Windows only + browser plugin Flux Player Windows only + browser plugin + SAI Xj3D modular Java based - uses JOGL or Java3D or Mobile 3D - no plugin, no external SAI primary development horse of Web3D. FreeWRL Canada Gov. for linux + OS X - soon expected external SAI written in C and Java, uses OpenGL firefox plugin support

Creating X3D models manually - written by hand manually with application specific editor e.g. X3D-Edit Graphically - Flux Studio beta download free but some features from the core spec are missing. Amaya has an X3D exporter. Blender - free 3D OpenGL modelling tool, (Windows + linux) exports VRML1 - transformable to VRML2 and then X3D. Downside? Can't really think of any.

X3D profiles core absolute minimalist graphic primitives implementation interchange exchange of geometry between authoring systemms no user interaction simple viewers simple lighting models interactive profile limited navigation and environment sensors immersive profile for immersive virtual worlds including navigation and environment sensors full profile all features of the X3D standard

Extended Profiles geospatial optimzation for mapping and 3D terrain models Human animation abstract representation for modelling 3D human figures including joint limitations programmable Shaders to increase realism CAD intended for interchange of CAD data materials textures simplifies complex objects down to simple ones. Distributed Interactive Simulations aka. networked modelling & simulation several others. Extension elements? attributes? -unrecognised/unsupported

X3D XML structure <X3D profile=? > <head> <meta /> </head> <scene> <background /> <navigationinfo /> <viewpoint /> <protodeclare name="some fundamental/reusable scene component"> also externalprotos loaded from URL bank/library - instrument ontologies? <protobody> <group> <transform> nested arbitrarily deep <group> <transform> <shape> <appearance> graphics primitive e.g. box, sphere, cylinder, indexed face set, triangle strips etc </protodeclare> <protodeclare>...</protodeclare> <group> <sensors> time sensors= alarms, pointing device sensors, drag, touch sensors, environment sensors <lights> <shapes> <group> <transform DEF="UNIQUE_ID" translations, rotations, scales> <protoinstance> <interpolators - orientation, position scalar...> </group> <routes> from sensor to interpolator from interpolator to node ( transform or color or...) </scene> </X3D>

Script Nodes! Supporting Javascript, or Java (class URLs) Can manipulate internally via the Scene Authoring Interface (SAI) Also externally, through exported SAI, (only in Flux) <Transform translation="-2.3 2 0"> <Shape> <Appearance> <Material diffusecolor="0 0 0" emissivecolor="0 0 0"/> </Appearance> <Text DEF="LOGO_TEXT"> <FontStyle USE="TEXT_STYLE"/> </Text> </Shape> </Transform> <Script DEF="LOGO_SCRIPT"> <field name="logo" type="mfstring" accesstype="outputonly"/> <![CDATA[ ecmascript: function initialize() {Logo[0] = Browser.getName() + ' ' + Browser.getVersion();} ]]></Script> <ROUTE fromnode="logo_script" fromfield="logo" tonode="logo_text" tofield="string"/>

Pushlets Java servlets with persistent state, running within a web server. Allow server to client communication over HTTP by opening up a file stream connection that never terminates. Server state is periodically, or intermittently broadcast to listening clients by dumping info into the connection pipe, iether as an XML packet, or as javascript code -to be parsed or evaluated by the client. Keepalive packets also. Consequently, we can communicate diffractometer settings and status from the web server to the client through most firewalls and over ordinary HTTP connections. ALSO: HTTP clients can publish their own status to the server, which then rebroadcasts to all listening clients. POT HOLES: - if we only receive settings at start and finish of diffractometer motion - BIS problems Sometimes the streaming connection will be broken but reestablished, - losing state info? IE only supports 2 simultaneous server connections (!???)

Con.Caris@csiro.au Stream real-time sensor data, over a thousand kilometers through secure VPNs (24 x 7), from large scale underground mining equipment, directly into 3D worlds. Model is monitored remotely using a Java application built around Flux Player.

X3D outlook? Xj3D Java X3D browser Can be embedded in a Java Applet/ Application and driven by pushlets. Can use cell orientation matrix to calculate / display observable reflections - compare with CCD/imageplate images. Picking extension for collision detection (not so good as yet) Instrument collision map?

CIF to XML??? 2000 work with Syd Hall/Spadaccini/Castleden on DDL3 New programming language drel (CIF dictionary Relational Expression Language) Add evaluation methods to CIF data name definitions for validation, or to evaluate missing data items. (Permitted but never implemented in DDL2 - potentially written in many different programming languages, whereas DDL3 would have just one - potentially mapped/transformed into different languages/libraries on demand) CIF 1.0 data representation - is quite limiting limited to single values or tables of values (STAR is more powerful, but little software exists) for extensive data tables requires new names for things that don't deserve them i.e. columns in large matrices CIF 1.0 documentation - Promoted as a journal article submission format. Crude typesetting info embedded in the text. No semantic information. CIF 1.0 seems to be 1/2 a data container with 1/2 a documentation container => 1/4 the power of XML (as an upper limit)? CIF 2.0 == DDL3 - support for matrices and lists? dunno...

CIF dictionaries ->DocBook Experience with DocBook, while working on Xtal System. Mapped the DDL0, DDL1, DDL2 and experimental DDL3 dictionaries into a DocBook XML variant - using James Hester's PyCifRW CIF reader and python. Dictionaries become explicitly hierarchical (good or bad - grouping?) Can contain figures and equations and maintain extensive cross references and bibliographic and citation information and indices and tables of contents. DDLs to describe the CIF dictionaries are also self descriptive, - can function as there own reference documentation. XML is ugly, BUT we can map the DocBook dictionary into HTML or PDF using some quite well supported free publishing tools. (tedious to write directly in XML) Equally, for current use, these documents can be XSLT transformed back to standard CIF dictionary format. Alternative DDL3 XML languages for describing algorithms include MathML, OpenMath, UnitsML? Numerical Math Consortium

CIF files ->DocBook + XDF Single-sourcing - one source of data and documentation evolving in synch? OpenOffice.sxw format is a zipped file of styles and documents and figures, so? Map CIF journal submission data into DocBook XML with an XDF supplement. DocBook - reasonably generic documentation format (see also modular Darwin Information Typing Architecture DITA topicmaps) (not 100% kosher DocBook, but very close) XDF generic XML data format developed by NASA for Astro. data. Map CIF text into LaTeX, then apply a crude text parser to identify semantic information - chemical formulae, citations, figure and table references for cross linking, componentised bibliography data. Journal publishing -> one-off transform to web/pdf, but XSLT can remap source doc -as required -across whole website to improve renderring, change style or add new behaviours for more dynamic web pages. UK All Hands escience meeting August 06: P.M.R. Cambridge extensive (== several research groups) effort to mine existing published PDF literature for chemical info, using character recognition and Natural Language Processing. Alternatively we could inject semantic info (RDF/A) from the beginning for new documents.

Latent interest in contributing to imgcif and NeXuS - New connections with ESRF and FABLE project? http://fable.sourceforge.net/ ImageCIF and Java based CCD image analysis?