<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
<X3D profile='Immersive'  version='3.3 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' https://www.web3d.org/specifications/x3d-3.3.xsd ' >
<head>
<meta name='titlecontent='Hand.x3d'/>
<meta name='descriptioncontent='Robotic hand juggling primitives: this scene illustrates the use of the primitive shapes and a lot of nested Transform nodes to created articulated structures.'/>
<meta name='creatorcontent='David R. Nadeau'/>
<meta name='translatorcontent='Don Brutzman'/>
<meta name='createdcontent='1 July 1998'/>
<meta name='translatedcontent='2 February 2014'/>
<meta name='modifiedcontent='3 September 2023'/>
<meta name='Imagecontent='Hand.png' />
<meta name='referencecontent='originals/hand.wrl'/>
<meta name='referencecontent=' http://www.siggraph.org/s98 '/>
<meta name='referencecontent=' http://www.siggraph.org/s98/conference/courses/18.html '/>
<meta name='referencecontent=' http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/slides/mt0063.htm '/>
<meta name='referencecontent=' http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/slides/mt0115.htm '/>
<meta name='referencecontent=' http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/vrml97.htm '/>
<meta name='referencecontent=' https://www.web3d.org/x3d/content/examples/X3dResources.html '/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/Hand.x3d '/>
<meta name='generatorcontent='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html'/>
<meta name='generatorcontent='X3D-Edit, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!--

to top <!-- Index for DEF nodes: finger_base, finger_middle, finger_tip, finger1, finger2, finger3, finger4, hand, HandColor, palm, thumb, vein

Index for Viewpoint node: Viewpoint_1
-->
<Scene>
<!-- Each of the finger joints are controlled by a separate rotation. Changing the rotation angles (by editing this file) will open and close the hand. -->
<!-- For convenience, each of the hand's parts are spearately authored within a Switch node whose 'whichChoice' field is set to -1 which forces the parts to be skipped during drawing. The parts in the Switch, however, are assembled later in a 'hand' shape at the end of the Switch, and that shape is then instanced outside of the Switch. The effect is to create a file structure that enables you to build things piece by piece, then use Transform's later on to assemble those pieces into a drawn shape. -->
<WorldInfo info='"copyright (c) 1997, David R. Nadeau"title='Robotic hand juggling primitives'/>
<Viewpoint description='Entry view'/>
<NavigationInfo/>
<Switch whichChoice='-1'>
<Shape>
<Appearance DEF='HandColor'>
<Material ambientIntensity='0.3diffuseColor='0.3 0.3 0.5shininess='0.1specularColor='0.7 0.7 0.8'/>
</Appearance>
</Shape>
<Group DEF='finger_base'>
<Shape>
<Appearance USE=' HandColor'/>
<Sphere radius='0.41'/>
</Shape>
<Transform translation='0.0 0.875 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Cylinder height='1.75radius='0.35'/>
</Shape>
<Transform translation='0.0 0.835 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Sphere radius='0.35'/>
</Shape>
</Transform>
</Transform>
</Group>
<Transform DEF='finger_middletranslation='0.0 0.5 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Cylinder height='1.0radius='0.315'/>
</Shape>
<Transform translation='0.0 0.5 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Sphere radius='0.32'/>
</Shape>
</Transform>
</Transform>
<Transform DEF='finger_tiprotation='1.0 0.0 0.0 -0.1'>
<Transform translation='0.0 0.4 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Cylinder height='0.75radius='0.27'/>
</Shape>
<Transform scale='1.0 0.7 1.0translation='0.0 0.35 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Sphere radius='0.235'/>
</Shape>
</Transform>
</Transform>
</Transform>
<Transform DEF='finger1rotation='0.0 0.0 1.0 0.035'>
<Transform rotation='0.0 1.0 0.0 -0.03'>
<Transform rotation='1.0 0.0 0.0 -0.2'>
<Group USE=' finger_base'/>
<Transform rotation='1.0 0.0 0.0 -0.2translation='0.0 1.71 0.0'>
<Transform USE=' finger_middle'/>
<Transform rotation='1.0 0.0 0.0 -0.2translation='0.0 1.0 0.0'>
<Transform USE=' finger_tip'/>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
<Transform DEF='finger2scale='1.01 1.15 1.01'>
<Transform>
<Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 0.2 0.0'>
<Group USE=' finger_base'/>
<Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 1.71 0.0'>
<Transform USE=' finger_middle'/>
<Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 1.0 0.0'>
<Transform USE=' finger_tip'/>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
<Transform DEF='finger3rotation='0.0 0.0 1.0 -0.0175scale='1.0 1.05 1.0'>
<Transform rotation='0.0 1.0 0.0 0.065'>
<Transform rotation='1.0 0.0 0.0 -0.6translation='0.0 0.1 0.0'>
<Group USE=' finger_base'/>
<Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 1.71 0.0'>
<Transform USE=' finger_middle'/>
<Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 1.0 0.0'>
<Transform USE=' finger_tip'/>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
<Transform DEF='finger4rotation='0.0 0.0 1.0 -0.0698scale='0.9 0.9 0.9'>
<Transform rotation='0.0 1.0 0.0 0.1'>
<Transform rotation='1.0 0.0 0.0 -0.7translation='0.0 -0.2 0.0'>
<Group USE=' finger_base'/>
<Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 1.71 0.0'>
<Transform USE=' finger_middle'/>
<Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 1.0 0.0'>
<Transform USE=' finger_tip'/>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
<Transform DEF='thumbrotation='0.0 0.0 1.0 0.7'>
<Transform rotation='0.0 0.0 1.0 0.1'>
<Transform rotation='0.0 1.0 0.0 -0.9scale='0.7 0.7 0.8'>
<Shape>
<Appearance USE=' HandColor'/>
<Sphere radius='0.9'/>
</Shape>
<Transform translation='0.0 1.1 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Cylinder radius='0.55'/>
</Shape>
<Transform translation='0.0 0.85 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Sphere radius='0.58'/>
</Shape>
<Transform rotation='1.0 0.0 0.0 0.08'>
<Transform translation='0.0 0.6 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Cylinder height='1.2radius='0.41'/>
</Shape>
<Transform translation='0.0 0.6 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Sphere radius='0.45'/>
</Shape>
<Transform rotation='1.0 0.0 0.0 0.13'>
<Transform rotation='1.0 0.0 0.0 -0.1'>
<Transform translation='0.0 0.5 0.05'>
<Shape>
<Appearance USE=' HandColor'/>
<Cylinder height='1.0radius='0.325'/>
</Shape>
<Transform scale='1.0 0.7 1.0translation='0.0 0.5 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Sphere radius='0.29'/>
</Shape>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
</Transform>
<Group DEF='palm'>
<Transform translation='-0.05 0.875 -0.03'>
<Shape>
<Appearance USE=' HandColor'/>
<Box size='2.85 2.45 0.6'/>
</Shape>
</Transform>
<Transform scale='1.1 0.7 0.3translation='-0.9 0.2 -0.2'>
<Shape>
<Appearance USE=' HandColor'/>
<Sphere radius='1.1'/>
</Shape>
</Transform>
<Transform scale='0.9 0.8 0.3translation='0.5 0.0 -0.2'>
<Shape>
<Appearance USE=' HandColor'/>
<Sphere/>
</Shape>
</Transform>
<Transform scale='1.5 1.0 1.0translation='0.0 -0.6 0.0'>
<Transform rotation='1.0 0.0 0.0 -0.4'>
<Shape>
<Appearance USE=' HandColor'/>
<Cylinder height='0.1radius='1.1'/>
</Shape>
<Transform translation='0.0 -0.3 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Sphere radius='0.8'/>
</Shape>
<Shape>
<Appearance USE=' HandColor'/>
<Cylinder height='0.1radius='1.1'/>
</Shape>
<Transform translation='0.0 -1.3 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Cylinder radius='0.6'/>
</Shape>
</Transform>
</Transform>
</Transform>
</Transform>
<Transform translation='0.0 -0.475 0.345'>
<Transform rotation='0.0 0.0 1.0 0.15'>
<Transform DEF='veintranslation='0.0 1.375 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Cylinder height='2.85radius='0.15'/>
</Shape>
</Transform>
</Transform>
<Transform rotation='0.0 0.0 1.0 0.45'>
<Transform USE=' vein'/>
</Transform>
<Transform rotation='0.0 0.0 1.0 -0.15'>
<Transform USE=' vein'/>
</Transform>
<Transform rotation='0.0 0.0 1.0 -0.45'>
<Transform USE=' vein'/>
</Transform>
<Transform rotation='0.0 0.0 1.0 1.15'>
<Transform translation='0.0 0.875 0.0'>
<Shape>
<Appearance USE=' HandColor'/>
<Cylinder height='1.75radius='0.15'/>
</Shape>
</Transform>
</Transform>
</Transform>
</Group>
<Group DEF='hand'>
<Transform USE=' finger1'/>
<Transform translation='0.8 0.0 0.0'>
<Transform USE=' finger2'/>
<Transform translation='0.8 0.0 0.0'>
<Transform USE=' finger3'/>
<Transform translation='0.8 0.0 0.0'>
<Transform USE=' finger4'/>
</Transform>
</Transform>
</Transform>
<Transform translation='-0.4 -2.0 0.0'>
<Transform USE=' thumb'/>
</Transform>
<Transform translation='1.2 -2.2 0.0'>
<Group USE=' palm'/>
</Transform>
</Group>
</Switch>
<Transform rotation='0.0 1.0 0.0 1.0translation='0.0 -2.0 0.0'>
<Transform rotation='1.0 0.0 0.0 1.9'>
<Group USE=' hand'/>
</Transform>
</Transform>
<Transform rotation='1.0 0.0 1.0 0.3translation='1.5 1.0 0.0'>
<Shape>
<Appearance>
<Material diffuseColor='1.0 0.0 0.0'/>
</Appearance>
<Cone/>
</Shape>
</Transform>
<Transform translation='2.0 3.0 -0.5'>
<Shape>
<Appearance>
<Material diffuseColor='1.0 1.0 0.0'/>
</Appearance>
<Sphere/>
</Shape>
</Transform>
<Transform rotation='1.0 0.0 0.2 0.82translation='-0.6 0.8 0.5'>
<Shape>
<Appearance>
<Material diffuseColor='0.0 0.7 1.0'/>
</Appearance>
<Cylinder height='1.5radius='0.75'/>
</Shape>
</Transform>
<Transform rotation='1.0 0.0 0.7 1.3translation='0.0 2.6 -1.1'>
<Shape>
<Appearance>
<Material diffuseColor='0.0 1.0 0.0'/>
</Appearance>
<Box size='1.25 1.25 1.25'/>
</Shape>
</Transform>
</Scene>
</X3D>
<!--

to top <!-- Index for DEF nodes: finger_base, finger_middle, finger_tip, finger1, finger2, finger3, finger4, hand, HandColor, palm, thumb, vein

Index for Viewpoint node: Viewpoint_1
-->
-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/HandIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/Hand.x3d -->

<!-- Color legend: X3D terminology <X3dNode DEF='idName' field='value'/> matches XML terminology <XmlElement DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
-->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->