#VRML V2.0 utf8
#
# The Stairway
# stairwy.wrl
# by David R. Nadeau
#
# This world uses a twisting, branching, floating stairway to lead the
# visitor to six doorways. Each doorway is an anchor leading to another
# world.
#
# This world was *hand authored*, which is way tough to do given the
# number of stairs to be positioned and oriented. This accounts for
# the heavy use of DEF and USE and rather convoluted nested transforms.
# By using a world builder application (when they become available),
# you can position each stair or group of stairs interactively, instead
# of typing in translations and rotations and hoping they work out.
#
# Things to experiment with:
# Change the anchor urls to point to your own worlds.
#
# Add a flock of birds following a path animated by a
# PositionInterpolator and an OrientationInterpolator.
#
# Drop the sky background wall and replace it with a Background node.
#
# Add sound. Perhaps a gentle wind with some occasional wind chimes.
#
WorldInfo {
title "The Stairway"
info [ "copyright (c) 1997, David R. Nadeau" ]
}
Background {
skyColor [
0.0 0.0 0.0,
0.0 0.0 0.0,
0.0 0.1 0.5,
0.0 0.0 0.0,
]
skyAngle [
1.37,
1.57,
1.77,
]
}
Transform {
scale 0.4 0.4 0.4
children [
Viewpoint {
position 9.0 -5.0 25.0
orientation 1.0 0.0 0.0 0.1
description "Entry View"
}
NavigationInfo {
type [ "WALK", "ANY" ]
headlight FALSE
avatarSize [ 0.5, 4.0, 1.5 ]
speed 4.0
}
#
# Lighting
#
DirectionalLight {
ambientIntensity 0.0
color 0.0 0.3 1.0
direction -3.0 2.0 -1.0
}
PointLight {
ambientIntensity 0.3
color 1.0 1.0 1.0
location 14.0 10.0 14.0
}
#
# (Main) platform
#
Transform {
translation 5.0 -3.0 5.0
children [
DEF Platform Shape {
appearance DEF Marble Appearance {
material Material {
diffuseColor 1.0 1.0 1.0
}
texture ImageTexture {
url "marble_g.jpg"
}
}
geometry Box {
size 4.0 0.25 4.0
}
}
]
}
#
# (Main, +Y -Z) Stairs
#
Transform {
translation 5.0 -2.5 2.5
children [
DEF ThreeUpStraightStairs Group {
children [
DEF Stair Shape {
appearance USE Marble
geometry Box {
size 4.0 0.25 1.0
}
}
Transform {
translation 0.0 0.5 -1.0
children [ USE Stair ]
}
Transform {
translation 0.0 1.0 -2.0
children [ USE Stair ]
}
]
}
]
}
Transform {
translation 5.0 -1.0 -0.5
children [ USE ThreeUpStraightStairs ]
}
#
# (Main, +Y -Z) Platform
#
Transform {
translation 5.0 0.5 -5.0
children [ USE Platform ]
}
#
# (Main, +Y -Z, +Y -Z) Stairs
#
Transform {
translation 5.0 1.0 -7.5
children [ USE ThreeUpStraightStairs ]
}
#
# (Main, +Y -Z, +Y -Z) Door
#
Transform {
translation 5.0 5.0 -10.1
children [
Anchor {
url "temple.wrl"
description "Temple of the Orb"
children [
DEF Door Group {
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 1.0 1.0 1.0
}
texture ImageTexture {
url "panel.jpg"
}
textureTransform TextureTransform {
scale 1.0 2.0
}
}
geometry Box {
size 3.0 6.0 0.2
}
}
Transform {
translation 1.18 -0.0 0.2
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 1.0 1.0 1.0
}
texture ImageTexture {
url "blur.jpg"
}
}
geometry Sphere {
radius 0.15
}
}
]
}
]
}
]
}
]
}
#
# (Main, +Y -Z, -X +Y -Z) Stairs
#
Transform {
translation 2.5 1.0 -5.0
rotation 0.0 1.0 0.0 1.57
children [
DEF ThreeUpRightCurvingStairs Transform {
translation 5.0 0.0 0.0
children [
DEF OffToLeftStair Transform {
translation -5.0 0.0 0.0
children [ USE Stair ]
}
Transform {
translation 0.0 0.5 0.0
rotation 0.0 1.0 0.0 -0.26
children [ USE OffToLeftStair ]
}
Transform {
translation 0.0 1.0 0.0
rotation 0.0 1.0 0.0 -0.52
children [ USE OffToLeftStair ]
}
]
}
]
}
Transform {
translation 2.5 2.5 -5.0
rotation 0.0 1.0 0.0 1.57
children [
Transform {
rotation 0.0 1.0 0.0 -0.785
center 5.0 0.0 0.0
children [ USE ThreeUpRightCurvingStairs ]
}
]
}
Transform {
translation 2.5 4.0 -5.0
rotation 0.0 1.0 0.0 1.57
children [
Transform {
rotation 0.0 1.0 0.0 -1.57
center 5.0 0.0 0.0
children [ USE ThreeUpRightCurvingStairs ]
}
]
}
#
# (Main, +Y -Z, -X +Y -Z) Door
#
Transform {
translation 2.5 5.0 -5.0
rotation 0.0 1.0 0.0 1.57
children [
Transform {
rotation 0.0 1.0 0.0 -2.09
center 5.0 0.0 0.0
children [
Transform {
translation 0.0 3.0 -0.6
children [
Anchor {
url "prim.wrl"
description "Primitives on Pedestals"
children [ USE Door ]
}
]
}
]
}
]
}
#
# (Main, +Y -Z, +X -Y -Z) Stairs
#
Transform {
translation 7.5 0.0 -5.0
rotation 0.0 1.0 0.0 1.57
children [
DEF ThreeDownLeftCurvingStairs Transform {
translation 5.0 0.0 0.0
children [
USE OffToLeftStair,
Transform {
translation 0.0 -0.5 0.0
rotation 0.0 1.0 0.0 0.26
children [ USE OffToLeftStair ]
}
Transform {
translation 0.0 -1.0 0.0
rotation 0.0 1.0 0.0 0.52
children [ USE OffToLeftStair ]
}
]
}
]
}
Transform {
translation 7.5 -1.5 -5.0
rotation 0.0 1.0 0.0 1.57
children [
Transform {
rotation 0.0 1.0 0.0 0.785
center 5.0 0.0 0.0
children [ USE ThreeDownLeftCurvingStairs ]
}
]
}
#
# (Main, +Y -Z, +X -Y -Z) Door
#
Transform {
translation 7.5 -2.5 -5.0
rotation 0.0 1.0 0.0 1.57
children [
Transform {
rotation 0.0 1.0 0.0 1.31
center 5.0 0.0 0.0
children [
Transform {
translation 0.0 3.0 0.6
rotation 0.0 1.0 0.0 3.14
children [
Anchor {
url "doorway.wrl"
description "The Doorway"
children [ USE Door ]
}
]
}
]
}
]
}
#
# (Main, -X +Y) Stairs
#
Transform {
translation 2.5 -2.5 5.0
rotation 0.0 1.0 0.0 1.57
children [ USE ThreeUpStraightStairs ]
}
#
# (Main, -X +Y) Platform
#
Transform {
translation -2.0 -1.0 5.0
children [ USE Platform ]
}
#
# (Main, -X +Y, +Y -Z) Stairs
#
Transform {
translation -2.0 -0.5 2.5
children [
DEF ThreeUpLeftCurvingStairs Transform {
translation -5.0 0.0 0.0
children [
DEF OffToRightStair Transform {
translation 5.0 0.0 0.0
children [ USE Stair ]
}
Transform {
translation 0.0 0.5 0.0
rotation 0.0 1.0 0.0 0.26
children [ USE OffToRightStair ]
}
Transform {
translation 0.0 1.0 0.0
rotation 0.0 1.0 0.0 0.52
children [ USE OffToRightStair ]
}
]
}
]
}
#
# (Main, -X +Y, +Y -Z) Door
#
Transform {
translation -2.0 0.5 2.5
children [
Transform {
rotation 0.0 1.0 0.0 0.52
center -5.0 0.0 0.0
children [
Transform {
translation 0.0 3.0 -0.6
children [
Anchor {
url "monolith.wrl"
description "Monolith World"
children [ USE Door ]
}
]
}
]
}
]
}
#
# (Main, -X +Y, -X +Y) Stairs
#
Transform {
translation -4.5 -0.5 5.0
rotation 0.0 1.0 0.0 1.57
children [ USE ThreeUpStraightStairs ]
}
Transform {
translation -7.5 1.0 5.0
rotation 0.0 1.0 0.0 1.57
children [ USE ThreeUpStraightStairs ]
}
#
# (Main, -X +Y, -X +Y) Door
#
Transform {
translation -10.1 5.0 5.0
rotation 0.0 1.0 0.0 1.57
children [
Anchor {
url "towers.wrl"
description "The Tower"
children [ USE Door ]
}
]
}
#
# (Main, +X -Y) Stairs
#
Transform {
translation 9.5 -4.5 5.0
rotation 0.0 1.0 0.0 1.57
children [ USE ThreeUpStraightStairs ]
}
#
# (Main, +X -Y) Platform
#
Transform {
translation 12.0 -5.0 5.0
children [ USE Platform ]
}
#
# (Main, +X -Y, -Y +Z) Stairs
#
Transform {
translation 12.0 -6.5 9.5
children [ USE ThreeUpStraightStairs ]
}
#
# (Main, +X -Y, -Y +Z) Platform
#
Transform {
translation 12.0 -7.0 12.0
children [ USE Platform ]
}
#
# (Main, +X -Y, -Y +Z, -Y +Z) Stairs
#
Transform {
translation 12.0 -8.5 16.5
children [ USE ThreeUpStraightStairs ]
}
#
# (Main, -X -Y +Z) Stairs
#
Transform {
translation 5.0 -3.5 7.5
rotation 0.0 1.0 0.0 3.14
children [
DEF ThreeDownRightCurvingStairs Transform {
translation 5.0 0.0 0.0
children [
USE OffToLeftStair,
Transform {
translation 0.0 -0.5 0.0
rotation 0.0 1.0 0.0 -0.26
children [ USE OffToLeftStair ]
}
Transform {
translation 0.0 -1.0 0.0
rotation 0.0 1.0 0.0 -0.52
children [ USE OffToLeftStair ]
}
]
}
]
}
Transform {
translation 5.0 -5.0 7.5
rotation 0.0 1.0 0.0 3.14
children [
Transform {
rotation 0.0 1.0 0.0 -0.785
center 5.0 0.0 0.0
children [ USE ThreeDownRightCurvingStairs ]
}
]
}
#
# (Main, -X -Y +Z) Door
#
Transform {
translation 5.0 -6.0 7.5
children [
Transform {
rotation 0.0 1.0 0.0 -1.48
center -5.0 0.0 0.0
children [
Transform {
translation 0.0 3.0 -0.6
rotation 0.0 1.0 0.0 3.14
children [
Anchor {
url "robobill.wrl"
description "Robot Bill"
children [ USE Door ]
}
]
}
]
}
]
}
#
# Floor
#
Shape {
appearance Appearance {
material Material {
ambientIntensity 0.3
diffuseColor 0.8 0.8 0.8
}
texture ImageTexture {
url "stone2.jpg"
}
textureTransform TextureTransform {
scale 20.0 20.0
}
}
geometry IndexedFaceSet {
coord Coordinate {
point [
-30.0 -9.0 30.0,
30.0 -9.0 30.0,
30.0 -9.0 -30.0,
-30.0 -9.0 -30.0,
]
}
coordIndex [ 0, 1, 2, 3, -1, ]
solid FALSE
}
}
#
# Fake shadows on the floor
#
Shape {
appearance DEF ShadowColor Appearance {
material Material {
ambientIntensity 0.0
diffuseColor 0.1 0.1 0.1
transparency 0.25
}
}
geometry IndexedFaceSet {
coord Coordinate {
point [
10.0 -8.5 17.0,
14.0 -8.5 17.0,
14.0 -8.5 3.0,
10.0 -8.5 3.0,
-10.0 -8.5 7.0,
10.0 -8.5 7.0,
10.0 -8.5 3.0,
-10.0 -8.5 3.0,
3.0 -8.5 7.0,
7.0 -8.5 7.0,
7.0 -8.5 -10.0,
3.0 -8.5 -10.0,
]
}
coordIndex [
0, 1, 2, 3, -1,
4, 5, 6, 7, -1,
8, 9, 10, 11, -1,
]
}
}
Transform {
translation 2.5 -8.5 -5.0
rotation 0.0 1.0 0.0 1.57
children [
DEF ThreeUpRightCurvingShadows Transform {
translation 5.0 0.0 0.0
children [
DEF OffToLeftShadow Transform {
translation -5.0 0.0 0.0
children [
DEF Shadow Shape {
appearance USE ShadowColor
geometry IndexedFaceSet {
coord Coordinate {
point [
-2.0 0.0 0.5,
2.0 0.0 0.5,
2.0 0.0 -0.5,
-2.0 0.0 -0.5,
]
}
coordIndex [ 0, 1, 2, 3, -1, ]
}
}
]
}
Transform {
rotation 0.0 1.0 0.0 -0.26
children [ USE OffToLeftShadow ]
}
Transform {
rotation 0.0 1.0 0.0 -0.52
children [ USE OffToLeftShadow ]
}
]
}
]
}
Transform {
translation 2.5 -8.5 -5.0
rotation 0.0 1.0 0.0 1.57
children [
Transform {
rotation 0.0 1.0 0.0 -0.785
center 5.0 0.0 0.0
children [ USE ThreeUpRightCurvingShadows ]
}
]
}
Transform {
translation 2.5 -8.5 -5.0
rotation 0.0 1.0 0.0 1.57
children [
Transform {
rotation 0.0 1.0 0.0 -1.57
center 5.0 0.0 0.0
children [ USE ThreeUpRightCurvingShadows ]
}
]
}
Transform {
translation 7.5 -8.5 -5.0
rotation 0.0 1.0 0.0 1.57
children [
DEF ThreeDownLeftCurvingShadows Transform {
translation 5.0 0.0 0.0
children [
USE OffToLeftShadow,
Transform {
translation 0.0 0.0 0.0
rotation 0.0 1.0 0.0 0.26
children [ USE OffToLeftShadow ]
}
Transform {
translation 0.0 0.0 0.0
rotation 0.0 1.0 0.0 0.52
children [ USE OffToLeftShadow ]
}
]
}
]
}
Transform {
translation 7.5 -8.5 -5.0
rotation 0.0 1.0 0.0 1.57
children [
Transform {
rotation 0.0 1.0 0.0 0.785
center 5.0 0.0 0.0
children [ USE ThreeDownLeftCurvingShadows ]
}
]
}
Transform {
translation -2.0 -8.5 2.5
children [
DEF ThreeUpLeftCurvingShadows Transform {
translation -5.0 0.0 0.0
children [
DEF OffToRightShadow Transform {
translation 5.0 0.0 0.0
children [ USE Shadow ]
}
Transform {
translation 0.0 0.0 0.0
rotation 0.0 1.0 0.0 0.26
children [ USE OffToRightShadow ]
}
Transform {
translation 0.0 0.0 0.0
rotation 0.0 1.0 0.0 0.52
children [ USE OffToRightShadow ]
}
]
}
]
}
Transform {
translation 5.0 -8.5 7.5
rotation 0.0 1.0 0.0 3.14
children [
DEF ThreeDownRightCurvingShadows Transform {
translation 5.0 0.0 0.0
children [
USE OffToLeftShadow,
Transform {
translation 0.0 0.0 0.0
rotation 0.0 1.0 0.0 -0.26
children [ USE OffToLeftShadow ]
}
Transform {
translation 0.0 0.0 0.0
rotation 0.0 1.0 0.0 -0.52
children [ USE OffToLeftShadow ]
}
]
}
]
}
Transform {
translation 5.0 -8.5 7.5
rotation 0.0 1.0 0.0 3.14
children [
Transform {
rotation 0.0 1.0 0.0 -0.785
center 5.0 0.0 0.0
children [ USE ThreeDownRightCurvingShadows ]
}
]
}
]
}