to X3D home page
   

Course Videos: X3D for Web Authors

    
to X3D Graphics for Web Authors

These video lessons support the textbook X3D: Extensible 3D Graphics for Web Authors, which shows how to build and animate models using X3D.

Primary supporting materials for the book and these video lessons include the X3D-Edit authoring tool, example scenes, and chapter slidesets. Supplementary learning materials include X3D Resources, X3D Tooltips, and X3D Scene Authoring Hints.

These videos were produced during the presentation of two MOVES Institute courses: Introduction to X3D Graphics (MV3204) and Advanced X3D Graphics (MV4205). The course presenter is book coauthor Don Brutzman. Video production notes are described in the following reference.

Malnick, Jeff, Don Brutzman and Jeffrey Weekley, Best Practices and Workflows for Producing Video-Based Classroom Content - Case Study: Producing X3D for Web Authors, Modeling Virtual Environments and Simulation (MOVES) Institute, Naval Postgraduate School (NPS), Technical Report NPS-MV-2009-001, 8 April 2009. Available online.
Examples Chapter Sessions Session Descriptions Time .pdf
0 Getting Started Goals and motivation, installing X3D-Edit authoring tool and example scenes, course introduction 46:50 slides
1 Technical Overview 1A Introduction, historical background, Web3D Consortium, importance of standardization, X3D Specifications and International Organization of Standards (ISO), intellectual property rights (IPR) and open-source software, interoperability considerations 47:47 slides
Technical Overview 1B Browsers and players, models versus programming, scene graphs, behaviors and events, profiles and components, document metadata, fields 35:10
Technical Overview 1C Importance of consistency, strong data typing, accessType, XML design patterns for X3D, compressed binary encoding, standards liaison organizations 25:35
Technical Overview 1D X3D-Edit authoring tool development, functional testing, bug tracking, version control, Netbeans, help system 17:17
2 Geometry Primitives 2A Shape and geometry nodes, common geometry fields 30:17 slides
Geometry Primitives 2B Box and Cylinder nodes, X3D Tooltips 35:21
Geometry Primitives 2C HelloWorld example, Cone Cylinder and Sphere nodes 34:44
Geometry Primitives 2D Text node for flat 2D strings, launching an X3D scene into one or more external players, multiple-field MFString arrays, handling special characters using XML character entities 46:31
Geometry Primitives 2E FontStyle node for vertical and horizontal alignment of text, open-source licenses 17:38
3 Grouping 3A Grouping node concepts, XML encoding 12:04 slides
Grouping 3B Inline node and url field: creating an ordered list of equivalent url references 42:02
Grouping 3C X3D resources and additional references, Inline node, url fields, level of detail (LOD) node 46:28
Grouping 3D Switch node, review grouping node concepts, 3D grid resources 27:30
4 Viewing Navigation 4A Viewing, navigation, bindable nodes and binding operations example 11:30 slides
Viewing Navigation 4B Viewpoint node, viewing and navigation 32:20
Viewing Navigation 4C NavigationInfo and Anchor nodes, uniform resource locator (url) 39:33
Viewing Navigation 4D Billboard node keeps children facing user view, Collision node reports collision between polygonal geometry and user view 46:55
Viewing Navigation 4E ViewFrustum prototype example: visualizing range of camera visibility in an X3D world 9:22
5 Appearance 5A Appearance node for associating material and textures with geometry, inside a parent Shape node 21:45 slides
Appearance 5B Material and TwoSidedMaterial nodes, Universal Media materials library 43:20
Appearance 5C Textures and ImageTexture node, texture coordinates, image copying and flipping to produce a continuously repeating texture, file formats 42:31
Appearance 5D MovieTexture and PixelTexture nodes, LineProperties and FillProperties nodes 32:42
Appearance 5E PixelTexture node, SFImage data type, PixelTexture image-import tool 44:52
Appearance 5F More on PixelTexture node, hexadecimal representations, MovieTexture node animating on top of geometry 39:25
Appearance 5G TextureTransform, TextureCoordinate and TextureCoordinateGenerator nodes, Pellucid materials-visualization tool 22:33
6 Geometry 6A Points lines and polygons: triangles, single-sided and double-sided polygons, right-hand rule. Common fields: counter-clockwise (ccw) and colorPerVertex. 29:22 slides
Geometry 6B Points lines and polygons, continued. Other common fields: convex (versus concave), creaseAngle, and various index fields. Color, ColorRGBA, Coordinate and CoordinateDouble nodes. 39:41
Geometry 6C Pointset, IndexedLineSet and LineSet nodes 40:25
Geometry 6D IndexedLineSet continued, LineProperties node 5:24
Geometry 6E IndexedFaceSet and ElevationGrid nodes 43:39
Geometry 6F Extrusion nodes (plus a Play-Doh Fun Factory!) 39:14
7 Event Animation 7A Event animation, behaviors and ROUTEs, data types, overview of 10-step process 40:20 slides
Event Animation 7B Animation 10-step process, ROUTE editor, interpolation, Time sensor, scalar interpolator, interpolation nodes 34:01
Event Animation 7C TimeSensor and ScalarInterpolator nodes, double linear interpolation principles 40:16
Event Animation 7D ColorInterpolator, OrientationInterpolator, PositionInterpolator and PositionInterpolator2D, NormalInterpolator and CoordinateInterpolator2D nodes 1:06:37
8 User Interactivity 8A User interactivity, pointing devices, selecting and dragging, common fields 50:53 slides
User Interactivity 8B TouchSensor node and pointing-device selection 27:03
User Interactivity 8C Creating a morphable model using CoordinateInterpolator, PlaneSensor node, CylinderSensor node, ArbitraryAxisCylinderSensor prototype, SphereSensor node, KeySensor and StringSensor nodes, plus advanced prototypes TimeDelaySensor, TimeSensorEaseInEaseOut and DoubleClickTouchSensor 1:33:48
9 Event Utilities, Scripting 9A Event Utility nodes: comparing continuous interpolators to discrete sequencers and triggers, declarative versus imperative programming styles 34:48 slides
Event Utilities, Scripting 9B Event Utility nodes: BooleanFilter, BooleanSequencer, BooleanToggle, triggering event-animation chains with BooleanTrigger, then IntegerSequencer, IntegerTrigger and TimeTrigger nodes 1:06:23
Event Utilities, Scripting 9C Script node, scripting concepts, event model and execution model 21:14
Event Utilities, Scripting 9D Event cascades, field connections for script code, SimpleScriptStateEvents example 1:18:09
Event Utilities, Scripting 9E Scripting advanced examples: ScriptSimpleStateEvents, ScriptEvents, ScriptComplexStateEvents, directOutput and mustEvaluate fields, initialization and shutdown, comparison of direct field control and ROUTEd event control 45:19
10 Geometry2D 10A Geometry2D nodes: concepts, Arc2D, ArcClose2D, Circle2D, Disk2D 32:27 slides
Geometry2D 10B Geometry2D nodes: Polyline2D, Polypoint2D, Rectangle2D, TriangleSet2D 31:59
11 Lighting, Environment 11A Lighting concepts, common lighting fields 40:48 slides
Lighting, Environment 11B DirectionalLight node, NavigationInfo headlight, and PointLight nodes. 41:40
Lighting, Environment 11C Spotlight node. Environment concepts, Background, TextureBackground and Fog nodes. 1:43:39
12 Environment Sensor, Sound 12A Environment Sensor concepts and LoadSensor 35:55 slides
Environment Sensor, Sound 12B ProximitySensor and VisibilitySensor nodes 23:31
Environment Sensor, Sound 12C LoadSensor node, constructing a Heads Up Display (HUD) prototype 16:15
Environment Sensor, Sound 12D Sound concepts, Sound node, AudioClip node 29:31
13 Triangles, Quadrilaterals 13A Triangles and Quadrilaterals: common and distinguishing geometry concepts 32:51 slides
Triangles, Quadrilaterals 13B Normal (perpendicular) vectors, Normal node, TriangleSet node for ordered definition of points into polygons, and morphing TriangleSet example 43:44
Triangles, Quadrilaterals 13C Ordered polygonal nodes: TriangleFanSet, TriangleStripSet, and QuadSet 33:27
Triangles, Quadrilaterals 13D Indexed polygonal nodes: IndexedTriangleSet, IndexedTriangleStripSet, IndexedTriangleFanSet and IndexedQuadSet 46:13
14 Prototypes 14A Prototype concepts, X3D language extensibility, declarations versus instances, strong typing, syntax contrast XML (.x3d( and ClassicVRML (.x3dv) 36:51 slides
Prototypes 14B X3D Player support and Schematron validation; Prototype declarations (ProtoDeclare), ProtoInterface, ProtoBody and field declarations 40:36
Prototypes 14C IS/connect links between ProtoInterface field definitions and ProtoBody contained node declarations 27:33
Prototypes 14D Using IS/connect to expose an embedded Script node; External prototype declarations (ExternProtoDeclare) and field signatures 32:08
Prototypes 14E Prototype instance (ProtoInstance) copies and fieldValue re-initialization. Advanced example: ViewFrustum prototype demonstrating a complete combination of best practices with prototypes and scripts. 59:20
Totals 62 That's all for now. Have fun with X3D! 37:35:06 1200+

Video production credits: Jeff Malnick and Jeff Weekley, NPS. Labor support provided by the Office of Continuous Learning (OCL).

Videos are rendered and viewable using Quicktime.

This work is provided royalty free for any purpose under a Creative Commons open-source license.

Uniform Resource Locator (URL) for this page is https://www.movesinstitute.org/Video/Courses/X3dForWebAuthors/X3dForWebAuthorsVideo.html
Revised 28 December 2010.


(official disclaimer)
"Material contained herein is made available for the purpose of 
peer review and discussion and does not necessarily reflect the 
views of the Department of the Navy or the Department of Defense."