FRACTEST!

Error message

  • Deprecated function: TYPO3\PharStreamWrapper\Manager::initialize(): Implicitly marking parameter $resolver as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 19 of /var/web/www.fiforms.net/includes/file.phar.inc).
  • Deprecated function: TYPO3\PharStreamWrapper\Manager::initialize(): Implicitly marking parameter $collection as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 19 of /var/web/www.fiforms.net/includes/file.phar.inc).
  • Deprecated function: TYPO3\PharStreamWrapper\Manager::__construct(): Implicitly marking parameter $resolver as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 19 of /var/web/www.fiforms.net/includes/file.phar.inc).
  • Deprecated function: TYPO3\PharStreamWrapper\Manager::__construct(): Implicitly marking parameter $collection as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 19 of /var/web/www.fiforms.net/includes/file.phar.inc).
  • Deprecated function: session_set_save_handler(): Providing individual callbacks instead of an object implementing SessionHandlerInterface is deprecated in drupal_session_initialize() (line 242 of /var/web/www.fiforms.net/includes/session.inc).
  • Deprecated function: SelectQueryInterface::getArguments(): Implicitly marking parameter $queryPlaceholder as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 3542 of /var/web/www.fiforms.net/includes/bootstrap.inc).
  • Deprecated function: SelectQueryInterface::preExecute(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 3542 of /var/web/www.fiforms.net/includes/bootstrap.inc).
  • Deprecated function: SelectQueryExtender::getArguments(): Implicitly marking parameter $queryPlaceholder as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 3542 of /var/web/www.fiforms.net/includes/bootstrap.inc).
  • Deprecated function: SelectQueryExtender::preExecute(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 3542 of /var/web/www.fiforms.net/includes/bootstrap.inc).
  • Deprecated function: SelectQuery::getArguments(): Implicitly marking parameter $queryPlaceholder as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 3542 of /var/web/www.fiforms.net/includes/bootstrap.inc).
  • Deprecated function: SelectQuery::preExecute(): Implicitly marking parameter $query as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 3542 of /var/web/www.fiforms.net/includes/bootstrap.inc).
  • Deprecated function: DrupalEntityControllerInterface::resetCache(): Implicitly marking parameter $ids as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 3542 of /var/web/www.fiforms.net/includes/bootstrap.inc).
  • Deprecated function: DrupalDefaultEntityController::resetCache(): Implicitly marking parameter $ids as nullable is deprecated, the explicit nullable type must be used instead in include_once() (line 3542 of /var/web/www.fiforms.net/includes/bootstrap.inc).
  • Deprecated function: entity_metadata_system_get_properties(): Optional parameter $data declared before required parameter $name is implicitly treated as a required parameter in require_once() (line 342 of /var/web/www.fiforms.net/includes/module.inc).
  • Deprecated function: entity_metadata_system_get_page_properties(): Optional parameter $data declared before required parameter $name is implicitly treated as a required parameter in require_once() (line 342 of /var/web/www.fiforms.net/includes/module.inc).
  • Deprecated function: entity_metadata_file_access(): Optional parameter $file declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of /var/web/www.fiforms.net/includes/module.inc).
  • Deprecated function: entity_metadata_file_access(): Optional parameter $account declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of /var/web/www.fiforms.net/includes/module.inc).
  • Deprecated function: entity_metadata_field_access_callback(): Optional parameter $entity declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of /var/web/www.fiforms.net/includes/module.inc).
  • Deprecated function: entity_metadata_field_access_callback(): Optional parameter $account declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of /var/web/www.fiforms.net/includes/module.inc).
  • Deprecated function: entity_metadata_create_object(): Optional parameter $values declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of /var/web/www.fiforms.net/includes/module.inc).
  • Deprecated function: entity_metadata_view_single(): Optional parameter $view_mode declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of /var/web/www.fiforms.net/includes/module.inc).
  • Deprecated function: entity_metadata_view_single(): Optional parameter $langcode declared before required parameter $entity_type is implicitly treated as a required parameter in require_once() (line 342 of /var/web/www.fiforms.net/includes/module.inc).


Some of my earliest fascinations in computer programming was inspired by a family friend, who had written several programs to generate fascinating fractal images. The idea that you could create an image with infinite resolution and infinite detail fascinated me, and I determined that, when I learned enough about programming, I would write my own fractal generator. The fall of 1997, right after my family and I moved to Kentucky, I had the opportunity. I found several library books about fractals, including a picture book full of fractal images. In the back of the book, the author described in very simple language the concepts of imaginary numbers, and the process used to create the Mandelbrot and Julia Set fractals.

With my limited knowledge of mathematics and computer programming, I was able to write a program in Turbo Pascal that produced the same images. It's hard to describe the thrill of watching those first fractals slowly appear, line by line, in response to the simple code I had written.

My first fractal program was called FRACTEST, simply because I was "testing" the code to see if it would create a fractal. (Remember DOS 8.3 filenames?) The name stuck even as the program evolved and I added a mouse user-interface for zooming, an export-to-bitmap feature (which required studying and implementing the Windows Bitmap file format), and other features to bring the program to it's final state by 1998.

Download the original FRACTEST Dos program with source code

My FRACTEST fractal generator was, to me, the most fascinating program I ever wrote in DOS. I spent quite a bit of time on it, and learned a lot. Recently, I re-wrote the entire program in Javascript and HTML5, including re-implementing the old (flawed) formulas and colormaps, as well as new ones.

Try the new FRACTEST! Online

You can also clone the Fractest! on GitHub and add your own formulas and colors! If you make some nice formulas, please email me (fiforms [at] gmail [dot] com) or submit a pull request on GitHub.

Here are a few fascinating fractal images to whet your appetite. Click each image to explore!

Original Source Code Samples: