require "java"
require "../../../X3DJSAIL.4.0.full.jar"

ConfigurationProperties = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.ConfigurationProperties")
CommentsBlock = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.CommentsBlock")
AcousticProperties = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shape.AcousticProperties")
Analyser = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.Analyser")
Anchor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Networking.Anchor")
Appearance = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shape.Appearance")
Arc2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry2D.Arc2D")
ArcClose2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry2D.ArcClose2D")
AudioClip = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.AudioClip")
AudioDestination = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.AudioDestination")
Background = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EnvironmentalEffects.Background")
BallJoint = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.BallJoint")
Billboard = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Navigation.Billboard")
BiquadFilter = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.BiquadFilter")
BlendedVolumeStyle = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.VolumeRendering.BlendedVolumeStyle")
BooleanFilter = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EventUtilities.BooleanFilter")
BooleanSequencer = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EventUtilities.BooleanSequencer")
BooleanToggle = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EventUtilities.BooleanToggle")
BooleanTrigger = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EventUtilities.BooleanTrigger")
BoundaryEnhancementVolumeStyle = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.VolumeRendering.BoundaryEnhancementVolumeStyle")
BoundedPhysicsModel = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.ParticleSystems.BoundedPhysicsModel")
Box = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry3D.Box")
BufferAudioSource = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.BufferAudioSource")
CADAssembly = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.CADGeometry.CADAssembly")
CADFace = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.CADGeometry.CADFace")
CADLayer = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.CADGeometry.CADLayer")
CADPart = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.CADGeometry.CADPart")
CartoonVolumeStyle = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.VolumeRendering.CartoonVolumeStyle")
ChannelMerger = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.ChannelMerger")
ChannelSelector = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.ChannelSelector")
ChannelSplitter = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.ChannelSplitter")
Circle2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry2D.Circle2D")
ClipPlane = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.ClipPlane")
CollidableOffset = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.CollidableOffset")
CollidableShape = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.CollidableShape")
Collision = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Navigation.Collision")
CollisionCollection = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.CollisionCollection")
CollisionSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.CollisionSensor")
CollisionSpace = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.CollisionSpace")
Color = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.Color")
ColorChaser = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.ColorChaser")
ColorDamper = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.ColorDamper")
ColorInterpolator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Interpolation.ColorInterpolator")
ColorRGBA = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.ColorRGBA")
ComposedCubeMapTexture = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.CubeMapTexturing.ComposedCubeMapTexture")
ComposedShader = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shaders.ComposedShader")
ComposedTexture3D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing3D.ComposedTexture3D")
ComposedVolumeStyle = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.VolumeRendering.ComposedVolumeStyle")
Cone = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry3D.Cone")
ConeEmitter = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.ParticleSystems.ConeEmitter")
Contact = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.Contact")
Contour2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.NURBS.Contour2D")
ContourPolyline2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.NURBS.ContourPolyline2D")
Convolver = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.Convolver")
Coordinate = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.Coordinate")
CoordinateChaser = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.CoordinateChaser")
CoordinateDamper = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.CoordinateDamper")
CoordinateDouble = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.CoordinateDouble")
CoordinateInterpolator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Interpolation.CoordinateInterpolator")
CoordinateInterpolator2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Interpolation.CoordinateInterpolator2D")
Cylinder = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry3D.Cylinder")
CylinderSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.PointingDeviceSensor.CylinderSensor")
Delay = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.Delay")
DirectionalLight = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Lighting.DirectionalLight")
DISEntityManager = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.DIS.DISEntityManager")
DISEntityTypeMapping = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.DIS.DISEntityTypeMapping")
Disk2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry2D.Disk2D")
DoubleAxisHingeJoint = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.DoubleAxisHingeJoint")
DynamicsCompressor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.DynamicsCompressor")
EaseInEaseOut = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Interpolation.EaseInEaseOut")
EdgeEnhancementVolumeStyle = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.VolumeRendering.EdgeEnhancementVolumeStyle")
ElevationGrid = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry3D.ElevationGrid")
EnvironmentLight = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Lighting.EnvironmentLight")
EspduTransform = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.DIS.EspduTransform")
ExplosionEmitter = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.ParticleSystems.ExplosionEmitter")
Extrusion = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry3D.Extrusion")
FillProperties = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shape.FillProperties")
FloatVertexAttribute = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shaders.FloatVertexAttribute")
Fog = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EnvironmentalEffects.Fog")
FogCoordinate = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EnvironmentalEffects.FogCoordinate")
FontLibrary = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Text.FontLibrary")
FontStyle = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Text.FontStyle")
ForcePhysicsModel = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.ParticleSystems.ForcePhysicsModel")
Gain = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.Gain")
GeneratedCubeMapTexture = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.CubeMapTexturing.GeneratedCubeMapTexture")
GeoCoordinate = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geospatial.GeoCoordinate")
GeoElevationGrid = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geospatial.GeoElevationGrid")
GeoLocation = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geospatial.GeoLocation")
GeoLOD = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geospatial.GeoLOD")
GeoMetadata = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geospatial.GeoMetadata")
GeoOrigin = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geospatial.GeoOrigin")
GeoPositionInterpolator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geospatial.GeoPositionInterpolator")
GeoProximitySensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geospatial.GeoProximitySensor")
GeoTouchSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geospatial.GeoTouchSensor")
GeoTransform = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geospatial.GeoTransform")
GeoViewpoint = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geospatial.GeoViewpoint")
Group = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Grouping.Group")
HAnimDisplacer = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.HAnim.HAnimDisplacer")
HAnimHumanoid = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.HAnim.HAnimHumanoid")
HAnimJoint = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.HAnim.HAnimJoint")
HAnimMotion = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.HAnim.HAnimMotion")
HAnimPose = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.HAnim.HAnimPose")
HAnimSegment = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.HAnim.HAnimSegment")
HAnimSite = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.HAnim.HAnimSite")
ImageCubeMapTexture = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.CubeMapTexturing.ImageCubeMapTexture")
ImageTexture = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing.ImageTexture")
ImageTexture3D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing3D.ImageTexture3D")
IndexedFaceSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry3D.IndexedFaceSet")
IndexedLineSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.IndexedLineSet")
IndexedQuadSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.CADGeometry.IndexedQuadSet")
IndexedTriangleFanSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.IndexedTriangleFanSet")
IndexedTriangleSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.IndexedTriangleSet")
IndexedTriangleStripSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.IndexedTriangleStripSet")
Inline = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Networking.Inline")
IntegerSequencer = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EventUtilities.IntegerSequencer")
IntegerTrigger = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EventUtilities.IntegerTrigger")
IsoSurfaceVolumeData = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.VolumeRendering.IsoSurfaceVolumeData")
KeySensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.KeyDeviceSensor.KeySensor")
Layer = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Layering.Layer")
LayerSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Layering.LayerSet")
Layout = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Layout.Layout")
LayoutGroup = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Layout.LayoutGroup")
LayoutLayer = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Layout.LayoutLayer")
LinePickSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Picking.LinePickSensor")
LineProperties = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shape.LineProperties")
LineSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.LineSet")
ListenerPointSource = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.ListenerPointSource")
LoadSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Networking.LoadSensor")
LocalFog = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EnvironmentalEffects.LocalFog")
LOD = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Navigation.LOD")
Material = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shape.Material")
Matrix3VertexAttribute = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shaders.Matrix3VertexAttribute")
Matrix4VertexAttribute = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shaders.Matrix4VertexAttribute")
MetadataBoolean = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.MetadataBoolean")
MetadataDouble = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.MetadataDouble")
MetadataFloat = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.MetadataFloat")
MetadataInteger = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.MetadataInteger")
MetadataSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.MetadataSet")
MetadataString = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.MetadataString")
MicrophoneSource = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.MicrophoneSource")
MotorJoint = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.MotorJoint")
MovieTexture = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing.MovieTexture")
MultiTexture = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing.MultiTexture")
MultiTextureCoordinate = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing.MultiTextureCoordinate")
MultiTextureTransform = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing.MultiTextureTransform")
NavigationInfo = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Navigation.NavigationInfo")
Normal = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.Normal")
NormalInterpolator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Interpolation.NormalInterpolator")
NurbsCurve = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.NURBS.NurbsCurve")
NurbsCurve2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.NURBS.NurbsCurve2D")
NurbsOrientationInterpolator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.NURBS.NurbsOrientationInterpolator")
NurbsPatchSurface = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.NURBS.NurbsPatchSurface")
NurbsPositionInterpolator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.NURBS.NurbsPositionInterpolator")
NurbsSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.NURBS.NurbsSet")
NurbsSurfaceInterpolator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.NURBS.NurbsSurfaceInterpolator")
NurbsSweptSurface = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.NURBS.NurbsSweptSurface")
NurbsSwungSurface = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.NURBS.NurbsSwungSurface")
NurbsTextureCoordinate = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.NURBS.NurbsTextureCoordinate")
NurbsTrimmedSurface = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.NURBS.NurbsTrimmedSurface")
OpacityMapVolumeStyle = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.VolumeRendering.OpacityMapVolumeStyle")
OrientationChaser = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.OrientationChaser")
OrientationDamper = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.OrientationDamper")
OrientationInterpolator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Interpolation.OrientationInterpolator")
OrthoViewpoint = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Navigation.OrthoViewpoint")
OscillatorSource = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.OscillatorSource")
PackagedShader = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shaders.PackagedShader")
ParticleSystem = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.ParticleSystems.ParticleSystem")
PeriodicWave = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.PeriodicWave")
PhysicalMaterial = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shape.PhysicalMaterial")
PickableGroup = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Picking.PickableGroup")
PixelTexture = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing.PixelTexture")
PixelTexture3D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing3D.PixelTexture3D")
PlaneSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.PointingDeviceSensor.PlaneSensor")
PointEmitter = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.ParticleSystems.PointEmitter")
PointLight = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Lighting.PointLight")
PointPickSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Picking.PointPickSensor")
PointProperties = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shape.PointProperties")
PointSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.PointSet")
Polyline2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry2D.Polyline2D")
PolylineEmitter = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.ParticleSystems.PolylineEmitter")
Polypoint2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry2D.Polypoint2D")
PositionChaser = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.PositionChaser")
PositionChaser2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.PositionChaser2D")
PositionDamper = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.PositionDamper")
PositionDamper2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.PositionDamper2D")
PositionInterpolator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Interpolation.PositionInterpolator")
PositionInterpolator2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Interpolation.PositionInterpolator2D")
PrimitivePickSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Picking.PrimitivePickSensor")
ProgramShader = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shaders.ProgramShader")
ProjectionVolumeStyle = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.VolumeRendering.ProjectionVolumeStyle")
ProtoInstance = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.ProtoInstance")
ProximitySensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EnvironmentalSensor.ProximitySensor")
QuadSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.CADGeometry.QuadSet")
ReceiverPdu = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.DIS.ReceiverPdu")
Rectangle2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry2D.Rectangle2D")
RigidBody = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.RigidBody")
RigidBodyCollection = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.RigidBodyCollection")
ScalarChaser = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.ScalarChaser")
ScalarDamper = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.ScalarDamper")
ScalarInterpolator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Interpolation.ScalarInterpolator")
ScreenFontStyle = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Layout.ScreenFontStyle")
ScreenGroup = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Layout.ScreenGroup")
Script = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Scripting.Script")
SegmentedVolumeData = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.VolumeRendering.SegmentedVolumeData")
ShadedVolumeStyle = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.VolumeRendering.ShadedVolumeStyle")
ShaderPart = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shaders.ShaderPart")
ShaderProgram = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shaders.ShaderProgram")
Shape = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shape.Shape")
SignalPdu = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.DIS.SignalPdu")
SilhouetteEnhancementVolumeStyle = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.VolumeRendering.SilhouetteEnhancementVolumeStyle")
SingleAxisHingeJoint = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.SingleAxisHingeJoint")
SliderJoint = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.SliderJoint")
Sound = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.Sound")
SpatialSound = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.SpatialSound")
Sphere = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry3D.Sphere")
SphereSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.PointingDeviceSensor.SphereSensor")
SplinePositionInterpolator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Interpolation.SplinePositionInterpolator")
SplinePositionInterpolator2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Interpolation.SplinePositionInterpolator2D")
SplineScalarInterpolator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Interpolation.SplineScalarInterpolator")
SpotLight = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Lighting.SpotLight")
SquadOrientationInterpolator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Interpolation.SquadOrientationInterpolator")
StaticGroup = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Grouping.StaticGroup")
StreamAudioDestination = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.StreamAudioDestination")
StreamAudioSource = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.StreamAudioSource")
StringSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.KeyDeviceSensor.StringSensor")
SurfaceEmitter = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.ParticleSystems.SurfaceEmitter")
Switch = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Grouping.Switch")
Tangent = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.Tangent")
TexCoordChaser2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.TexCoordChaser2D")
TexCoordDamper2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Followers.TexCoordDamper2D")
Text = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Text.Text")
TextureBackground = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EnvironmentalEffects.TextureBackground")
TextureCoordinate = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing.TextureCoordinate")
TextureCoordinate3D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing3D.TextureCoordinate3D")
TextureCoordinate4D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing3D.TextureCoordinate4D")
TextureCoordinateGenerator = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing.TextureCoordinateGenerator")
TextureProjector = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.TextureProjection.TextureProjector")
TextureProjectorParallel = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.TextureProjection.TextureProjectorParallel")
TextureProperties = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing.TextureProperties")
TextureTransform = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing.TextureTransform")
TextureTransform3D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing3D.TextureTransform3D")
TextureTransformMatrix3D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Texturing3D.TextureTransformMatrix3D")
TimeSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Time.TimeSensor")
TimeTrigger = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EventUtilities.TimeTrigger")
ToneMappedVolumeStyle = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.VolumeRendering.ToneMappedVolumeStyle")
TouchSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.PointingDeviceSensor.TouchSensor")
Transform = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Grouping.Transform")
TransformSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EnvironmentalSensor.TransformSensor")
TransmitterPdu = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.DIS.TransmitterPdu")
TriangleFanSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.TriangleFanSet")
TriangleSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.TriangleSet")
TriangleSet2D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Geometry2D.TriangleSet2D")
TriangleStripSet = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Rendering.TriangleStripSet")
TwoSidedMaterial = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shape.TwoSidedMaterial")
UniversalJoint = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.RigidBodyPhysics.UniversalJoint")
UnlitMaterial = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Shape.UnlitMaterial")
Viewpoint = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Navigation.Viewpoint")
ViewpointGroup = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Navigation.ViewpointGroup")
Viewport = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Layering.Viewport")
VisibilitySensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.EnvironmentalSensor.VisibilitySensor")
VolumeData = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.VolumeRendering.VolumeData")
VolumeEmitter = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.ParticleSystems.VolumeEmitter")
VolumePickSensor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Picking.VolumePickSensor")
WaveShaper = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Sound.WaveShaper")
WindPhysicsModel = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.ParticleSystems.WindPhysicsModel")
WorldInfo = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.WorldInfo")
Component = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.component")
Connect = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.connect")
EXPORT = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Networking.EXPORT")
ExternProtoDeclare = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.ExternProtoDeclare")
Field = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.field")
FieldValue = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.fieldValue")
Head = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.head")
IMPORT = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Networking.IMPORT")
IS = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.IS")
Meta = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.meta")
ProtoBody = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.ProtoBody")
ProtoDeclare = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.ProtoDeclare")
ProtoInterface = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.ProtoInterface")
ROUTE = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.ROUTE")
Scene = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.Scene")
Unit = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.unit")
X3D = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.Core.X3D")
SFBool = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFBool")
MFBool = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFBool")
SFColor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFColor")
MFColor = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFColor")
SFColorRGBA = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFColorRGBA")
MFColorRGBA = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFColorRGBA")
SFDouble = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFDouble")
MFDouble = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFDouble")
SFFloat = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFFloat")
MFFloat = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFFloat")
SFImage = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFImage")
MFImage = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFImage")
SFInt32 = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFInt32")
MFInt32 = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFInt32")
SFMatrix3d = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFMatrix3d")
MFMatrix3d = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFMatrix3d")
SFMatrix3f = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFMatrix3f")
MFMatrix3f = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFMatrix3f")
SFMatrix4d = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFMatrix4d")
MFMatrix4d = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFMatrix4d")
SFMatrix4f = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFMatrix4f")
MFMatrix4f = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFMatrix4f")
SFString = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFString")
SFNode = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFNode")
MFNode = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFNode")
SFRotation = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFRotation")
MFRotation = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFRotation")
MFString = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFString")
SFTime = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFTime")
MFTime = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFTime")
SFVec2d = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFVec2d")
MFVec2d = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFVec2d")
SFVec2f = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFVec2f")
MFVec2f = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFVec2f")
SFVec3d = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFVec3d")
MFVec3d = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFVec3d")
SFVec3f = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFVec3f")
MFVec3f = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFVec3f")
SFVec4d = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFVec4d")
MFVec4d = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFVec4d")
SFVec4f = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.SFVec4f")
MFVec4f = JavaUtilities.get_proxy_class("org.web3d.x3d.jsail.fields.MFVec4f")
ConfigurationProperties.setDeleteIntermediateFiles(false);
ConfigurationProperties.setStripTrailingZeroes(true);
ConfigurationProperties.setStripDefaultAttributes(true);
ConfigurationProperties.setXsltEngine(Java::OrgWeb3dX3dJsail::ConfigurationProperties::XSLT_ENGINE_NATIVE_JAVA);
x3D0 = X3D.new
    .setProfile("Interchange")
    .setVersion("4.0")
    .setHead(Head.new()
        .addComponent(Component.new()
            .setName("NURBS")
            .setLevel(4)
        )
        .addComponent(Component.new()
            .setName("Shape")
            .setLevel(2)
        )
        .addUnit(Unit.new()
            .setName("millimeters")
            .setCategory("length")
            .setConversionFactor(25.4)
        )
        .addMeta(Meta.new()
            .setName("title")
            .setContent("mobiusDon.x3d")
        )
        .addMeta(Meta.new()
            .setName("creator")
            .setContent("Vince Marchetti")
        )
        .addMeta(Meta.new()
            .setName("generator")
            .setContent("manual")
        )
        .addMeta(Meta.new()
            .setName("identifier")
            .setContent("https://kshell.com/mobiusDon.x3d")
        )
        .addMeta(Meta.new()
            .setName("description")
            .setContent("a mobius of 3 NURBS Patch Surfaces")
        )
    )
    .setScene(Scene.new()
        .addChild(Background.new()
            .setSkyColor([1, 1, 1].to_java Java::float)
        )
        .addChild(Shape.new()
            .setGeometry(NurbsPatchSurface.new()
                .setSolid(false)
                .setUDimension(91)
                .setUKnot([0, 0, 0, 0, 0.0333333333333, 0.0333333333333, 0.0333333333333, 0.0666666666667, 0.0666666666667, 0.0666666666667, 0.1, 0.1, 0.1, 0.133333333333, 0.133333333333, 0.133333333333, 0.166666666667, 0.166666666667, 0.166666666667, 0.2, 0.2, 0.2, 0.233333333333, 0.233333333333, 0.233333333333, 0.266666666667, 0.266666666667, 0.266666666667, 0.3, 0.3, 0.3, 0.333333333333, 0.333333333333, 0.333333333333, 0.366666666667, 0.366666666667, 0.366666666667, 0.4, 0.4, 0.4, 0.433333333333, 0.433333333333, 0.433333333333, 0.466666666667, 0.466666666667, 0.466666666667, 0.5, 0.5, 0.5, 0.533333333333, 0.533333333333, 0.533333333333, 0.566666666667, 0.566666666667, 0.566666666667, 0.6, 0.6, 0.6, 0.633333333333, 0.633333333333, 0.633333333333, 0.666666666667, 0.666666666667, 0.666666666667, 0.7, 0.7, 0.7, 0.733333333333, 0.733333333333, 0.733333333333, 0.766666666667, 0.766666666667, 0.766666666667, 0.8, 0.8, 0.8, 0.833333333333, 0.833333333333, 0.833333333333, 0.866666666667, 0.866666666667, 0.866666666667, 0.9, 0.9, 0.9, 0.933333333333, 0.933333333333, 0.933333333333, 0.966666666667, 0.966666666667, 0.966666666667, 1, 1, 1, 1].to_java Java::double)
                .setUOrder(4)
                .setVDimension(3)
                .setVKnot([0, 0, 0, 1, 1, 1].to_java Java::double)
                .setWeight([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1].to_java Java::double)
                .setMetadata(MetadataSet.new()
                    .addValue(MetadataString.new()
                        .setName("INSTANT_PLAYER_MODE")
                        .setValue(["True"].to_java Java::java.lang.String)
                    )
                )
                .setControlPoint(Coordinate.new()
                    .setPoint([14, -3.4641, 0, 13.919, -3.3245, 1.3963, 13.831, -3.182, 1.5125, 13.472, -3.0371, 2.8636, 13.113, -2.8922, 4.2146, 13.026, -2.7448, 4.271, 12.403, -2.5954, 5.522, 11.779, -2.4459, 6.773, 11.711, -2.2943, 6.7824, 10.85, -2.1409, 7.8827, 9.9886, -1.9876, 8.983, 9.9482, -1.8325, 8.9619, 8.8844, -1.6761, 9.8672, 7.8207, -1.5196, 10.772, 7.8117, -1.3618, 10.738, 6.5885, -1.2031, 11.412, 5.3653, -1.0443, 12.086, 5.3843, -0.88454, 12.053, 4.0511, -0.72419, 12.468, 2.718, -0.56385, 12.884, 2.756, -0.40292, 12.864, 1.3668, -0.24179, 13.004, -0.022387, -0.080662, 13.145, 0.022387, 0.080662, 13.145, -1.3668, 0.24179, 13.004, -2.756, 0.40292, 12.864, -2.718, 0.56385, 12.884, -4.0511, 0.72419, 12.468, -5.3843, 0.88454, 12.053, -5.3653, 1.0443, 12.086, -6.5885, 1.2031, 11.412, -7.8117, 1.3618, 10.738, -7.8207, 1.5196, 10.772, -8.8844, 1.6761, 9.8672, -9.9482, 1.8325, 8.9619, -9.9886, 1.9876, 8.983, -10.85, 2.1409, 7.8827, -11.711, 2.2943, 6.7824, -11.779, 2.4459, 6.773, -12.403, 2.5954, 5.522, -13.026, 2.7448, 4.271, -13.113, 2.8922, 4.2146, -13.472, 3.0371, 2.8636, -13.831, 3.182, 1.5125, -13.919, 3.3245, 1.3963, -14, 3.4641, 1.7145e-15, -14.081, 3.6037, -1.3963, -14.147, 3.7405, -1.5795, -13.945, 3.8742, -2.964, -13.743, 4.0079, -4.3485, -13.761, 4.1384, -4.5982, -13.283, 4.2654, -5.9142, -12.806, 4.3925, -7.2301, -12.748, 4.5161, -7.5364, -12.015, 4.6359, -8.7294, -11.282, 4.7557, -9.9224, -11.122, 4.8717, -10.266, -10.162, 4.9837, -11.286, -9.2022, 5.0957, -12.307, -8.9208, 5.2037, -12.659, -7.7733, 5.3073, -13.464, -6.6259, 5.4109, -14.269, -6.2096, 5.5103, -14.593, -4.9219, 5.605, -15.148, -3.6343, 5.6998, -15.704, -3.0811, 5.79, -15.957, -1.7068, 5.8754, -16.239, -0.33248, 5.9609, -16.521, 0.34709, 6.0415, -16.66, 1.7506, 6.1172, -16.656, 3.1541, 6.1929, -16.651, 3.9361, 6.2637, -16.632, 5.3095, 6.3292, -16.341, 6.683, 6.3948, -16.05, 7.5303, 6.4552, -15.835, 8.8152, 6.5104, -15.268, 10.1, 6.5655, -14.701, 10.963, 6.6154, -14.263, 12.105, 6.6598, -13.444, 13.246, 6.7043, -12.625, 14.067, 6.7433, -11.946, 15.015, 6.7768, -10.909, 15.963, 6.8103, -9.8721, 16.676, 6.8383, -8.9532, 17.39, 6.8608, -7.7425, 18.104, 6.8832, -6.5319, 18.643, 6.9001, -5.3901, 19.09, 6.9113, -4.0578, 19.538, 6.9226, -2.7254, 19.839, 6.9282, -1.3963, 20, 6.9282, -4.8986e-15, 20, -3.4641, 0, 19.96, -3.3595, 0.69813, 19.71, -3.0422, 2.762, 19.369, -2.8294, 4.1171, 19.029, -2.6165, 5.4722, 18.578, -2.4024, 6.743, 17.99, -2.19, 8.0095, 17.402, -1.9776, 9.2761, 16.728, -1.766, 10.428, 15.912, -1.5581, 11.561, 15.097, -1.3502, 12.694, 14.216, -1.1449, 13.702, 13.201, -0.94527, 14.661, 12.186, -0.74559, 15.621, 11.114, -0.55051, 16.457, 9.934, -0.36265, 17.206, 8.7542, -0.17479, 17.955, 7.5076, 0.0067486, 18.588, 6.205, 0.17954, 19.097, 4.9024, 0.35233, 19.607, 3.5058, 0.51722, 19.998, 2.1279, 0.67205, 20.246, 0.75001, 0.82688, 20.494, -0.76173, 0.97244, 20.605, -2.1629, 1.1068, 20.578, -3.564, 1.2413, 20.551, -5.1427, 1.3652, 20.346, -6.512, 1.4772, 20.042, -7.8813, 1.5892, 19.738, -9.4645, 1.6899, 19.186, -10.746, 1.778, 18.613, -12.027, 1.8661, 18.039, -13.54, 1.9422, 17.124, -14.678, 2.0054, 16.302, -15.817, 2.0686, 15.48, -17.173, 2.1195, 14.203, -18.119, 2.1574, 13.164, -19.064, 2.1954, 12.125, -20.174, 2.2208, 10.511, -20.883, 2.2336, 9.2976, -21.591, 2.2464, 8.0844, -22.368, 2.2469, 6.182, -22.804, 2.2352, 4.8472, -23.24, 2.2235, 3.5125, -23.609, 2.2, 1.3963, -23.75, 2.1651, 2.9085e-15, -23.891, 2.1301, -1.3963, -23.793, 2.084, -3.6298, -23.629, 2.0275, -5.0225, -23.466, 1.971, -6.4152, -22.867, 1.9042, -8.6529, -22.405, 1.8283, -9.9753, -21.942, 1.7523, -11.298, -20.842, 1.6674, -13.417, -20.101, 1.5746, -14.604, -19.36, 1.4818, -15.791, -17.788, 1.3813, -17.669, -16.803, 1.2746, -18.662, -15.818, 1.1679, -19.655, -13.839, 1.055, -21.177, -12.659, 0.93756, -21.925, -11.478, 0.82013, -22.673, -9.1836, 0.6982, -23.746, -7.8665, 0.57351, -24.211, -6.5494, 0.44881, -24.675, -4.0557, 0.32137, -25.23, -2.6683, 0.19301, -25.387, -1.2809, 0.064643, -25.545, 1.2809, -0.064643, -25.545, 2.6683, -0.19301, -25.387, 4.0557, -0.32137, -25.23, 6.5494, -0.44881, -24.675, 7.8665, -0.57351, -24.211, 9.1836, -0.6982, -23.746, 11.478, -0.82013, -22.673, 12.659, -0.93756, -21.925, 13.839, -1.055, -21.177, 15.818, -1.1679, -19.655, 16.803, -1.2746, -18.662, 17.788, -1.3813, -17.669, 19.36, -1.4818, -15.791, 20.101, -1.5746, -14.604, 20.842, -1.6674, -13.417, 21.942, -1.7523, -11.298, 22.405, -1.8283, -9.9753, 22.867, -1.9042, -8.6529, 23.466, -1.971, -6.4152, 23.629, -2.0275, -5.0225, 23.793, -2.084, -3.6298, 23.891, -2.1301, -1.3963, 23.75, -2.1651, -5.8171e-15, 26, -3.4641, 0, 25.919, -3.6037, 1.3963, 25.56, -3.7405, 4.0054, 25.181, -3.8742, 5.3524, 24.803, -4.0079, 6.6994, 23.917, -4.1384, 9.1201, 23.258, -4.2654, 10.355, 22.6, -4.3925, 11.59, 21.254, -4.5161, 13.716, 20.346, -4.6359, 14.782, 19.438, -4.7557, 15.848, 17.718, -4.8717, 17.591, 16.603, -4.9837, 18.439, 15.488, -5.0957, 19.288, 13.498, -5.2037, 20.586, 12.227, -5.3073, 21.177, 10.956, -5.4109, 21.768, 8.807, -5.5103, 22.587, 7.4387, -5.605, 22.894, 6.0705, -5.6998, 23.202, 3.8772, -5.79, 23.532, 2.4743, -5.8754, 23.542, 1.0714, -5.9609, 23.552, -1.0568, -6.0415, 23.413, -2.4306, -6.1172, 23.125, -3.8043, -6.1929, 22.838, -5.7687, -6.2637, 22.273, -7.0511, -6.3292, 21.701, -8.3335, -6.3948, 21.13, -10.051, -6.4552, 20.202, -11.185, -6.5104, 19.373, -12.318, -6.5655, 18.543, -13.727, -6.6154, 17.332, -14.66, -6.6598, 16.282, -15.594, -6.7043, 15.233, -16.653, -6.7433, 13.825, -17.346, -6.7768, 12.602, -18.039, -6.8103, 11.38, -18.73, -6.8383, 9.8674, -19.152, -6.8608, 8.5269, -19.574, -6.8832, 7.1864, -19.903, -6.9001, 5.6579, -20.036, -6.9113, 4.2587, -20.169, -6.9226, 2.8595, -20.161, -6.9282, 1.3963, -20, -6.9282, 2.4493e-15, -19.839, -6.9282, -1.3963, -19.538, -6.9226, -2.7254, -19.09, -6.9113, -4.0578, -18.643, -6.9001, -5.3901, -18.104, -6.8832, -6.5319, -17.39, -6.8608, -7.7425, -16.676, -6.8383, -8.9532, -15.963, -6.8103, -9.8721, -15.015, -6.7768, -10.909, -14.067, -6.7433, -11.946, -13.246, -6.7043, -12.625, -12.105, -6.6598, -13.444, -10.963, -6.6154, -14.263, -10.1, -6.5655, -14.701, -8.8152, -6.5104, -15.268, -7.5303, -6.4552, -15.835, -6.683, -6.3948, -16.05, -5.3095, -6.3292, -16.341, -3.9361, -6.2637, -16.632, -3.1541, -6.1929, -16.651, -1.7506, -6.1172, -16.656, -0.34709, -6.0415, -16.66, 0.33248, -5.9609, -16.521, 1.7068, -5.8754, -16.239, 3.0811, -5.79, -15.957, 3.6343, -5.6998, -15.704, 4.9219, -5.605, -15.148, 6.2096, -5.5103, -14.593, 6.6259, -5.4109, -14.269, 7.7733, -5.3073, -13.464, 8.9208, -5.2037, -12.659, 9.2022, -5.0957, -12.307, 10.162, -4.9837, -11.286, 11.122, -4.8717, -10.266, 11.282, -4.7557, -9.9224, 12.015, -4.6359, -8.7294, 12.748, -4.5161, -7.5364, 12.806, -4.3925, -7.2301, 13.283, -4.2654, -5.9142, 13.761, -4.1384, -4.5982, 13.743, -4.0079, -4.3485, 13.945, -3.8742, -2.964, 14.147, -3.7405, -1.5795, 14.081, -3.6037, -1.3963, 14, -3.4641, -3.429e-15].to_java Java::float)
                )
            )
            .setAppearance(Appearance.new()
                .setDEF("ksh_appearance_1")
                .setMaterial(Material.new()
                    .setDiffuseColor([0, 0, 1].to_java Java::float)
                )
            )
        )
        .addChild(Shape.new()
            .setGeometry(NurbsPatchSurface.new()
                .setSolid(false)
                .setUDimension(91)
                .setUKnot([0, 0, 0, 0, 0.0333333333333, 0.0333333333333, 0.0333333333333, 0.0666666666667, 0.0666666666667, 0.0666666666667, 0.1, 0.1, 0.1, 0.133333333333, 0.133333333333, 0.133333333333, 0.166666666667, 0.166666666667, 0.166666666667, 0.2, 0.2, 0.2, 0.233333333333, 0.233333333333, 0.233333333333, 0.266666666667, 0.266666666667, 0.266666666667, 0.3, 0.3, 0.3, 0.333333333333, 0.333333333333, 0.333333333333, 0.366666666667, 0.366666666667, 0.366666666667, 0.4, 0.4, 0.4, 0.433333333333, 0.433333333333, 0.433333333333, 0.466666666667, 0.466666666667, 0.466666666667, 0.5, 0.5, 0.5, 0.533333333333, 0.533333333333, 0.533333333333, 0.566666666667, 0.566666666667, 0.566666666667, 0.6, 0.6, 0.6, 0.633333333333, 0.633333333333, 0.633333333333, 0.666666666667, 0.666666666667, 0.666666666667, 0.7, 0.7, 0.7, 0.733333333333, 0.733333333333, 0.733333333333, 0.766666666667, 0.766666666667, 0.766666666667, 0.8, 0.8, 0.8, 0.833333333333, 0.833333333333, 0.833333333333, 0.866666666667, 0.866666666667, 0.866666666667, 0.9, 0.9, 0.9, 0.933333333333, 0.933333333333, 0.933333333333, 0.966666666667, 0.966666666667, 0.966666666667, 1, 1, 1, 1].to_java Java::double)
                .setUOrder(4)
                .setVDimension(3)
                .setVKnot([0, 0, 0, 1, 1, 1].to_java Java::double)
                .setWeight([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1].to_java Java::double)
                .setMetadata(MetadataSet.new()
                    .addValue(MetadataString.new()
                        .setName("INSTANT_PLAYER_MODE")
                        .setValue(["True"].to_java Java::java.lang.String)
                    )
                )
                .setControlPoint(Coordinate.new()
                    .setPoint([20, 6.9282, 0, 20.161, 6.9282, 1.3963, 20.169, 6.9226, 2.8595, 20.036, 6.9113, 4.2587, 19.903, 6.9001, 5.6579, 19.574, 6.8832, 7.1864, 19.152, 6.8608, 8.5269, 18.73, 6.8383, 9.8674, 18.039, 6.8103, 11.38, 17.346, 6.7768, 12.602, 16.653, 6.7433, 13.825, 15.594, 6.7043, 15.233, 14.66, 6.6598, 16.282, 13.727, 6.6154, 17.332, 12.318, 6.5655, 18.543, 11.185, 6.5104, 19.373, 10.051, 6.4552, 20.202, 8.3335, 6.3948, 21.13, 7.0511, 6.3292, 21.701, 5.7687, 6.2637, 22.273, 3.8043, 6.1929, 22.838, 2.4306, 6.1172, 23.125, 1.0568, 6.0415, 23.413, -1.0714, 5.9609, 23.552, -2.4743, 5.8754, 23.542, -3.8772, 5.79, 23.532, -6.0705, 5.6998, 23.202, -7.4387, 5.605, 22.894, -8.807, 5.5103, 22.587, -10.956, 5.4109, 21.768, -12.227, 5.3073, 21.177, -13.498, 5.2037, 20.586, -15.488, 5.0957, 19.288, -16.603, 4.9837, 18.439, -17.718, 4.8717, 17.591, -19.438, 4.7557, 15.848, -20.346, 4.6359, 14.782, -21.254, 4.5161, 13.716, -22.6, 4.3925, 11.59, -23.258, 4.2654, 10.355, -23.917, 4.1384, 9.1201, -24.803, 4.0079, 6.6994, -25.181, 3.8742, 5.3524, -25.56, 3.7405, 4.0054, -25.919, 3.6037, 1.3963, -26, 3.4641, 2.6277e-14, -26.081, 3.3245, -1.3963, -25.875, 3.182, -4.0725, -25.654, 3.0371, -5.4529, -25.433, 2.8922, -6.8334, -24.652, 2.7448, -9.4474, -24.139, 2.5954, -10.747, -23.627, 2.4459, -12.048, -22.291, 2.2943, -14.47, -21.511, 2.1409, -15.629, -20.731, 1.9876, -16.788, -18.892, 1.8325, -18.895, -17.881, 1.6761, -19.859, -16.869, 1.5196, -20.822, -14.607, 1.3618, -22.507, -13.411, 1.2031, -23.229, -12.216, 1.0443, -23.952, -9.6323, 0.88454, -25.127, -8.3095, 0.72419, -25.574, -6.9868, 0.56385, -26.022, -4.2023, 0.40292, -26.625, -2.8143, 0.24179, -26.776, -1.4263, 0.080662, -26.928, 1.4263, -0.080662, -26.928, 2.8143, -0.24179, -26.776, 4.2023, -0.40292, -26.625, 6.9868, -0.56385, -26.022, 8.3095, -0.72419, -25.574, 9.6323, -0.88454, -25.127, 12.216, -1.0443, -23.952, 13.411, -1.2031, -23.229, 14.607, -1.3618, -22.507, 16.869, -1.5196, -20.822, 17.881, -1.6761, -19.859, 18.892, -1.8325, -18.895, 20.731, -1.9876, -16.788, 21.511, -2.1409, -15.629, 22.291, -2.2943, -14.47, 23.627, -2.4459, -12.048, 24.139, -2.5954, -10.747, 24.652, -2.7448, -9.4474, 25.433, -2.8922, -6.8334, 25.654, -3.0371, -5.4529, 25.875, -3.182, -4.0725, 26.081, -3.3245, -1.3963, 26, -3.4641, -6.3682e-15, 23.75, -2.1651, 0, 23.609, -2.2, 1.3963, 23.24, -2.2235, 3.5125, 22.804, -2.2352, 4.8472, 22.368, -2.2469, 6.182, 21.591, -2.2464, 8.0844, 20.883, -2.2336, 9.2976, 20.174, -2.2208, 10.511, 19.064, -2.1954, 12.125, 18.119, -2.1574, 13.164, 17.173, -2.1195, 14.203, 15.817, -2.0686, 15.48, 14.678, -2.0054, 16.302, 13.54, -1.9422, 17.124, 12.027, -1.8661, 18.039, 10.746, -1.778, 18.613, 9.4645, -1.6899, 19.186, 7.8813, -1.5892, 19.738, 6.512, -1.4772, 20.042, 5.1427, -1.3652, 20.346, 3.564, -1.2413, 20.551, 2.1629, -1.1068, 20.578, 0.76173, -0.97244, 20.605, -0.75001, -0.82688, 20.494, -2.1279, -0.67205, 20.246, -3.5058, -0.51722, 19.998, -4.9024, -0.35233, 19.607, -6.205, -0.17954, 19.097, -7.5076, -0.0067486, 18.588, -8.7542, 0.17479, 17.955, -9.934, 0.36265, 17.206, -11.114, 0.55051, 16.457, -12.186, 0.74559, 15.621, -13.201, 0.94527, 14.661, -14.216, 1.1449, 13.702, -15.097, 1.3502, 12.694, -15.912, 1.5581, 11.561, -16.728, 1.766, 10.428, -17.402, 1.9776, 9.2761, -17.99, 2.19, 8.0095, -18.578, 2.4024, 6.743, -19.029, 2.6165, 5.4722, -19.369, 2.8294, 4.1171, -19.71, 3.0422, 2.762, -19.919, 3.2548, 1.3963, -20, 3.4641, 2.0213e-14, -20.081, 3.6734, -1.3963, -20.025, 3.8803, -2.8291, -19.842, 4.0819, -4.2176, -19.659, 4.2836, -5.6061, -19.313, 4.4808, -7.0702, -18.871, 4.6708, -8.4017, -18.428, 4.8607, -9.7332, -17.766, 5.0443, -11.182, -17.078, 5.2187, -12.408, -16.39, 5.3931, -13.634, -15.391, 5.5593, -15.006, -14.479, 5.7145, -16.081, -13.568, 5.8698, -17.155, -12.223, 6.015, -18.378, -11.119, 6.1477, -19.258, -10.015, 6.2805, -20.139, -8.3329, 6.4016, -21.128, -7.0758, 6.5088, -21.777, -5.8187, 6.616, -22.427, -3.8309, 6.7102, -23.091, -2.4679, 6.7893, -23.481, -1.1049, 6.8684, -23.87, 1.1312, 6.9333, -24.12, 2.5466, 6.9823, -24.23, 3.9621, 7.0313, -24.339, 6.3608, 7.065, -24.095, 7.7704, 7.0823, -23.915, 9.18, 7.0995, -23.735, 11.629, 7.1008, -22.935, 12.973, 7.0853, -22.469, 14.316, 7.0697, -22.003, 16.682, 7.0379, -20.614, 17.899, 6.9891, -19.879, 19.115, 6.9403, -19.143, 21.251, 6.8752, -17.166, 22.284, 6.7933, -16.19, 23.317, 6.7114, -15.215, 25.071, 6.6133, -12.691, 25.87, 6.499, -11.518, 26.669, 6.3848, -10.345, 27.898, 6.2548, -7.3574, 28.423, 6.1094, -6.0414, 28.947, 5.9641, -4.7254, 29.528, 5.8037, -1.3963, 29.75, 5.6292, -7.2866e-15, 14, -3.4641, 0, 13.919, -3.3245, 1.3963, 13.831, -3.182, 1.5125, 13.472, -3.0371, 2.8636, 13.113, -2.8922, 4.2146, 13.026, -2.7448, 4.271, 12.403, -2.5954, 5.522, 11.779, -2.4459, 6.773, 11.711, -2.2943, 6.7824, 10.85, -2.1409, 7.8827, 9.9886, -1.9876, 8.983, 9.9482, -1.8325, 8.9619, 8.8844, -1.6761, 9.8672, 7.8207, -1.5196, 10.772, 7.8117, -1.3618, 10.738, 6.5885, -1.2031, 11.412, 5.3653, -1.0443, 12.086, 5.3843, -0.88454, 12.053, 4.0511, -0.72419, 12.468, 2.718, -0.56385, 12.884, 2.756, -0.40292, 12.864, 1.3668, -0.24179, 13.004, -0.022387, -0.080662, 13.145, 0.022387, 0.080662, 13.145, -1.3668, 0.24179, 13.004, -2.756, 0.40292, 12.864, -2.718, 0.56385, 12.884, -4.0511, 0.72419, 12.468, -5.3843, 0.88454, 12.053, -5.3653, 1.0443, 12.086, -6.5885, 1.2031, 11.412, -7.8117, 1.3618, 10.738, -7.8207, 1.5196, 10.772, -8.8844, 1.6761, 9.8672, -9.9482, 1.8325, 8.9619, -9.9886, 1.9876, 8.983, -10.85, 2.1409, 7.8827, -11.711, 2.2943, 6.7824, -11.779, 2.4459, 6.773, -12.403, 2.5954, 5.522, -13.026, 2.7448, 4.271, -13.113, 2.8922, 4.2146, -13.472, 3.0371, 2.8636, -13.831, 3.182, 1.5125, -13.919, 3.3245, 1.3963, -14, 3.4641, 1.4149e-14, -14.081, 3.6037, -1.3963, -14.147, 3.7405, -1.5795, -13.945, 3.8742, -2.964, -13.743, 4.0079, -4.3485, -13.761, 4.1384, -4.5982, -13.283, 4.2654, -5.9142, -12.806, 4.3925, -7.2301, -12.748, 4.5161, -7.5364, -12.015, 4.6359, -8.7294, -11.282, 4.7557, -9.9224, -11.122, 4.8717, -10.266, -10.162, 4.9837, -11.286, -9.2022, 5.0957, -12.307, -8.9208, 5.2037, -12.659, -7.7733, 5.3073, -13.464, -6.6259, 5.4109, -14.269, -6.2096, 5.5103, -14.593, -4.9219, 5.605, -15.148, -3.6343, 5.6998, -15.704, -3.0811, 5.79, -15.957, -1.7068, 5.8754, -16.239, -0.33248, 5.9609, -16.521, 0.34709, 6.0415, -16.66, 1.7506, 6.1172, -16.656, 3.1541, 6.1929, -16.651, 3.9361, 6.2637, -16.632, 5.3095, 6.3292, -16.341, 6.683, 6.3948, -16.05, 7.5303, 6.4552, -15.835, 8.8152, 6.5104, -15.268, 10.1, 6.5655, -14.701, 10.963, 6.6154, -14.263, 12.105, 6.6598, -13.444, 13.246, 6.7043, -12.625, 14.067, 6.7433, -11.946, 15.015, 6.7768, -10.909, 15.963, 6.8103, -9.8721, 16.676, 6.8383, -8.9532, 17.39, 6.8608, -7.7425, 18.104, 6.8832, -6.5319, 18.643, 6.9001, -5.3901, 19.09, 6.9113, -4.0578, 19.538, 6.9226, -2.7254, 19.839, 6.9282, -1.3963, 20, 6.9282, -4.8986e-15].to_java Java::float)
                )
            )
            .setAppearance(Appearance.new()
                .setDEF("ksh_appearance_2")
                .setMaterial(Material.new()
                    .setDiffuseColor([0, 0, 1].to_java Java::float)
                )
            )
        )
        .addChild(Shape.new()
            .setGeometry(NurbsPatchSurface.new()
                .setSolid(false)
                .setUDimension(91)
                .setUKnot([0, 0, 0, 0, 0.0333333333333, 0.0333333333333, 0.0333333333333, 0.0666666666667, 0.0666666666667, 0.0666666666667, 0.1, 0.1, 0.1, 0.133333333333, 0.133333333333, 0.133333333333, 0.166666666667, 0.166666666667, 0.166666666667, 0.2, 0.2, 0.2, 0.233333333333, 0.233333333333, 0.233333333333, 0.266666666667, 0.266666666667, 0.266666666667, 0.3, 0.3, 0.3, 0.333333333333, 0.333333333333, 0.333333333333, 0.366666666667, 0.366666666667, 0.366666666667, 0.4, 0.4, 0.4, 0.433333333333, 0.433333333333, 0.433333333333, 0.466666666667, 0.466666666667, 0.466666666667, 0.5, 0.5, 0.5, 0.533333333333, 0.533333333333, 0.533333333333, 0.566666666667, 0.566666666667, 0.566666666667, 0.6, 0.6, 0.6, 0.633333333333, 0.633333333333, 0.633333333333, 0.666666666667, 0.666666666667, 0.666666666667, 0.7, 0.7, 0.7, 0.733333333333, 0.733333333333, 0.733333333333, 0.766666666667, 0.766666666667, 0.766666666667, 0.8, 0.8, 0.8, 0.833333333333, 0.833333333333, 0.833333333333, 0.866666666667, 0.866666666667, 0.866666666667, 0.9, 0.9, 0.9, 0.933333333333, 0.933333333333, 0.933333333333, 0.966666666667, 0.966666666667, 0.966666666667, 1, 1, 1, 1].to_java Java::double)
                .setUOrder(4)
                .setVDimension(3)
                .setVKnot([0, 0, 0, 1, 1, 1].to_java Java::double)
                .setWeight([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1].to_java Java::double)
                .setMetadata(MetadataSet.new()
                    .addValue(MetadataString.new()
                        .setName("INSTANT_PLAYER_MODE")
                        .setValue(["True"].to_java Java::java.lang.String)
                    )
                )
                .setControlPoint(Coordinate.new()
                    .setPoint([26, -3.4641, 0, 25.919, -3.6037, 1.3963, 25.56, -3.7405, 4.0054, 25.181, -3.8742, 5.3524, 24.803, -4.0079, 6.6994, 23.917, -4.1384, 9.1201, 23.258, -4.2654, 10.355, 22.6, -4.3925, 11.59, 21.254, -4.5161, 13.716, 20.346, -4.6359, 14.782, 19.438, -4.7557, 15.848, 17.718, -4.8717, 17.591, 16.603, -4.9837, 18.439, 15.488, -5.0957, 19.288, 13.498, -5.2037, 20.586, 12.227, -5.3073, 21.177, 10.956, -5.4109, 21.768, 8.807, -5.5103, 22.587, 7.4387, -5.605, 22.894, 6.0705, -5.6998, 23.202, 3.8772, -5.79, 23.532, 2.4743, -5.8754, 23.542, 1.0714, -5.9609, 23.552, -1.0568, -6.0415, 23.413, -2.4306, -6.1172, 23.125, -3.8043, -6.1929, 22.838, -5.7687, -6.2637, 22.273, -7.0511, -6.3292, 21.701, -8.3335, -6.3948, 21.13, -10.051, -6.4552, 20.202, -11.185, -6.5104, 19.373, -12.318, -6.5655, 18.543, -13.727, -6.6154, 17.332, -14.66, -6.6598, 16.282, -15.594, -6.7043, 15.233, -16.653, -6.7433, 13.825, -17.346, -6.7768, 12.602, -18.039, -6.8103, 11.38, -18.73, -6.8383, 9.8674, -19.152, -6.8608, 8.5269, -19.574, -6.8832, 7.1864, -19.903, -6.9001, 5.6579, -20.036, -6.9113, 4.2587, -20.169, -6.9226, 2.8595, -20.161, -6.9282, 1.3963, -20, -6.9282, 2.4493e-15, -19.839, -6.9282, -1.3963, -19.538, -6.9226, -2.7254, -19.09, -6.9113, -4.0578, -18.643, -6.9001, -5.3901, -18.104, -6.8832, -6.5319, -17.39, -6.8608, -7.7425, -16.676, -6.8383, -8.9532, -15.963, -6.8103, -9.8721, -15.015, -6.7768, -10.909, -14.067, -6.7433, -11.946, -13.246, -6.7043, -12.625, -12.105, -6.6598, -13.444, -10.963, -6.6154, -14.263, -10.1, -6.5655, -14.701, -8.8152, -6.5104, -15.268, -7.5303, -6.4552, -15.835, -6.683, -6.3948, -16.05, -5.3095, -6.3292, -16.341, -3.9361, -6.2637, -16.632, -3.1541, -6.1929, -16.651, -1.7506, -6.1172, -16.656, -0.34709, -6.0415, -16.66, 0.33248, -5.9609, -16.521, 1.7068, -5.8754, -16.239, 3.0811, -5.79, -15.957, 3.6343, -5.6998, -15.704, 4.9219, -5.605, -15.148, 6.2096, -5.5103, -14.593, 6.6259, -5.4109, -14.269, 7.7733, -5.3073, -13.464, 8.9208, -5.2037, -12.659, 9.2022, -5.0957, -12.307, 10.162, -4.9837, -11.286, 11.122, -4.8717, -10.266, 11.282, -4.7557, -9.9224, 12.015, -4.6359, -8.7294, 12.748, -4.5161, -7.5364, 12.806, -4.3925, -7.2301, 13.283, -4.2654, -5.9142, 13.761, -4.1384, -4.5982, 13.743, -4.0079, -4.3485, 13.945, -3.8742, -2.964, 14.147, -3.7405, -1.5795, 14.081, -3.6037, -1.3963, 14, -3.4641, -3.429e-15, 29.75, 5.6292, 0, 29.972, 5.4546, 1.3963, 29.814, 5.266, 4.9098, 29.72, 5.0646, 6.3172, 29.626, 4.8632, 7.7246, 28.681, 4.6491, 11.241, 28.273, 4.4236, 12.588, 27.866, 4.1982, 13.935, 26.133, 3.9616, 17.261, 25.432, 3.7155, 18.477, 24.731, 3.4694, 19.694, 22.26, 3.2138, 22.636, 21.301, 2.9507, 23.658, 20.343, 2.6875, 24.679, 17.236, 2.4168, 27.062, 16.07, 2.1406, 27.834, 14.904, 1.8644, 28.606, 11.308, 1.5827, 30.283, 9.9957, 1.2977, 30.764, 8.6838, 1.0127, 31.245, 4.7789, 0.72429, 32.11, 3.3921, 0.4348, 32.273, 2.0053, 0.14531, 32.437, -2.0053, -0.14531, 32.437, -3.3921, -0.4348, 32.273, -4.7789, -0.72429, 32.11, -8.6838, -1.0127, 31.245, -9.9957, -1.2977, 30.764, -11.308, -1.5827, 30.283, -14.904, -1.8644, 28.606, -16.07, -2.1406, 27.834, -17.236, -2.4168, 27.062, -20.343, -2.6875, 24.679, -21.301, -2.9507, 23.658, -22.26, -3.2138, 22.636, -24.731, -3.4694, 19.694, -25.432, -3.7155, 18.477, -26.133, -3.9616, 17.261, -27.866, -4.1982, 13.935, -28.273, -4.4236, 12.588, -28.681, -4.6491, 11.241, -29.626, -4.8632, 7.7246, -29.72, -5.0646, 6.3172, -29.814, -5.266, 4.9098, -29.972, -5.4546, 1.3963, -29.75, -5.6292, 3.6433e-15, -29.528, -5.8037, -1.3963, -28.947, -5.9641, -4.7254, -28.423, -6.1094, -6.0414, -27.898, -6.2548, -7.3574, -26.669, -6.3848, -10.345, -25.87, -6.499, -11.518, -25.071, -6.6133, -12.691, -23.317, -6.7114, -15.215, -22.284, -6.7933, -16.19, -21.251, -6.8752, -17.166, -19.115, -6.9403, -19.143, -17.899, -6.9891, -19.879, -16.682, -7.0379, -20.614, -14.316, -7.0697, -22.003, -12.973, -7.0853, -22.469, -11.629, -7.1008, -22.935, -9.18, -7.0995, -23.735, -7.7704, -7.0823, -23.915, -6.3608, -7.065, -24.095, -3.9621, -7.0313, -24.339, -2.5466, -6.9823, -24.23, -1.1312, -6.9333, -24.12, 1.1049, -6.8684, -23.87, 2.4679, -6.7893, -23.481, 3.8309, -6.7102, -23.091, 5.8187, -6.616, -22.427, 7.0758, -6.5088, -21.777, 8.3329, -6.4016, -21.128, 10.015, -6.2805, -20.139, 11.119, -6.1477, -19.258, 12.223, -6.015, -18.378, 13.568, -5.8698, -17.155, 14.479, -5.7145, -16.081, 15.391, -5.5593, -15.006, 16.39, -5.3931, -13.634, 17.078, -5.2187, -12.408, 17.766, -5.0443, -11.182, 18.428, -4.8607, -9.7332, 18.871, -4.6708, -8.4017, 19.313, -4.4808, -7.0702, 19.659, -4.2836, -5.6061, 19.842, -4.0819, -4.2176, 20.025, -3.8803, -2.8291, 20.04, -3.5687, -0.69813, 20, -3.4641, -4.8986e-15, 20, 6.9282, 0, 20.161, 6.9282, 1.3963, 20.169, 6.9226, 2.8595, 20.036, 6.9113, 4.2587, 19.903, 6.9001, 5.6579, 19.574, 6.8832, 7.1864, 19.152, 6.8608, 8.5269, 18.73, 6.8383, 9.8674, 18.039, 6.8103, 11.38, 17.346, 6.7768, 12.602, 16.653, 6.7433, 13.825, 15.594, 6.7043, 15.233, 14.66, 6.6598, 16.282, 13.727, 6.6154, 17.332, 12.318, 6.5655, 18.543, 11.185, 6.5104, 19.373, 10.051, 6.4552, 20.202, 8.3335, 6.3948, 21.13, 7.0511, 6.3292, 21.701, 5.7687, 6.2637, 22.273, 3.8043, 6.1929, 22.838, 2.4306, 6.1172, 23.125, 1.0568, 6.0415, 23.413, -1.0714, 5.9609, 23.552, -2.4743, 5.8754, 23.542, -3.8772, 5.79, 23.532, -6.0705, 5.6998, 23.202, -7.4387, 5.605, 22.894, -8.807, 5.5103, 22.587, -10.956, 5.4109, 21.768, -12.227, 5.3073, 21.177, -13.498, 5.2037, 20.586, -15.488, 5.0957, 19.288, -16.603, 4.9837, 18.439, -17.718, 4.8717, 17.591, -19.438, 4.7557, 15.848, -20.346, 4.6359, 14.782, -21.254, 4.5161, 13.716, -22.6, 4.3925, 11.59, -23.258, 4.2654, 10.355, -23.917, 4.1384, 9.1201, -24.803, 4.0079, 6.6994, -25.181, 3.8742, 5.3524, -25.56, 3.7405, 4.0054, -25.919, 3.6037, 1.3963, -26, 3.4641, 3.1841e-15, -26.081, 3.3245, -1.3963, -25.875, 3.182, -4.0725, -25.654, 3.0371, -5.4529, -25.433, 2.8922, -6.8334, -24.652, 2.7448, -9.4474, -24.139, 2.5954, -10.747, -23.627, 2.4459, -12.048, -22.291, 2.2943, -14.47, -21.511, 2.1409, -15.629, -20.731, 1.9876, -16.788, -18.892, 1.8325, -18.895, -17.881, 1.6761, -19.859, -16.869, 1.5196, -20.822, -14.607, 1.3618, -22.507, -13.411, 1.2031, -23.229, -12.216, 1.0443, -23.952, -9.6323, 0.88454, -25.127, -8.3095, 0.72419, -25.574, -6.9868, 0.56385, -26.022, -4.2023, 0.40292, -26.625, -2.8143, 0.24179, -26.776, -1.4263, 0.080662, -26.928, 1.4263, -0.080662, -26.928, 2.8143, -0.24179, -26.776, 4.2023, -0.40292, -26.625, 6.9868, -0.56385, -26.022, 8.3095, -0.72419, -25.574, 9.6323, -0.88454, -25.127, 12.216, -1.0443, -23.952, 13.411, -1.2031, -23.229, 14.607, -1.3618, -22.507, 16.869, -1.5196, -20.822, 17.881, -1.6761, -19.859, 18.892, -1.8325, -18.895, 20.731, -1.9876, -16.788, 21.511, -2.1409, -15.629, 22.291, -2.2943, -14.47, 23.627, -2.4459, -12.048, 24.139, -2.5954, -10.747, 24.652, -2.7448, -9.4474, 25.433, -2.8922, -6.8334, 25.654, -3.0371, -5.4529, 25.875, -3.182, -4.0725, 26.081, -3.3245, -1.3963, 26, -3.4641, -6.3682e-15].to_java Java::float)
                )
            )
            .setAppearance(Appearance.new()
                .setDEF("ksh_appearance_3")
                .setMaterial(Material.new()
                    .setDiffuseColor([0, 0, 1].to_java Java::float)
                )
            )
        )
        .addChild(Group.new()
            .setDEF("triad")
            .addChild(Shape.new()
                .setGeometry(LineSet.new()
                    .setVertexCount([2].to_java Java::int)
                    .setCoord(Coordinate.new()
                        .setPoint([0, 0, 0, 1, 0, 0].to_java Java::float)
                    )
                )
                .setAppearance(Appearance.new()
                    .setMaterial(Material.new()
                        .setEmissiveColor([1, 0, 0].to_java Java::float)
                    )
                    .setLineProperties(LineProperties.new()
                        .setLinewidthScaleFactor(2.0)
                .addComments(CommentsBlock.new("linetype='1' solid"))
                    )
                )
            )
            .addChild(Shape.new()
                .setGeometry(LineSet.new()
                    .setVertexCount([2].to_java Java::int)
                    .setCoord(Coordinate.new()
                        .setPoint([0, 0, 0, 0, 1, 0].to_java Java::float)
                    )
                )
                .setAppearance(Appearance.new()
                    .setMaterial(Material.new()
                        .setEmissiveColor([0, 1, 0].to_java Java::float)
                    )
                    .setLineProperties(LineProperties.new()
                        .setLinewidthScaleFactor(2.0)
                .addComments(CommentsBlock.new("linetype='1' solid"))
                    )
                )
            )
            .addChild(Shape.new()
                .setGeometry(LineSet.new()
                    .setVertexCount([2].to_java Java::int)
                    .setCoord(Coordinate.new()
                        .setPoint([0, 0, 0, 0, 0, 1].to_java Java::float)
                    )
                )
                .setAppearance(Appearance.new()
                    .setMaterial(Material.new()
                        .setEmissiveColor([0, 0, 1].to_java Java::float)
                    )
                    .setLineProperties(LineProperties.new()
                        .setLinewidthScaleFactor(2.0)
                .addComments(CommentsBlock.new("linetype='1' solid"))
                    )
                )
            )
        )
    )
x3D0.toFileX3D "../data/mobiusDon.new.jruby.x3d"
x3D0.toFileJSON "../data/mobiusDon.new.jruby.x3dj"
