Making movies

Fractalshades defines several classes to help the user making fractal movies. You can refer to the documentation of the movie API: Movie module. The purpose of this section is to give more practical details on the use of the movie-making API.

The main idea is to start from a movie class ` fractalshades.movie.Movie` and populate is with one or several sequences. Some available sequence kinds are:

The sequence will take as input either a plotting object (fractalshades.Fractal_plotter) or a database object (fractalshades.db.Db). The GUI tool allows to create a template script to generate a plotter object for any image created by the GUI: see the Movie section of the main menu.

This plotter template can then be imported from the main movie-making script (to be provied by the user). Several examples are provided below for guidance.

Example: pan sequence

Download the following scripts in the same directory:

Run the script ; it will import the template at runtime and use it to create a db and make the movie itself.

Note: setting postdb parameter to False will trigger additionnal plotting effects, however at the expense of a much longer calculation and increased disk storage. A low-quality export of this video is available at:

Example: zoom sequence

Download the following scripts in the same directory:

Run the script ; it will import the template at runtime and use it to create a db and make the movie itself.

A low-quality export of this video is available at:

Example: “Custom” zoom sequence

This movie is composed of 2 successive zoom sequences, and a “custom” sequence is used to generate a skew transition at an intermediate depth. Download the following scripts in the same directory:

Run the script ; it will import the template at runtime and use it to create a db and make the movie itself. A low-quality export of this video is available at:

Example: Using Distance Estimation plots

This zoom sequence uses colors based on distance estimation. In order to ensure a smooth “seam” between the exponential mapping and the final (cartesian) image be sure to use the expmap_seam option for this kind of postprocessing. This option can safely be used for all postprocessing types but has a noticeable effect only for a few:

plot_kwargs["batch_params"] = {
    "projection": fs.projection.Cartesian(expmap_seam=1.0)
}

Download:

Run the script ; it will import the template at runtime and use it to create a db and make the movie itself. A low-quality export of this video is available at: