FracTest saves the most recently generated views in a history list. This makes it very convenient to go back to some view you have previously seen, and forwards again from there, or to branch off in a different direction.

In addition, FracTest can be configured to regularly save a checkpoint of the current computation, so that if you have a crash or power cut during a long computation (some views can take weeks or more to render) then it can be re-started from its most recent checkpoint.

The following sections describe the history and checkpointing features in detail.

File Storage

History entries and checkpoints are stored as PNG files; this means that they can be shown again without re-computing. They can also be viewed in a window, and exported to be saved in the file system.

Both history and checkpoints features are local to a session; each session's history and checkpoints are independent of all others. The history and checkpoints for each session are stored in the session's files directory.

Note that the history window provides a feature to copy history entries out to a directory of your choice.

History

History Storage

FracTest saves the most recently generated views within a session as files in a history list. The history list is kept as a set of files in the session's folder, in a sub-folder called "history".

Currently, the number of views kept is 50.

History Navigation

You can step backwards and forwards through this history using the controls in the application's main toolbar:

First: go back to the first view. Previous: go back to the previous view.
Next: go forward to the next view. Last: go forward to the last view.

Controls will be greyed out when not applicable; for example, you can't go forwards from the most recent view.

The history entries are stored as PNG files; as described in the files page, each PNG file contains the parameters of the fractal view in it, and the current computation state as when it was saved. This means that if you go back to a previous history view which had not fully rendered, it will continue computing from where it left off.

History Window

The history window allows you to see the state of the history, and also to copy views from it out as files in a folder you select.

To open the history window, click the history button in the toolbar; this is the clock icon as shown at right. Alternatively, use the menu entry "Fractal" → "Show History".

The window displays the stored history views, most recent first, as follows:


The history window (click to expand).

Double-clicking a view will re-open it in the main window. Note that views which have just started but not had a chance to save themselves will be shown as blank.

Each view has a checkbox to the left of it which allows it to be selected. Checked views can be used in conjunction with the window's toolbar buttons:

Close the history window. Copy the checked history entries to a selected folder.
Check all items in the history. Un-check all items in the history.

If there are some interesting views in the history which you wish to save, then check them using the checkbox controls, and click the "Save" button. A file selector will appear to allow you to choose the folder to save them to.

Navigation Logic

Whenever possible, when navigating the history, we move the pointer to the current view within the history — we don't modify the history by moving, or copying, a selected view to the top of the list, rather we leave it in place but set the history pointer to it.

This means that if you click the "Back" button, the history isn't modified; we just set the current view to the previous view and display it. If you then click "Forward", you will move forward to the most recently created view. This is quite logical, and in general works fairly well; but sometimes it can produce surprising results.

Say I've navigated through a sequence of views Bulb, Satellite, Ray, Whip and Lightning — then my history might look like the picture below. Note that the current view, Lightning, which is also the most recent view, is highlighted with a red border. This is the view displayed in the main window.


History view after navigating through the sequence Bulb, Satellite, Ray, Whip and Lightning (click to expand).

Now, if I double-click Satellite, that view will load — but it stays in its place in the history, which becomes the new current view. This is as if I had clicked the "Back" button 3 times. The history will now look like this:


History view after selecting Satellite (click to expand).

Note that none of the views has changed place, but Satellite is now selected as the current view, and will be displayed in the main app window. If I was to click "Back", I would be at Bulb, even though Lightning was the previous view on my screen.

If, instead, I make a modified version of Satellite, say by zooming in on a particular feature, then the new generated view is added at the end of the history, after Lightning, like this:


History view after creating a new view derived from Satellite (click to expand).

If I now click "Back", I will be back at Lightning — even though Satellite was the view I was just looking at.

Even though the basic concept is logical, the results can be a little counter-intuitive. To make things clearer, keep the history window open, and you will be able to see exactly what's going on.

Checkpoints

Periodically, as configured in the settings, FracTest will store the state of the current computation in a checkpoint file. Checkpoints are stored as PNG files in the folder for the current session, in a sub-folder called "checkpoint".

The checkpoint interval (in minutes) and the number of checkpoints to store are configured in the settings. Setting the interval to 0 disables checkpointing.

This feature is very useful during long renders, in the case that something goes wrong — the app crashes, or there's a power cut, etc. In that case, the most recent checkpoint should contain (pretty much) the latest state of the render; loading it will continue the render from that point.

Currently, the way to load a checkpoint is to manually copy it out of the checkpoints directory and load it. In future, some kind of automated restart will be provided.