# FilmScript The best Canadian camera technology since IMAX. ## Syntax FilmScript uses a simple function syntax which you will be familiar with from most modern programming languages like C and Python. The end of an operation is denoted by a new line `\n`. Multiple operations can be performed simultaneously by placing them on the same line. Lines are executed sequentially starting from the top of the file until the end. Here's a generic example of the syntax: ``` operation1(operand1, operand2, operand3) operation2(operand1, operand2) operation3a(operand1) operation3b(operand1, operand2) ``` ## Operations FilmScript is a set of commands that can be used to describe a camera and it's movements in time. Supported operations and their operands are outlined below. Here's an example of a functioning FilmScript file using some of the supported operations: ``` #version 0.1.0 look(0, 0, 0), move(0, 0, 0) track(20, 0, 20, 5), rotate(0, -5.5, 0, 5) rotate(0, 5.5, 0, 2) track(-20, 5, 0, 5) ``` ### TRACK(DISTANCE_X, DISTANCE_Y, DISTANCE_Z, TIME=0) Move the camera relative to the current position and rotation. Use a negative value to move backwards. This operation supports linear interpolation through the optional TIME operand (seconds). ### MOVE(X, Y, Z) Move the camera to an absolute position. ### ROTATE(DEGREES_X, DEGREES_Y, DEGREES_Z, TIME=0) Rotate the camera clockwise around the axes, relative to the current rotation. Use a negative value to rotate counter-clockwise. This operation supports linear interpolation through the optional TIME operand (seconds). ### LOOK(DEGREES_X, DEGREES_Y, DEGREES_Z) Rotate the camera to an absolute rotation. ### MULTI(OPERATION1, OPERATION2, ...) Perform multiple operations simultaneously. This is implicitly used whenever more than one operation appears on a single line.