#X3D V4.0 utf8 PROFILE Immersive # [X3D] version=4.0 # [X3D] noNamespaceSchemaLocation=/specifications/x3d-4.0.xsd # X3D-to-ClassicVRML XSL translation autogenerated by X3dToClassicVrmlEncoding.xslt and X3dToVrml97.xslt # /x3d/content/X3dToClassicVrmlEncoding.xslt # /x3d/content/X3dToVrml97.xslt # Transformation using XSLT processor: Saxonica # [head] META "title" "Rotor.x3d" META "description" "X3D specification example showing a spinning helicopter rotor that is used by the Chopper model." META "creator" "Don Brutzman and Joe Williams" META "created" "1 June 2002" META "modified" "28 September 2025" META "specificationSection" "X3D encodings, ISO/IEC 19776-1.3, Part 1: XML encoding, Annex C.16 Chopper" META "specificationUrl" "/specifications/X3Dv4Draft/ISO-IEC19776-1v4.0-CD/Part01/examples.html#Chopper" META "identifier" "/x3d/content/examples/Basic/X3dSpecifications/Rotor.x3d" META "generator" "X3D-Edit 4.0, /x3d/tools/X3D-Edit" META "license" "../license.html" # [Scene] ========== ========== ========== WorldInfo { title "Rotor.x3d" } PROTO Rotor [ initializeOnly SFTime rate 1 initializeOnly MFNode children [ ] # initial value is empty node array inputOutput SFTime startTime 0 inputOutput SFTime stopTime 0 ] { DEF F Transform { children IS children } DEF T TimeSensor { loop TRUE cycleInterval IS rate startTime IS startTime stopTime IS stopTime } DEF I OrientationInterpolator { key [ 0 0.25 0.5 0.75 1 ] keyValue [ 0 1 0 0 0 1 0 1.57 0 1 0 3.14 0 1 0 4.71 0 1 0 0 ] } ROUTE T.fraction_changed TO I.set_fraction ROUTE I.value_changed TO F.set_rotation } Rotor { children [ Shape { geometry Box { size 4 0.2 0.1 } appearance Appearance { material Material { } } } ] }