Link Search Menu Expand Document

Earth Moon

Sample scene: Earth and Moon with Markers. Example of setting up and activating interactive animation.

```pythonfrom arena import *

def end_program_callback(scene: Scene): global sceneParent, earth, moon scene.delete_object(moon) scene.delete_object(earth) scene.delete_object(sceneParent)

command line options

scene = Scene(cli_args=True, end_program_callback=end_program_callback) app_position = scene.args[“position”] app_rotation = scene.args[“rotation”] app_scale = scene.args[“scale”]

@scene.run_once def main(): global sceneParent, earth, moon # make a parent scene object sceneParent = Object( object_id=”earth-sceneParent”, persist=True, position=app_position, rotation=app_rotation, scale=app_scale, ) scene.add_object(sceneParent)

# Create models
earth = GLTF(
    object_id="gltf-model_Earth",
    persist=True,
    position=(0, 0.1, 0),
    scale=(10, 10, 10),
    url="store/users/wiselab/models/Earth.glb",
    parent=sceneParent.object_id,
    animation=Animation(
        property="rotation",
        end=(0, 360, 0),
        loop=True,
        dur=20000,
        easing="linear"
    )
)
moon = GLTF(
    object_id="gltf-model_Moon",
    persist=True,
    position=(0, 0.05, 0.6),
    scale=(0.05, 0.05, 0.05),
    url="store/users/wiselab/models/Moon.glb",
    parent="gltf-model_Earth",
    animation=Animation(
        property="scale",
        start=(0.05, 0.05, 0.05),
        end=(0.1, 0.1, 0.1),
        startEvents="click",
        loop=6,
        dur=1000,
        dir="alternate",
        easing="easeInOutCirc"
    ),
)

scene.add_object(earth)
scene.add_object(moon)

print(earth.json())

# Create marker objects
scene.add_object(Box(object_id="box0", color=Color(
    0, 255, 0), scale=(0.2, 0.2, 0.2), parent=sceneParent.object_id))
scene.add_object(Box(object_id="box1", color=Color(255, 0, 0), scale=(0.2, 0.2, 0.2),
                     position=(-0.7,  1.67, 2.11), parent=sceneParent.object_id))
scene.add_object(Box(object_id="box2", color=Color(0, 255, 255), scale=(0.2, 0.2, 0.2),
                     position=(-2.88, 2.80, -2.12), parent=sceneParent.object_id))
scene.add_object(Box(object_id="box3", color=Color(0, 0, 255), scale=(0.2, 0.2, 0.2),
                     position=(-0.09, 1.30, -3.66), parent=sceneParent.object_id))
scene.add_object(Box(object_id="box4", color=Color(100, 200, 50), scale=(0.2, 0.2, 0.2),
                     position=(3.31, 2.00, -0.97), parent=sceneParent.object_id))

scene.run_tasks() ```