Package Vrml2Sourcebook.Siggraph98Course
This entire book was presented as a tutorial during the ACM Special Interest Group on Graphics (SIGGRAPH) conference in 1998.
The SIGGRAPH98 online course Introduction to VRML97 by David R. Nadeau, John L. Moreland, and Michael M. Heck includes all of the examples translated here. Many of these X3D scenes are adapted directly from the original VRML 2.0 Sourcebook chapter examples.
A large number of Interesting Scenes have been added to this course for learning VRML and X3D. Source code for the original example models is also provided.
Original Course Abstract. The Virtual Reality Modeling Language (VRML) is an international standard for describing 3D shapes and scenery on the World Wide Web. VRML's technology has very broad applicability, including web-based entertainment, distributed visualization, 3D user interfaces to remote web resources, 3D collaborative environments, interactive simulations for education, virtual museums, virtual retail spaces, and more. VRML is a key technology shaping the future of the Web. Participants in this tutorial will learn how to use VRML 97 (a.k.a. ISO VRML, VRML 2.0, and Moving Worlds) to author their own 3D virtual worlds on the World Wide Web. Participants will learn VRML concepts and terminology, and be introduced to VRML's text-format syntax. Participants also will learn tips and techniques for increasing performance and realism. The tutorial includes numerous VRML examples and information on where to find out more about VRML features and use.
This X3D VRML2 Sourcebook Siggraph 98 Course examples archive is online.
The X3D Java Scene Access Interface (x3djsail) package provides concrete classes for each X3D node and statement.
Online: X3D Java Scene Access Interface Library (X3DJSAIL) and X3DJSAIL Javadoc
- See Also:
-
ClassesClassDescriptionSound emitter: continuous localized sound example.Simple anchor example illustrates the use of an Anchor link around the shapes used to build a door.Animated grid world illustrates the use of a script to change the whichChoice field of a Switch node.Transform group example: simple arch illustrates the use of translation and rotation to position and orient shapes.Transform group example: gazebo made of arches.Torch with animated flames: this file illustrates creation of a Torch prototype node via the Prototype declaration syntax.Torch with animated flames (high detail): this file creates a torch with animated flames created using the Flames prototype node defined by an EXTERNPROTO.Torch with animated flames (medium detail): this file creates a torch with animated flames created using the Flames prototype node defined by an EXTERNPROTO.Torch with non-animated flames (low detail) This file creates a torch *without* animated flames, but for use in an LOD with other torches that do have animated flames.Background example, sky above partially transparent mountain images above ground.Background example, sky above ground.Demonstrate plotting values with 3D emphasis.This scene illustrates the use of an Extrusion to build a twisted bar.Bouncing beachball (JavaScript/VRMLscript version): this world illustrates the use of a Script node to create a computed animation path.Bouncing beachball (Java version): this world illustrates the use of a Script node to create a computed animation path.ouncing beachball (with prototype and JavaScript): this world illustrates the use of a PROTO to encapsulate a Script node, timer, shape, and routes to create a vertically bouncing beach ball.Tumbling Boxes: this world builds a batch of perpetually tumbling boxes.Primitive geometry: Box.Applying a texture, without and with textureTransform.Burst of lines: illustrate the use of an IndexedLineSet to build a 3D star-burst.Simple button: this file contains a Prototype declaration to manage a button that, when clicked, rotates 90 degrees and sends a URL.Diet VRML can illustrates the use of texture mapping on primitive shapes.A fairy-tale castle atop a green hill with a blue sky behind.Gothic vaulted ceiling: this file combines together four vaulted ceiling pieces to create a vaulted ceiling, such as might be found in gothic architecture.This chair is inlined into the dinette scene to illustrate inline groups.This scene presents some colorful frames.Gothic marble column: this file builds a column, such as might be found in gothic architecture.Columns and torches: this world uses an externally defined Torch prototype node with an animated flame, placed on a column, then instanced multiple times to form a double row of columns.Primitive geometry: Cone.Cookie texture mapping using texture coordinates.creaseAngle demonstration: select and drag upper halves of quadrilaterals to change creaseAngle and shading.Cutting plane parts: this file contains two prototype declarations used in creating a cutting plane.Cutting plane demo where users can drag two slice interfaces to show the cross sections of a volume.Primitive geometry: Cylinder.The Dinette example illustrates the use of the Inline node.Example lighting using DirectionalLight.This scene illustrates the use of an Extrusion to build a donut (torus).The Doorway scene consists of four sliding stairs that lead forward along a path to a glowing white doorway.Dungeon door: this is a simple rectangular door with a studded metal texture.Dungeon floor: this is a simple rectangular floor textured with a stone block image.Dungeon room: this world illustrates the use of Inlines to pull in pieces of a a dungeon room contained in other files.Dungeon wall: this is a simple rectangular floor textured with a stone block image.Dungeon wall #2: this is a simple rectangular floor textured with a stone block image.Supporting geometry for animation in ExtrusionSpiralMotion.Spiral flow with particle paths shows how to move a set of particles (spheres) along a pre-computed animation path.Chain-link fence illustrates the use of rotation and scaling within texture transforms.Flickering flames: this prototype declaration illustrates the use of a script to cycle between textures, and then encapsulation of the script, a clock, and a polygon, all within a new Flames prototype node that makes flickering flames.Floating pads world: a collection of white pads are created.Mesh floor: this file creates a large flat floor.Fog example: no fog.Fog example: linear fog, visibility range 30.Fog example: exponential fog, visibility range 30.Fog example.Fog example: linear fog with a background - do not do this!.Scene geometry to support illustrating fog effects in test scenes.Glowing Door: this file creates a simple arched-top door, glowing with a white light.Half-cylinder crease-angle demo illustrates how the crease angle value affects the smoothness of shading on a half-cylinder.Robotic hand juggling primitives: this scene illustrates the use of the primitive shapes and a lot of nested Transform nodes to created articulated structures.The Heads-up Display (HUD) world illustrates creation of a heads-up display that is locked in place to the screen.Horn scene illustrates the use of an Extrusion to build a Doctor Seuss-like horn.Nested isolines illustrate the use of black fog to do depth-cueing.Nested isosurfaces illustrate the use of IndexedFaceSet nodes to build complex geometry, such as isosurfaces (constant-value contours in 3D).Synthesizer keyboard that creates a playable synthesizer keyboard.Desk lampillustrate the use of multiple sensors, nested into groups within groups along with the shapes they sense.Desk lamp with light toggle switch: this file builds a desk lamp that can be moved about.Desk lamp with light toggle switch: this file builds a desk lamp that can be moved about.Colored terrain scene illustrates the use of a highly detailed ElevationGrid to build a color-mapped terrain.Lightning bolt illustrates the use of an IndexedFaceSet node to build complex geometry.Building shapes out of points, lines, and faces: IndexedLineSet example.This example illustrates use of JavaScript to load a scene from a file through use of the Browser object.Burning log illustrates the use of an IndexedFaceSet and Color nodes to build a flaming log where the flame color varies across the flame polygons.A Match!Monolith world: six vertical monoliths stand arranged together.Simple mountain illustrates the use of an ElevationGrid to build a mountain.High-resolution mountain.Low-resolution mountain.Mid-resolution mountain.Simple colored mountain illustrates the use of an ElevationGrid to build a colored mountain.Simple colored mountain, smooth shaded: illustrate the use of an ElevationGrid to build a colored mountain.Multiple nested sensors: this world illustrates the use of nested sensors where one sensor covers shapes in an inner Transform group, and another sensor covers shapes in an outer Transform group.Tumbling Boxes: this world builds a batch of perpetually tumbling boxes.This file builds a pedestal, such as might be found in gothic architecture.A playyard to demonstrate NavigationInfo operation.Example lighting using PointLight.Building shapes out of points, lines, and faces: PointSet example.The Primitives on Pedestals scene highlights the geometry primitives, placing each one above a Gothic pedestal.Proximity door illustrates the use of a ProximitySensor node around a door.Proximity pillars example illustrates the use of proximity sensors to sense when the user gets close, and trigger animations or sounds.Query browser state: this world uses the "Browser" object in a script to query information about the VRML browser.RoboBill is a Robot Billboard that illustrates the use of Group, Transform, and Billboard groups - navigate around, here's looking at you!Robot Billboard body for RoboBill.Robot Billboard head for RoboBill.Robot generator prototype to create multiple new nodes.Controlling color on coordinate-based geometry: PointSet example.The shiny spheres world creates a set of spheres, each given a different set of material attributes.Slab World example illustrates use of Appearance and Material nodes to set the main shading color (diffuseColor), glow color (emissiveColor), and transparency level of a shape.Spiral slide scene illustrates the use of an Extrusion to build a playground slide.This world creates a morphing snake using an Extrusion node.Visible marker used by Sound emitter scene.Multiple shapes building a more complex object.Simple spaceship scene illustrates the use of VRML primitive shapes to build a more complex shape.Primitive geometry: Sphere.Spherical geometry cluster to support illustration of lighting effects by other test scenes.Spiral flow shows how to move a set of particles (spheres) along a pre-computed animation path.Example lighting using SpotLight.Squishy ball world illustrates the use of orientation, color, and position interpolators.The Stairway world uses a twisting, branching, floating stairway to lead the visitor to six doorways.Stop-watch with automatically moving second, minute, and hour hands, start and stop buttons, and a stop-watch sweep second hand.Geometry used in Sound test scene.Multiple sounds example: submarine world with sounds.This table is inlined into the dinette scene to illustrate inline groups.Temple of the Glowing Orb: this world creates a glowing rotating orb when the pedestal is touched.Terrain snapshot providing an animation keyframe for AnimatedGrid.x3d.Terrain snapshot providing an animation keyframe for AnimatedGrid.x3d.Terrain snapshot providing an animation keyframe for AnimatedGrid.x3d.Terrain snapshot providing an animation keyframe for AnimatedGrid.x3d.Terrain snapshot providing an animation keyframe for AnimatedGrid.x3d.Terrain snapshot providing an animation keyframe for AnimatedGrid.x3d.Terrain snapshot providing an animation keyframe for AnimatedGrid.x3d.Terrain snapshot providing an animation keyframe for AnimatedGrid.x3d.Terrain snapshot providing an animation keyframe for AnimatedGrid.x3d.Terrain snapshot providing an animation keyframe for AnimatedGrid.x3d.A FontStyle node describes Text font, this scene compares default fonts.A FontStyle node describes Text font, this scene compares different justification values.Primitive geometry: Text.A FontStyle node describes Text font, this scene compares different sizes.Animating textured plane: this world illustrates the use of the TexturePlane prototype node defined in an external file.A FontStyle node describes Text font, this scene compares vertical and justification layout.Tumbling Spheres: this world builds a batch of perpetually tumbling spheres.Timed-timer demonstrates how to drive one TimeSensor with another one in order periodically trigger another animation.Medieval torch with high-resolution detail.Medieval torch with medium-resolution detail.Medieval torch with low-resolution detail.Medieval torch at high, medium and low resolutions for range-based Level of Detail (LOD) viewing.Torche models shown side-by-side at all 3 levels of resolution.Transforming Shapes.This world illustrates the use of translation, rotation, and scaling to build a multi-level tower.This file builds a stair tread (a marble slab) and decorations for the tread (a sphere and pyramid at either end).A set of trees in front of a wall.Tumble group: this file contains a Prototype declaration to manage a group of shapes, tumbling them in X, Y, and Z directions.Tumbling Cylinders: this world builds a batch of perpetually tumbling cylinders.Gothic vaulted ceiling archway: this file builds a piece of a vaulted ceiling using an IndexedFaceSet node.Vector: this world illustrates the use of a Prototype declaration to define a generic vector whose position, orientation, scale, and color are all set by incoming fields.Vector field: this world illustrates the use of an external prototype to define a generic vector.Wiggling cubes illustrate the use of CoordinateInterpolator nodes to vary the coordinates of shapes (in this case a set of IndexedFaceSet cubes).This world builds a windmill whose sails spin about.Wood coloring: illustrate the use of material colors and a grayscale texture to colorize the texture as it is applied to a shape.