Home
- Getting Started
- Introduction
- License
- Requirements
- Installing
- Uninstalling
- Exploring
- Navigation
- History
- Levels
- Snapshots
- Projects
- Fit in Window
- Grid
- Parameters
- Parameters
- Fractal Type
- Image Size
- Quality
- Antialiasing
- Cycle Length
- Color Offset
- Math Precision
- Deep Zoom
- Exponent
- Palettes
- Palettes
- Color mapping
- Recording movies
- Recording
- Choosing points
- Record dialog
- Video compression
- Record to bitmaps
- Exporting images
- Export bitmap
- Posters
- Distributed processing
- Distributed processing
- Servers dialog
- Finding servers
- Server arguments
- Job control
- Job control
- Options
- Default snapshot
- Thumbnail size
- Default file format
- Use SSE2
- Save changes warning
- Listen for servers
- Rendering threads
- Undo levels
- Network settings
- Zoom step
- Zoom tool step
- Cache full-size images
- Grid color
- Restore defaults
- Loose ends
- Printing
- Shortcuts
Fractice is a free, open-source fractal explorer for Windows. Fractice has a rich set of features, including navigation, deep zoom, movie recording, posters, palettes, multicore and distributed processing, history thumbnails, undo/redo, and job control. The fractal types currently supported are the Mandelbrot set, including higher-exponent variants, and the Newton fractal.
Please note that this documentation is a work in progress. Many features of Fractice are not yet documented, or are documented only partially or even incorrectly in some cases. The Fractice web site is updated more often than the application's help file, so for the latest version, consult the online documentation.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
Fractice requires Windows XP or Vista. A dual- or quad-core CPU is highly recommended.
Installing for the first time:
Fractice is distributed as a .zip file. Unzip the distribution file, using WinZip or an equivalent program, and then double-click on Fractice.msi to launch the installer. The installer is about as simple as an installer can be: just keep hitting "Next."
Note that by default, Fractice is installed for the current user only. This means additional users must manually create desktop and start menu shortcuts to Fractice. If you wish to install Fractice for all users, select the "Everyone" radio button in the lower-left corner of the Select Installation Folder page.
Upgrading a previous installation:
- Unzip the distribution file to a folder, if you haven't already.
- In that folder, double-click Upgrade.bat to launch the installer.
- In the installer, select the "Repair" option and press "Finish".
Note that simply double-clicking the new Fractice.msi doesn't work. You will get the error message "Another version of the product is already installed."
To uninstall Fractice from the Windows Start menu, select Programs/Fractice/Uninstall. You can also use Add/Remove Programs in the Control Panel, or double-click on Fractice.msi and select the "Remove" option.
Fractice provides three navigation tools: Marquee, Hand, and Zoom. To select one of these tools, use Edit/Tool, or the corresponding Toolbar buttons, or the shortcut keys M, H, and Z.
Tool | Action | Usage |
---|---|---|
Marquee | Zooms into a rectanglar area. | Identify an area of interest. Left-click a corner of this area, and while holding down the left button, move the cursor to the area's diagonally opposite corner. The selected area is indicated by a dotted border (the marquee). Release the left button to render this area. To cancel the operation, press Esc before releasing the left button. |
Hand | Drags the image in X/Y. | Left-click a point, and while holding down the left button, move the cursor. The image follows the cursor. Release the left button to render at the new coordinates. |
Zoom | Zooms continuously in or out. | Hold down the left button to zoom in; hold down the right button to zoom out. The zoom origin is determined by the cursor position. The zoom rate can be changed, via Zoom tool step in the Options dialog. |
Additional navigation methods are listed below. For these methods, the zoom amount is determined by Zoom step in the Options dialog; note that this differs from Zoom tool step, described above.
Method | Action | Usage |
---|---|---|
Zoom In | Zooms into the center. | Image/Zoom In, or press = |
Zoom Out | Zooms out from the center. | Image/Zoom Out, or press - |
Context Zoom In | Zooms into a given position. | Right-click the desired position, and select Zoom In from the context menu. |
Context Zoom Out | Zooms out from a given position. | Right-click the desired position, and select Zoom Out from the context menu. |
It's also possible to navigate to a specific location by entering its coordinates or bounding rectangle. To enter coordinates, use Edit/Coordinates. To enter a bounding rectangle, use Edit/Bounds.
***under construction***
***under construction***
***under construction***
***under construction***
Note that this setting also affects printing.
***under construction***
***under construction***
This parameter selects the type of fractal. Currently supported fractals include:
- Mandelbrot set, including higher-exponent variants
- Newton
To change fractal type, do one of the following:
- Select Image/Fractal from the main menu.
- Right-click the image and select Fractal from the context menu.
- Use the Fractal Type drop-list in the Parameters bar.
This parameter sets the actual size of the image, in pixels. The image is not necessarily displayed at this size; see fit in window. Larger sizes improve the image, at the expense of increased rendering time. To change image size, do one of the following:
- Select Image/Image Size in the main menu.
- Right-click the image and select Image Size in the context menu.
- Edit Image Width and Image Height in the Parameters bar.
The Image Size submenu includes standard sizes, a Custom option, and your most recently used non-standard sizes. Choosing Custom displays the Image Size dialog, allowing a non-standard size to be entered.
You can also use the following shortcuts to select a standard size:
- Ctrl+1 for 320 x 240
- Ctrl+2 for 640 x 480
- Ctrl+3 for 800 x 600
- Ctrl+4 for 1024 x 768
Very large image sizes can potentially exceed available memory, degrading performance. To avoid this, use the poster option instead. The current image allocates four bytes per pixel for escape times, and three bytes per pixel for color values, so Image Bytes = Width × Height × 7 (approximately).
This parameter sets the maximum number of iterations. Higher values improve the image, at the expense of increased rendering time. To change quality, do one of the following:
- Select Image/Quality in the main menu.
- Right-click the image and select Quality in the context menu.
- Edit the Quality value in the Parameters bar.
The Quality submenu includes standard values, a Custom option, and your most recently used non-standard values. Choosing Custom displays the Quality dialog, allowing a non-standard value to be entered.
You can also use the following shortcuts to select a standard value:
- Shift+1 for Draft
- Shift+2 for Normal
- Shift+3 for High
This parameter sets the degree of antialiasing. Higher values improve the image, at the expense of increased rendering time. To change antialiasing, do one of the following:
- Select Image/Antialiasing in the main menu.
- Right-click the image and select Antialiasing in the context menu.
- Edit the Antialiasing value in the Parameters bar.
The Antialiasing submenu includes standard values, a Custom option, and your most recently used non-standard values. Choosing Custom displays the Antialiasing dialog, allowing a non-standard value to be entered.
You can also use the following shortcuts to select a standard value:
- Alt+1 for None
- Alt+2 for 2x
- Alt+3 for 3x
- Alt+4 for 4x
This parameter controls how quickly Fractice cycles through the colors in the current palette. Lower values typically show more detail, but excessively low values increase high-frequency noise and give the image a posterized, "candy cane" appearance.
To change Cycle Length, edit its value in the Parameters bar, or use the "Length" slider in the Color Mapping bar. Cycle Length ranges from zero to the current Quality value.
***under construction***
***under construction***
***under construction***
This parameter sets the exponent for the Mandelbrot set, in order to support cubic, quartic, and other higher-exponent variants. Instead of the classic equation:
Z = Z2 + C
in which the exponent of Z is a constant, the exponent becomes a variable, so that the equation is:
Z = ZN + C
where N is a positive integer from 2 to 13. Higher exponents give the Mandelbrot more "bulbs"; the number of bulbs equals the exponent minus one. To change the exponent, edit its value in the Parameters bar. Note that higher exponents take longer to render, due to the increased number of computations.
***under construction***
***under construction***
Fractice can record movies of your explorations. A movie is defined by a start point, an end point, and a duration. Fractice interpolates the data between the two points, such that the viewer travels from the start point to the end point at a constant speed. The speed is determined by both the distance between the points, and the duration. To increase the speed, choose points that are further apart, or decrease the duration.
Interpolation can occur in all three coordinates (X, Y, and Z), however beginners are encouraged to interpolate in Z only. When interpolating in X and/or Y, the points must be chosen carefully to avoid crossing large empty spaces, which would result in a boring movie. To interpolate in Z only, choose the end point first; then use Image/Zoom Out to zoom out as far as desired without changing the X/Y position, and make the resulting image the start point. If zooming out in steps is too time-consuming, you can set Z directly, using Edit/Coordinates.
The movie's start and end points must already exist in your history. To begin recording, select File/Record or press Ctrl+R to open the Record dialog. Now drag the start point's thumbnail from the History bar to the Record dialog, and drop it onto the rectangle labeled "Start Point". Similarly, drag the end point's thumbnail onto the rectangle labeled "End Point".
Alternatively, you may find it easier to right-click a thumbnail in the history, and select "Start Point" or "End Point" from the context menu; this opens the Record dialog and copies the thumbnail to the appropriate point.
If the start and end points differ in any respect other than their coordinates, Fractice displays the following warning:
Points have different parameters and/or palettes. New point's parameters and palette will be used.
This occurs because Fractice can't interpolate anything but the coordinates. Properties other than the coordinates (image size, quality, antialiasing, palette, etc.) are taken from the most recently added point. Note that it's also possible to override parameters, using the parameters grid in the Record dialog.
- Duration
- The duration of the movie. This can be entered in either time (hh:mm:ss) or frames. Use the Time/Frames radio buttons to select the desired unit.
- Frame Rate
- The movie's frame rate, in frames per second. Fractional values are permitted. Common values are 29.97 for NTSC, and 25.00 for PAL.
- Parameters
- This grid control allows you to override any of the parameters. To change a parameter, left-click it, enter a new value, and press Enter.
- Frame Range
- To record only a subset of the movie, select "Range" and enter the desired frame range.
- Record to bitmaps
- Check this box to record the movie as a sequence of numbered bitmaps instead of an AVI file. This is useful for recordings that will take a very long time; see Record to bitmaps.
- Queue to job control
- If this box is checked, pressing "Start" adds the movie to the job queue instead of beginning the recording immediately.
- Swap
- Press this button to exchange the start and end points. This is useful for trying a movie in reverse.
- Close
- Press this button to save your changes and dismiss the dialog without starting the recording.
- Start
- Press this button to save your changes and begin recording.
After pressing "Start" in the Record dialog, a "Save As" dialog is displayed (unless Record to bitmaps was checked). Specify the location and file name of the output AVI file, and press "OK" to continue. The "Video Compression" dialog is now displayed. Select a compressor (or "Full Frames" for uncompressed video), configure the compressor as desired, and then press "OK" to begin recording.
Assuming you have enough disk space, it's usually preferable to record uncompressed, and then do the compression afterwards, using an external application. This allows you to experiment with different compression settings without re-recording the movie. This is especially important for deep zoom movies, which may take days or weeks to render, even with distributed processing. In such cases, it's also recommended to record to bitmaps, so that an aborted render can be resumed.
If "Record to bitmaps" is checked in the Record dialog, the recording doesn't create an AVI file; instead, it creates a numbered sequence of bitmaps, one per frame. Recording to bitmaps has an important advantage over recording to an AVI file: if a recording to bitmaps is aborted, it can easily be resumed.
To resume an aborted recording to bitmaps, open the project, press "Start" in the Record dialog, and select the same destination folder that the aborted recording used. Fractice will display this message:
Destination folder already contains numbered bitmaps which could be an aborted version of this recording. If so, continue recording from where it aborted?
Fractice can't be certain that the bitmaps it found are in fact an aborted version of the current recording. Fractice relies on you to verify this! Press "Yes" in this message box to resume the recording. Note that it's not necessary to specify a frame range in the Record dialog; Fractice figures out which frames need to be rendered, automatically detecting and fixing any gaps in the sequence.
If you abort a recording to AVI, there's no easy way to resume it. You can try recording the remainder of the movie to a different AVI, and merging the clips in a video editor, but this is tricky, and it's only possible if the aborted recording was closed gracefully, which won't be the case if there was a crash or a power outage. For this reason, if a recording will take a long time, it's highly recommended to record to bitmaps.
If you need to create an AVI file from a bitmap sequence, an external tool called "BmpToAvi" is provided for this purpose. You'll find it in the Windows Start menu, under Programs/Fractice/BmpToAvi. Most video editing applications can also import a bitmap sequence.
***under construction***
***under construction***
***under construction***
***under construction***
***under construction***
The server accepts the following command-line arguments:
Argument | Description | Comments |
---|---|---|
/help | display this help | |
/port number | use specified port number for TCP/UDP sockets | Useful for working around firewalls. Note that the server's port number must match the port number specified in the client's network settings, or connection attempts will fail. If not specified, the port number defaults to 35321. |
/noudp | don't launch UDP server to answer find broadcasts | Useful for working around firewalls. If combined with the /client argument, the server does not create any listening sockets, which is often what triggers the firewall. If this option is enabled, the client's finder will not find the server; the user must specify the server's hostname or IP address in the client. |
/hide | make server invisible by hiding its console window | This prevents users from accidentally killing the server by closing its window. To exit the server, use the client's Servers dialog, or kill the server's process in the Task Manager. |
/client address | connect to client at specified IP address or hostname | Useful if you want to connect over the Internet, but the server isn't visible to the outside world; so long as the client is visible, the server can connect to the client. Note that the client's Listen for servers option must be enabled. Also useful for working around firewalls; see /noudp argument above. |
/bind address | bind server to specified IP address | Allows you to specify the server's IP address, instead of letting sockets assign an address. Useful on a multi-homed host, i.e. a host with more than one network interface and IP address. On a laptop with both a wireless and a wired connection, use this option to control which connection the server uses. |
/threads count | create specified number of rendering threads | The thread count defaults to the number of CPUs reported by Windows. This is typically optimal, but reducing the thread count could potentially improve performance on a Hyper-Threading processor. |
/fpu | use FPU instead of SSE2 for rendering math | SSE2 is normally optimal; for more information, see the client's Use SSE2 option. |
***under construction***
***under construction***
***under construction***
***under construction***
This option controls whether SSE2 instructions are used instead of FPU (Floating-Point Unit) instructions. SSE2 is normally significantly faster, so this option is enabled by default. SSE2 is currently implemented for the Mandelbrot set only, and only for the classic set, not the higher-exponent variants. Note that this option has no effect on deep zoom renders, which are handled differently.
This option allows you to disable the warning that normally appears whenever you attempt to close an unsaved document. The warning is enabled by default. Disabling it can be useful during development, but is otherwise not recommended.
***under construction***
This option allows you to set number of rendering threads. The thread count defaults to the number of CPUs reported by Windows. This is typically optimal, but reducing the thread count could potentially improve performance on a Hyper-Threading processor.
Note that in a distributed processing environment, this option only affects the client; to set the number of rendering threads for a server, use the server's /threads command-line argument.
This option allows you to set the number of undo levels. For unlimited undo, check Unlimited; otherwise, uncheck it, and enter the desired number of levels in the edit box. To disable undo, set the number of levels to zero. By default, undo is unlimited. Note that unlimited undo can consume a significant amount of memory over time.
***under construction***
This option affects zooming in/out via the Image menu or the view's context menu, as described under navigation. Each zoom scales the Z coordinate by the specified amount. Note that this option differs from Zoom tool step.
This option controls the rate of continuous zooming with the Zoom tool, as described under navigation. Each zoom scales the Z coordinate by the specified amount. Note that this option differs from Zoom step.
***under construction***
***under construction***
***under construction***
To print the current image, use File/Print or Ctrl+P. It's a good idea to preview the image first, via File/Print Preview, and adjust the printer settings if necessary, via File/Print Setup.
The current image is not re-rendered for the printer. The result depends on whether fit in window is enabled, as shown below:
Fit in Window | Alignment | Scaling |
---|---|---|
Yes | Centered | The image is scaled to fill the page as much as possible, without changing its aspect ratio. |
No | Upper-left corner | None. The image is printed at its actual size in pixels, and clipped if it doesn't fit on the page. |
Scaling up a low-resolution image to fill the page may result in a blocky printout. To avoid this, the recommended method is as follows:
- Turn "Fit to Window" OFF.
- Re-render the image with image size set to match the dimensions (in pixels) of the printable area of the page, i.e. taking the printer's margins into account.
- Use print preview to make sure the image fills the page without clipping. If it looks OK, print it; otherwise go back to step 2, adjusting the image size as needed.
Another option is to export a bitmap, and then use an external application such as Photoshop to print the bitmap. Try to avoid resizing the bitmap, as this may introduce unwanted artifacts. For large-format printers and/or extreme antialiasing factors, you should use the poster export to create the bitmap, otherwise you may run out of memory.
- | Zoom Out | Zoom out |
Ctrl+0 | Fit in Window | Fit the image in the window |
Ctrl+1 | 320 x 240 | Set image size to 320 x 240 |
Alt+1 | No Antialiasing | Set antialiasing to none |
Shift+1 | Draft Quality | Set quality to draft |
Ctrl+2 | 640 x 480 | Set image size to 640 x 480 |
Alt+2 | 2x Antialiasing | Set antialiasing to 2x |
Shift+2 | Normal Quality | Set quality to normal |
Ctrl+3 | 800 x 600 | Set image size to 800 x 600 |
Alt+3 | 3x Antialiasing | Set antialiasing to 3x |
Shift+3 | High Quality | Set quality to high |
Ctrl+4 | 1024 x 768 | Set image size to 1024 x 768 |
Alt+4 | 4x Antialiasing | Set antialiasing to 4x |
= | Zoom In | Zoom in |
Ctrl+A | Select All | Select the entire document |
Shift+B | Edit Bounds | Edit the bounding rectangle |
Ctrl+C | Copy | Copy the selection and put it on the Clipboard |
Shift+C | Edit Coordinates | Edit the coordinates |
Ctrl+E | Export | Export current image as a bitmap |
Shift+F | Toggle Files | Show or hide the files bar |
Ctrl+G | Toggle Grid | Show or hide the grid |
H | Hand Tool | Select the hand tool |
Shift+H | Toggle History | Show or hide the history bar |
Shift+I | Toggle MIDI Setup | Show or hide the MIDI setup dialog |
Shift+J | Job Control | Show or hide job control dialog |
Shift+L | Toggle Levels | Show or hide the levels bar |
M | Marquee Tool | Select the marquee tool |
Shift+M | Toggle Mixer | Show or hide the mixer |
Ctrl+N | New | Create a new document |
Shift+N | Invert Color | Invert color |
Ctrl+O | Open | Open an existing document |
Shift+O | Options | Edit the options |
Ctrl+P | Print the active document | |
Shift+P | Toggle Params | Show or hide the parameters bar |
Ctrl+R | Record | Record a movie |
Shift+R | Rotate Hue 60° | Rotate hues sixty degrees |
Ctrl+S | Save | Save the active document |
Shift+S | Toggle Servers | Show or hide the servers dialog |
Ctrl+V | Paste | Insert Clipboard contents |
Alt+Backspace | Undo | Undo the last action |
Delete | Delete | Delete the selection |
Shift+Delete | Cut | Cut the selection and put it on the Clipboard |
Esc | Cancel | Cancel the current render |
F1 | Help | List Help topics |
F11 | Full Screen | Show the image full-screen |
Ctrl+F11 | Toggle Exclusive | Toggle DirectDraw Exclusive mode |
F5 | Render | Render the current frame |
Shift+F5 | Slide Show | View a slide show of history |
F6 | Next Pane | Switch to the next window pane |
Shift+F6 | Previous Pane | Switch back to the previous window pane |
F7 | Toggle Palette | Show or hide the palette |
F8 | Toggle Color Mapping | Show or hide the color mapping dialog |
F9 | Toggle Color Cycling | Show or hide the color cycling dialog |
Shift+F9 | Cycle Colors | Toggle color cycling |
Ctrl+Insert | Copy | Copy the selection and put it on the Clipboard |
Shift+Insert | Paste | Insert Clipboard contents |
Ctrl+X | Cut | Cut the selection and put it on the Clipboard |
Ctrl+Y | Redo | Redo the previously undone action |
Z | Zoom Tool | Select the zoom tool |
Ctrl+Z | Undo | Undo the last action |