Documentation API and Downloads

Iteration depths for a 256x256 tile can be obtained through a simple HTTP API.

To request a tile simply make an http request like

http://mandelbrot.dwscript.net/api.dws?level-xxx-yyy.js

The first number is the level, the second the x coordinate in the level, the third is the y coordinate.

For instance 4-2-3.js will request a tile from level 4, at tile coordinates 2 and 3.

Valid coordinates for a a tile level go from 0 to 2^Level.

The response is a JSON array of the iteration depths on the smoothed Mandelbrot Set with the following convention:

  • If the array contains only one element, then the tile is a uniform one (all points in the tiles have the same iteration depth).
    You can use that to optimize rendering.
  • Otherwise the array will contain 65536 elements, as a top-down raster of iteration depths

Performance tips:

  • Make sure you perform the HTTP requests with a client that supports HTTP compression.
    Some tiles can be quite large otherwise, and you'll be limited by bandwidth.
  • Mirror the tiles on the Y axis in your client.
    While the server can do the mirroring for you, when exploring near the axis, if you mirror yourself you will cut bandwidth and memory requirements in half.

Tile databases are arranged by Level, with one SQLite 3 database per level.

Each database holds a single table named "maps" with the following fields:

  • id: tile ID, a 64bit integer with the X coordinate in the most significant 32bit portion,
    or "(X shl 32)+Y" or "(X << 32) | Y"
  • depth: the uniform depth of the tile if the tile is uniform, -1 otherwise.
  • data: a deflate-compressed JSON array of iteration depth, or NULL for a uniform tile.
  • maxdepth: the maximum iteration depth for the tile.

The JSON iteration depth array is a single 65536 values array of integer, corresponding to the raster of the 256x256 tile (top to down).

The databases with the raw Mandelbrot Set data are availed as bittorrent downloads.
If you find them useful, please help seed the files for a little while.

Refer to the Database documentation tab for details about how the tiles are stored.

  • Level 0 to 9 (283 MB) :
  • Level 10 (659 MB) :
  • Level 11 (2.2 GB) :
  • Level 12 (7.5 GB) :
  • Level 13 (25.6 GB) : available on request (mirrors wanted!).
The databases are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License, which in short means you can do whatever you want with them, provided you give appropariate credits, indicate if changes where being made and must distribute those changes under the same license.