#Inventor V2.0 ascii # Bush robot oscillating between left- and right-handed # fractal surface fill, passing through tight clumping # pose between fill poses Level 6 bush. BaseColor{ rgb 1 .85 .45 } # set whichChild to 8 for level 6 bush, to 7 for level 5 twig Switch { whichChild 8 DEF SPRIG-0 # Expensive cylindrical branch, with spherical end cap Separator { Separator { Transform { translation 0 -1 0 } Transform{ scaleFactor .1 1 .1} Cylinder{} } Transform { scaleFactor .1 .1 .1 } Sphere{} } DEF SPRIG-0b # Cheap hexagonal branch, with triangular open ends Separator { Coordinate3 { point [ 0.15 -2.0 0.0, # 0 0.075 0.0 0.13, # 4 -0.075 -2.0 0.13, # 1 -0.15 0.0 0.0, # 3 -0.075 -2.0 -0.13, # 2 0.075 0.0 -0.13, # 5 0.15 -2.0 0.0, # 0 0.075 0.0 0.13, # 4 ] } TriangleStripSet {} } DEF SPRIG-0c # Cheaper quadrilateral branch, with knife edges Separator { Coordinate3 { point [ .15 -2 0, # 0 0 0 .15, # 1 -.15 -2 0, # 2 0 0 -.15, # 3 .15 -2 0, # 0 0 0 .15, # 1 ] } TriangleStripSet {} } DEF SPRIG-1 Separator { USE SPRIG-0c Pendulum { rotation0 0 1 0 1.57 rotation1 0 1 0 -1.57 speed .07 } Separator { Pendulum { rotation0 0 0 1 .6 rotation1 0 0 1 .3 speed .14 } # Branch A Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-0c } Separator { Pendulum { rotation0 .866 0 -.5 .6 rotation1 .866 0 -.5 .3 speed .14 } # Branch B Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-0c } Separator { Pendulum { rotation0 -.866 0 -.5 .6 rotation1 -.866 0 -.5 .3 speed .14 } # Branch C Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-0c } } DEF SPRIG-2 Separator { USE SPRIG-0b Pendulum { rotation0 0 1 0 1.57 rotation1 0 1 0 -1.57 speed .07 } Separator { Pendulum { rotation0 0 0 1 .5 rotation1 0 0 1 .4 speed .14 } # Branch A Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-1 } Separator { Pendulum { rotation0 .866 0 -.5 .5 rotation1 .866 0 -.5 .4 speed .14 } # Branch B Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-1 } Separator { Pendulum { rotation0 -.866 0 -.5 .5 rotation1 -.866 0 -.5 .4 speed .14 } # Branch C Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-1 } } DEF SPRIG-3 Separator { USE SPRIG-0b Pendulum { rotation0 0 1 0 1.57 rotation1 0 1 0 -1.57 speed .07 } Separator { Pendulum { rotation0 0 0 1 .4 rotation1 0 0 1 .5 speed .14 } # Branch A Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-2 } Separator { Pendulum { rotation0 .866 0 -.5 .4 rotation1 .866 0 -.5 .5 speed .14 } # Branch B Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-2 } Separator { Pendulum { rotation0 -.866 0 -.5 .4 rotation1 -.866 0 -.5 .5 speed .14 } # Branch C Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-2 } } DEF SPRIG-4 Separator { USE SPRIG-0 Pendulum { rotation0 0 1 0 1.57 rotation1 0 1 0 -1.57 speed .07 } Separator { Pendulum { rotation0 0 0 1 .3 rotation1 0 0 1 .6 speed .14 } # Branch A Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-3 } Separator { Pendulum { rotation0 .866 0 -.5 .3 rotation1 .866 0 -.5 .6 speed .14 } # Branch B Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-3 } Separator { Pendulum { rotation0 -.866 0 -.5 .3 rotation1 -.866 0 -.5 .6 speed .14 } # Branch C Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-3 } } DEF SPRIG-5 Separator { USE SPRIG-0 Pendulum { rotation0 0 1 0 1.57 rotation1 0 1 0 -1.57 speed .07 } Separator { Pendulum { rotation0 0 0 1 .2 rotation1 0 0 1 .7 speed .14 } # Branch A Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-4 } Separator { Pendulum { rotation0 .866 0 -.5 .2 rotation1 .866 0 -.5 .7 speed .14 } # Branch B Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-4 } Separator { Pendulum { rotation0 -.866 0 -.5 .2 rotation1 -.866 0 -.5 .7 speed .14 } # Branch C Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-4 } } DEF SPRIG-6 Separator { BaseColor{ rgb .85 1 .45 } Separator { Transform {scaleFactor .1 .1 .1} Sphere {} } Pendulum { rotation0 0 1 0 1.57 rotation1 0 1 0 -1.57 speed 0 } Separator { Pendulum { rotation0 0 0 1 .1 rotation1 0 0 1 .8 speed .14 } # Branch A Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-5 } Separator { Pendulum { rotation0 .866 0 -.5 .1 rotation1 .866 0 -.5 .8 speed .14 } # Branch B Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-5 } Separator { Pendulum { rotation0 -.866 0 -.5 .1 rotation1 -.866 0 -.5 .8 speed .14 } # Branch C Transform { scaleFactor 0.577 0.577 0.577 } Transform { translation 0 2 0 } USE SPRIG-5 } } }