with (SceneJs) {
    var exampleScene = scene({}, // node always has a config object

            renderer({ canvasId: 'mycanvas',    clear : { depth : true, color : true}},
                    shader({
                        type: 'texture-shader'
                    },
                            lights({
                                lights: [
                                    {
                                        pos: { x: -30.0, y: -1000.0, z: 300.0 }
                                    }
                                ]},
                                    perspective({ fovy : 25.0, aspect : 1.0, near : 0.10, far : 300.0
                                    },
                                            lookAt({
                                                eye : { x: 0.0, y: 0.0, z: -10},
                                                look : { x : 0.0, y : 0.0, z : 0 },
                                                up : { x: 0.0, y: 1.0, z: 0.0 }

                                            },


                                                    material({
                                                        ambient:  { r:0.3, g:0.3, b:0.3 },
                                                        diffuse:  { r:1.0, g:1.0, b:1.0 }
                                                    },

                                                        /** Texture is configured with the URI at which its
                                                         * image is stored. Textures are loaded asynchronously;
                                                         * by default they will cause scene traversal to bypass their
                                                         * child nodes until the texture image has loaded. However,
                                                         * you can configure them with wait: false if you want
                                                         * thier child geometries to appear all naked and shivering
                                                         * while the texture image loads.
                                                         */
                                                            texture({
                                                                uri:"texture.jpg",
                                                                wait: false
                                                            },
                                                                    rotate(function(scope) {
                                                                        return { angle: scope.get("angle"), x : 1.0, y : 1.0}
                                                                    },
                                                                    BlenderExport.Cube()
                                                                            )
                                                                    )
                                                            )
                                                    )
                                        // ) // lookAt
                                            ) // perspective
                                    ) // lights
                            ) // shader
                    ) // renderer
            ); // scene


    var angle = 0.0;
    var pInterval;


    /* Function to render a frame - defined on the window so
     * that setInterval can find it in the PlayRoom, which does
     * an eval to instantiate this scene.
     */
    window.nextFrame = function() {


        /* You may wish to tweak this if your machine is too slow/fast
         */
        angle += 0.4;

        try {
            exampleScene.render({angle:angle});
        } catch (e) {
            clearInterval(pInterval);
            throw e;
        }
    };

    /* Hack to get any scene definition exceptions up front.
     * Chrome seemed to absorb them in setInterval!
     */
    exampleScene.render({angle:angle});

    /* Continue animation
     */
    pInterval = setInterval("window.nextFrame()", 10);
}
