X3D Model Documentation: Hand.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
  3  <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'>
  4       <head>
  5            <meta name='titlecontent='Hand.x3d'/>
  6            <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.'/>
  7            <meta name='creatorcontent='David R. Nadeau'/>
  8            <meta name='translatorcontent='Don Brutzman'/>
  9            <meta name='createdcontent='1 July 1998'/>
 10            <meta name='translatedcontent='2 February 2014'/>
 11            <meta name='modifiedcontent='3 September 2023'/>
 12            <meta name='Imagecontent='Hand.png'/>
 13            <meta name='referencecontent='originals/hand.wrl'/>
 14            <meta name='referencecontent='http://www.siggraph.org/s98'/>
 15            <meta name='referencecontent='http://www.siggraph.org/s98/conference/courses/18.html'/>
 16            <meta name='referencecontent='http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/slides/mt0063.htm'/>
 17            <meta name='referencecontent='http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/slides/mt0115.htm'/>
 18            <meta name='referencecontent='http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/vrml97.htm'/>
 19            <meta name='referencecontent='https://www.web3d.org/x3d/content/examples/X3dResources.html'/>
 20            <meta name='identifiercontent='https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/Hand.x3d'/>
 21            <meta name='generatorcontent='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html'/>
 22            <meta name='generatorcontent='X3D-Edit, https://savage.nps.edu/X3D-Edit'/>
 23            <meta name='licensecontent='../license.html'/>
 24       </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
-->
 25       <Scene>
 26            <!-- 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. -->
 27            <!-- 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. -->
 28            <WorldInfo info='"copyright (c) 1997, David R. Nadeau"title='Robotic hand juggling primitives'/>
 29            <Viewpoint description='Entry view'/>
 30            <NavigationInfo/>
 31            <Switch whichChoice='-1'>
 32                 <Shape>
 33 
                    <!-- Appearance HandColor is a DEF node that has 23 USE nodes: USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7, USE_8, USE_9, USE_10, USE_11, USE_12, USE_13, USE_14, USE_15, USE_16, USE_17, USE_18, USE_19, USE_20, USE_21, USE_22, USE_23 -->
                    <Appearance DEF='HandColor'>
 34                           <Material ambientIntensity='0.3diffuseColor='0.3 0.3 0.5shininess='0.1specularColor='0.7 0.7 0.8'/>
 35                      </Appearance>
 36                 </Shape>
 37 
               <!-- Group finger_base is a DEF node that has 4 USE nodes: USE_1, USE_2, USE_3, USE_4 -->
               <Group DEF='finger_base'>
 38                      <Shape>
 39                           <Appearance USE='HandColor'/>
 40                           <Sphere radius='0.41'/>
 41                      </Shape>
 42                      <Transform translation='0.0 0.875 0.0'>
 43                           <Shape>
 44                                <Appearance USE='HandColor'/>
 45                                <Cylinder height='1.75radius='0.35'/>
 46                           </Shape>
 47                           <Transform translation='0.0 0.835 0.0'>
 48                                <Shape>
 49                                     <Appearance USE='HandColor'/>
 50                                     <Sphere radius='0.35'/>
 51                                </Shape>
 52                           </Transform>
 53                      </Transform>
 54                 </Group>
 55 
               <!-- Transform finger_middle is a DEF node that has 4 USE nodes: USE_1, USE_2, USE_3, USE_4 -->
               <Transform DEF='finger_middletranslation='0.0 0.5 0.0'>
 56                      <Shape>
 57                           <Appearance USE='HandColor'/>
 58                           <Cylinder height='1.0radius='0.315'/>
 59                      </Shape>
 60                      <Transform translation='0.0 0.5 0.0'>
 61                           <Shape>
 62                                <Appearance USE='HandColor'/>
 63                                <Sphere radius='0.32'/>
 64                           </Shape>
 65                      </Transform>
 66                 </Transform>
 67 
               <!-- Transform finger_tip is a DEF node that has 4 USE nodes: USE_1, USE_2, USE_3, USE_4 -->
               <Transform DEF='finger_tiprotation='1.0 0.0 0.0 -0.1'>
 68                      <Transform translation='0.0 0.4 0.0'>
 69                           <Shape>
 70                                <Appearance USE='HandColor'/>
 71                                <Cylinder height='0.75radius='0.27'/>
 72                           </Shape>
 73                           <Transform scale='1.0 0.7 1.0translation='0.0 0.35 0.0'>
 74                                <Shape>
 75                                     <Appearance USE='HandColor'/>
 76                                     <Sphere radius='0.235'/>
 77                                </Shape>
 78                           </Transform>
 79                      </Transform>
 80                 </Transform>
 81 
               <!-- Transform finger1 is a DEF node that has 1 USE node: USE_1 -->
               <Transform DEF='finger1rotation='0.0 0.0 1.0 0.035'>
 82                      <Transform rotation='0.0 1.0 0.0 -0.03'>
 83                           <Transform rotation='1.0 0.0 0.0 -0.2'>
 84                                <Group USE='finger_base'/>
 85                                <Transform rotation='1.0 0.0 0.0 -0.2translation='0.0 1.71 0.0'>
 86                                     <Transform USE='finger_middle'/>
 87                                     <Transform rotation='1.0 0.0 0.0 -0.2translation='0.0 1.0 0.0'>
 88                                          <Transform USE='finger_tip'/>
 89                                     </Transform>
 90                                </Transform>
 91                           </Transform>
 92                      </Transform>
 93                 </Transform>
 94 
               <!-- Transform finger2 is a DEF node that has 1 USE node: USE_1 -->
               <Transform DEF='finger2scale='1.01 1.15 1.01'>
 95                      <Transform>
 96                           <Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 0.2 0.0'>
 97                                <Group USE='finger_base'/>
 98                                <Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 1.71 0.0'>
 99                                     <Transform USE='finger_middle'/>
100                                     <Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 1.0 0.0'>
101                                          <Transform USE='finger_tip'/>
102                                     </Transform>
103                                </Transform>
104                           </Transform>
105                      </Transform>
106                 </Transform>
107 
               <!-- Transform finger3 is a DEF node that has 1 USE node: USE_1 -->
               <Transform DEF='finger3rotation='0.0 0.0 1.0 -0.0175scale='1.0 1.05 1.0'>
108                      <Transform rotation='0.0 1.0 0.0 0.065'>
109                           <Transform rotation='1.0 0.0 0.0 -0.6translation='0.0 0.1 0.0'>
110                                <Group USE='finger_base'/>
111                                <Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 1.71 0.0'>
112                                     <Transform USE='finger_middle'/>
113                                     <Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 1.0 0.0'>
114                                          <Transform USE='finger_tip'/>
115                                     </Transform>
116                                </Transform>
117                           </Transform>
118                      </Transform>
119                 </Transform>
120 
               <!-- Transform finger4 is a DEF node that has 1 USE node: USE_1 -->
               <Transform DEF='finger4rotation='0.0 0.0 1.0 -0.0698scale='0.9 0.9 0.9'>
121                      <Transform rotation='0.0 1.0 0.0 0.1'>
122                           <Transform rotation='1.0 0.0 0.0 -0.7translation='0.0 -0.2 0.0'>
123                                <Group USE='finger_base'/>
124                                <Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 1.71 0.0'>
125                                     <Transform USE='finger_middle'/>
126                                     <Transform rotation='1.0 0.0 0.0 -0.4translation='0.0 1.0 0.0'>
127                                          <Transform USE='finger_tip'/>
128                                     </Transform>
129                                </Transform>
130                           </Transform>
131                      </Transform>
132                 </Transform>
133 
               <!-- Transform thumb is a DEF node that has 1 USE node: USE_1 -->
               <Transform DEF='thumbrotation='0.0 0.0 1.0 0.7'>
134                      <Transform rotation='0.0 0.0 1.0 0.1'>
135                           <Transform rotation='0.0 1.0 0.0 -0.9scale='0.7 0.7 0.8'>
136                                <Shape>
137                                     <Appearance USE='HandColor'/>
138                                     <Sphere radius='0.9'/>
139                                </Shape>
140                                <Transform translation='0.0 1.1 0.0'>
141                                     <Shape>
142                                          <Appearance USE='HandColor'/>
143                                          <Cylinder radius='0.55'/>
144                                     </Shape>
145                                     <Transform translation='0.0 0.85 0.0'>
146                                          <Shape>
147                                               <Appearance USE='HandColor'/>
148                                               <Sphere radius='0.58'/>
149                                          </Shape>
150                                          <Transform rotation='1.0 0.0 0.0 0.08'>
151                                               <Transform translation='0.0 0.6 0.0'>
152                                                    <Shape>
153                                                         <Appearance USE='HandColor'/>
154                                                         <Cylinder height='1.2radius='0.41'/>
155                                                    </Shape>
156                                                    <Transform translation='0.0 0.6 0.0'>
157                                                         <Shape>
158                                                              <Appearance USE='HandColor'/>
159                                                              <Sphere radius='0.45'/>
160                                                         </Shape>
161                                                         <Transform rotation='1.0 0.0 0.0 0.13'>
162                                                              <Transform rotation='1.0 0.0 0.0 -0.1'>
163                                                                   <Transform translation='0.0 0.5 0.05'>
164                                                                        <Shape>
165                                                                             <Appearance USE='HandColor'/>
166                                                                             <Cylinder height='1.0radius='0.325'/>
167                                                                        </Shape>
168                                                                        <Transform scale='1.0 0.7 1.0translation='0.0 0.5 0.0'>
169                                                                             <Shape>
170                                                                                  <Appearance USE='HandColor'/>
171                                                                                  <Sphere radius='0.29'/>
172                                                                             </Shape>
173                                                                        </Transform>
174                                                                   </Transform>
175                                                              </Transform>
176                                                         </Transform>
177                                                    </Transform>
178                                               </Transform>
179                                          </Transform>
180                                     </Transform>
181                                </Transform>
182                           </Transform>
183                      </Transform>
184                 </Transform>
185 
               <!-- Group palm is a DEF node that has 1 USE node: USE_1 -->
               <Group DEF='palm'>
186                      <Transform translation='-0.05 0.875 -0.03'>
187                           <Shape>
188                                <Appearance USE='HandColor'/>
189                                <Box size='2.85 2.45 0.6'/>
190                           </Shape>
191                      </Transform>
192                      <Transform scale='1.1 0.7 0.3translation='-0.9 0.2 -0.2'>
193                           <Shape>
194                                <Appearance USE='HandColor'/>
195                                <Sphere radius='1.1'/>
196                           </Shape>
197                      </Transform>
198                      <Transform scale='0.9 0.8 0.3translation='0.5 0.0 -0.2'>
199                           <Shape>
200                                <Appearance USE='HandColor'/>
201                                <Sphere/>
202                           </Shape>
203                      </Transform>
204                      <Transform scale='1.5 1.0 1.0translation='0.0 -0.6 0.0'>
205                           <Transform rotation='1.0 0.0 0.0 -0.4'>
206                                <Shape>
207                                     <Appearance USE='HandColor'/>
208                                     <Cylinder height='0.1radius='1.1'/>
209                                </Shape>
210                                <Transform translation='0.0 -0.3 0.0'>
211                                     <Shape>
212                                          <Appearance USE='HandColor'/>
213                                          <Sphere radius='0.8'/>
214                                     </Shape>
215                                     <Shape>
216                                          <Appearance USE='HandColor'/>
217                                          <Cylinder height='0.1radius='1.1'/>
218                                     </Shape>
219                                     <Transform translation='0.0 -1.3 0.0'>
220                                          <Shape>
221                                               <Appearance USE='HandColor'/>
222                                               <Cylinder radius='0.6'/>
223                                          </Shape>
224                                     </Transform>
225                                </Transform>
226                           </Transform>
227                      </Transform>
228                      <Transform translation='0.0 -0.475 0.345'>
229                           <Transform rotation='0.0 0.0 1.0 0.15'>
230 
                              <!-- Transform vein is a DEF node that has 3 USE nodes: USE_1, USE_2, USE_3 -->
                              <Transform DEF='veintranslation='0.0 1.375 0.0'>
231                                     <Shape>
232                                          <Appearance USE='HandColor'/>
233                                          <Cylinder height='2.85radius='0.15'/>
234                                     </Shape>
235                                </Transform>
236                           </Transform>
237                           <Transform rotation='0.0 0.0 1.0 0.45'>
238                                <Transform USE='vein'/>
239                           </Transform>
240                           <Transform rotation='0.0 0.0 1.0 -0.15'>
241                                <Transform USE='vein'/>
242                           </Transform>
243                           <Transform rotation='0.0 0.0 1.0 -0.45'>
244                                <Transform USE='vein'/>
245                           </Transform>
246                           <Transform rotation='0.0 0.0 1.0 1.15'>
247                                <Transform translation='0.0 0.875 0.0'>
248                                     <Shape>
249                                          <Appearance USE='HandColor'/>
250                                          <Cylinder height='1.75radius='0.15'/>
251                                     </Shape>
252                                </Transform>
253                           </Transform>
254                      </Transform>
255                 </Group>
256 
               <!-- Group hand is a DEF node that has 1 USE node: USE_1 -->
               <Group DEF='hand'>
257                      <Transform USE='finger1'/>
258                      <Transform translation='0.8 0.0 0.0'>
259                           <Transform USE='finger2'/>
260                           <Transform translation='0.8 0.0 0.0'>
261                                <Transform USE='finger3'/>
262                                <Transform translation='0.8 0.0 0.0'>
263                                     <Transform USE='finger4'/>
264                                </Transform>
265                           </Transform>
266                      </Transform>
267                      <Transform translation='-0.4 -2.0 0.0'>
268                           <Transform USE='thumb'/>
269                      </Transform>
270                      <Transform translation='1.2 -2.2 0.0'>
271                           <Group USE='palm'/>
272                      </Transform>
273                 </Group>
274            </Switch>
275            <Transform rotation='0.0 1.0 0.0 1.0translation='0.0 -2.0 0.0'>
276                 <Transform rotation='1.0 0.0 0.0 1.9'>
277                      <Group USE='hand'/>
278                 </Transform>
279            </Transform>
280            <Transform rotation='1.0 0.0 1.0 0.3translation='1.5 1.0 0.0'>
281                 <Shape>
282                      <Appearance>
283                           <Material diffuseColor='1.0 0.0 0.0'/>
284                      </Appearance>
285                      <Cone/>
286                 </Shape>
287            </Transform>
288            <Transform translation='2.0 3.0 -0.5'>
289                 <Shape>
290                      <Appearance>
291                           <Material diffuseColor='1.0 1.0 0.0'/>
292                      </Appearance>
293                      <Sphere/>
294                 </Shape>
295            </Transform>
296            <Transform rotation='1.0 0.0 0.2 0.82translation='-0.6 0.8 0.5'>
297                 <Shape>
298                      <Appearance>
299                           <Material diffuseColor='0.0 0.7 1.0'/>
300                      </Appearance>
301                      <Cylinder height='1.5radius='0.75'/>
302                 </Shape>
303            </Transform>
304            <Transform rotation='1.0 0.0 0.7 1.3translation='0.0 2.6 -1.1'>
305                 <Shape>
306                      <Appearance>
307                           <Material diffuseColor='0.0 1.0 0.0'/>
308                      </Appearance>
309                      <Box size='1.25 1.25 1.25'/>
310                 </Shape>
311            </Transform>
312       </Scene>
313  </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
-->
X3D Tooltips element index: Appearance, Box, Cone, Cylinder, Group, head, Material, meta, NavigationInfo, Scene, Shape, Sphere, Switch, Transform, Viewpoint, WorldInfo, X3D, accessType and type, XML data types, field types

-->
<!-- 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. -->