Incendia Script
Incendia Script consists in a series of fractal transformations on where every transformation is a set of predefined commands with given parameters.
The scripts are defined in a text format and are saved with a ".prg" file extension. You can edit them in any text editor such as notepad.exe
Many of the fractals defined on Incendia can be exported as scripts, so they can provide an starting point for making modifications.
The general method for defining scripts consists in starting with transformation command "tform", with marks the start of a transformation set. Next to this definition is the "probability" command, that is used to defining a probability for the current transformation.
After defining these two main commands, the transformation commands are used, commands such as "scale", "translate" and "rotate", for example. The command definitions for the current transformation continues until another "tform" command is found, that defines the start of a new transformation.
Heres an example of a simple script:
;This script defines a simple sierpinski tetrahedron, composed of four transformations.
tform
probability 0.5
scale 0.5 0.5 0.5
tform
probability 0.5
scale 0.5 0.5 0.5
translate 1 0 0
tform
probability 0.5
scale 0.5 0.5 0.5
translate 0 1 0
tform
probability 0.5
scale 0.5 0.5 0.5
translate 0 0 1
Rules:
1. All commands must be in lowercase, uppercase or incomplete commands are ignored.
2. Every command has a finite number of parameters, if theres a missing commands or an erroneous parameter, the command is ignored.
3. If the ";" character is found on a line, the entire line will be ignored. This is for inserting comments on the scripts.
General Commands
Affine Transformations Commands
Transformation Commands
Fractal Commands
Flame Commands
These are some of the standard flame variations, most of them consist in simple functions with a weight factor that are added to the current iteration value.
In the case of the flame2 commands, they are a variation on the flame algorithm :
The Flame commands are:
- flame_sinusoidal
- flame_spherical
- flame_swirl3d
- flame_hyper
- flame_fisheye
- flame_horns
- flame_radsin
- flame_qsqrt
- flame_gnarl
- flame2_sinusoidal
- flame2_spherical
- flame2_swirl3d
- flame2_hyper
- flame2_fisheye
- flame2_horns
- flame2_radsin
- flame2_qsqrt
- flame2_gnarl
Conditional Commands
These commands acts as filters for the transformation elements, allowing the execution of the rest of the commands if their conditional is true, or else, bailing out.
In the case of the baseshape command, if the selected baseshape is equal to the one defined by the command, the nexts commands on the transformation are executed. The index of the baseshapes are visible on the Baseshape editor.
The Boolean commands are:
Baseshape Commands
These commands are for adding the baseshapes to the actual script.
Heres an example of a simple script:
;Simple Incendia Orrery
;sphere
tbase
base_type 1
base_depth 10
base_position 1 0 0
base_radius 0.0625
;torus
tbase
base_type 2
base_depth 10
base_radius 1
base_parameters 0.005
;star
tbase
base_type 42
base_depth 0
base_radius 0.1
base_parameters 1
;orbits
tform
rotate_xyz 0 0 137.51
scale 0.85 0.85 0.85
The baseshape commands are:
- tbase
- base_type
- base_depth
- base_parameters
- base_radius
- base_position
- base_shear
- base_rotation
- base_xyzrot
- base_show_first
- base_mrot
- base_material
- base_scale