Introduction
An M3P file holds the parameters of one image in Mandelbulb 3D, a Windows program for drawing
three-dimensional fractals: the image size, the view, the lighting and the hybrid of up to six
formulas. It does not hold the image, which is in the program’s .m3i files. The file has no
signature and is not compressed, whatever the program’s readme says: it is the program’s parameter
record written out as it lies in memory, with fields in little-endian order and no padding. The
first field, MandId, is the version of the record, and the record has changed shape over
the program’s life, so there are six layouts, told apart by the size of the file and by
MandId.
All 154 files examined (120 different ones) have the current layout, 1,976 bytes and
MandId 20 to 44, and they are read completely: every field is named. The other five layouts are
read from the program’s source (thargor6/mb3d, under the GNU LGPL 2.1) and tested on files built to
the layout, because no real file of them was available.
The extension .m3p may be used by other programs; no other use could be established from
the files on this machine or the program’s source. This site takes a file as Mandelbulb 3D parameters by
parsing it: a size that one of the layouts has, a MandId that fits it, a plausible image size
and, where the layout has one, a hybrid block that starts as the layout says.
A .m3p file dropped on any page of this site opens in the explorer, which shows the
whole record as a tree, the formulas of the hybrid, the lights and a palette of every colour in it.
Variations
| Format | Variation | About | Open |
|---|---|---|---|
.M3P | Mandelbulb 3D parameters, MandId 20 and later | Mandelbulb 3D parameters: a 1,976-byte record, every field named. | Open |
.M3P | Mandelbulb 3D parameters, MandId 20 and later with the old hybrid block | Current main header with the old hybrid block: 1,856 bytes (read from the source; no file seen). | Open |
.M3P | Mandelbulb 3D parameters, MandId 8 to 19 | Record of MandId 8 to 19: 704 bytes, with the old hybrid block from 16 (read from the source; no file seen). | Open |
.M3P | Mandelbulb 3D parameters, MandId 7 | Record of MandId 7: 580 bytes with four lights (read from the source; no file seen). | Open |
.M3P | Mandelbulb 3D parameters, MandId 4 to 6 | Record of MandId 4 to 6: 272 bytes (read from the source; no file seen). | Open |
.M3P | Mandelbulb 3D parameters, MandId 0 to 3 | The oldest record: 200 bytes, MandId 0 to 3 (read from the source; no file seen). | Open |
How to tell them apart: the size of the file, then MandId in the first four bytes.
| Size | MandId | Layout |
|---|---|---|
| 200 | 0 to 3 | MandId 0 to 3 |
| 272 | 4 to 6 | MandId 4 to 6 |
| 580 | 7 | MandId 7 |
| 704 or 1,720 | 8 to 19 | MandId 8 to 19 (1,720 from MandId 16, with the old hybrid block) |
| 1,856 | 20 to 250 | MandId 20 and later with the old hybrid block |
| 1,976 | 20 to 250 (20 to 44 seen) | MandId 20 and later |
00000000 14 00 00 00 40 06 00 00 FD 05 00 00 3C 00 00 00 MandId 20, 1600, 1533, 60
MandId 20 and later
The current record: 840 bytes of main header (view, rendering settings, the 408-byte lighting block) and 1,136 bytes of hybrid block, six formula slots of 188 bytes. This is the layout of every real file seen; the program writes MandId 44.
MandId 20 and later with the old hybrid block
The same main header with the older hybrid block of 1,016 bytes, which the program recognises by a first byte outside 16 to 99. 1,856 bytes. Not seen in a real file.
MandId 8 to 19
A 704-byte header with a 272-byte lighting block, and from MandId 16 the old hybrid block after it (1,720 bytes). Not seen in a real file.
MandId 7
A 580-byte record: the same header with a 148-byte lighting block holding four lights. Not seen in a real file.
MandId 4 to 6
A 272-byte record with the lighting, field of view, shadow and cutting settings. Not seen in a real file.
MandId 0 to 3
The oldest record, 200 bytes: the image size, the view and the lighting. Not seen in a real file.
Not described
What this page and the explorer leave out or only infer, across the six layouts.
- Reference: only the current layout (1,976 bytes, MandId 20 to 44) was checked on real files. The five older layouts are read from the program’s source and no real file of them was available, so their reference is unchecked.
- Reference: the program’s conversions of older records to the current one (what it does with each old field) are not described, and the source does not say which program versions wrote the 1,856-byte layout.
- Reference: several fields have only a terse meaning in the source; see the page for the current layout for the list.
- Viewer: older layouts are shown only as built test files show them; there is no conversion between layouts. The preview image of a render (in
.m3ifiles) is not part of this format and is not read.
Links
Software
- Mandelbulb 3D – the Windows program that writes and reads these files (Windows)
Developers
- thargor6/mb3d – the program’s Delphi source under the GNU LGPL 2.1, with the record declarations and the loader (Delphi)
Reference
- M3F file format – the formula files that the hybrid slots name
- Mandelbulb – Wikipedia’s article on the fractal the program is named for