Mineways

With the Mineways program you can select from a Minecraft world map and render it, or send it to a 3D printer or 3D printing service such as Shapeways. Here's a video playlist where in the first two minutes I install Mineways, export a model from our Minecraft world, preview the result, and then upload it to Shapeways. To see some results, let that video playlist play, or visit the Mineways Flickr group. I also have a (non-profit) Shapeways shop of some buildings I've exported and purchased, mostly for friends.

Download the latest version of Mineways (version 1.02, updated 12/31/2011) - Windows only, but it works on Linux under Wine (and I suspect also on the Mac - let me know).

Let me know of any bugs you find and features you'd like. You can also download a snapshot of the code. The program is open-source and is based on the (great) open-source program minutor written by Sean Kasun - his work gave me a huge headstart. Mineways is a superset of his mapper, with a model exporter and other features added.

Other links: Minecraft forum thread, reddit thread, our world's homepage.

L'Effie Tower. From left to right the images are: in Minecraft, selected in Mineways, previewed with the SAP Viewer Complete, delivered from Shapeways. Click on an image to enlarge it, here to download the model, here for a brief video clip of the result, and here to order from Shapeways (though, really, you should just make your own models!).

Super-fast quickstart: Download and unzip (using 7-Zip or other decompressor) to some directory, like the desktop. Double-click mineways.exe to run. Use "File | Open World" to select a world. Use the left mouse button to drag the map around, use the mousewheel to zoom. Use the right mouse button to select an area on the map and to adjust this rectangle. Optionally use the middle mouse button to select a depth. Export the model for rendering or 3D printing - just hit "OK" when presented all those options.

You can import OBJ (.obj) model files into Blender or other rendering packages. You can preview VRML (.wrl) 3D print files fairly well using the free SAP Visual Enterprise Viewer Complete - install and then double-click the .wrl file. Once you like the print file, zip the .wrl and .png files, then upload to Shapeways.

We'll run through each of these steps in detail. If you don't want to wade through it all, at least search on the phrase "Key tip", as these bits are particularly useful.

Installation

Installation is trivial, and there not much to add to: Download and unzip (using 7-Zip or other decompressor) to some directory, like the desktop. Double-click mineways.exe to run.

The one file you may want to change is the terrain.png file that comes with Mineways, which is from the Ancient Roots texture pack. Minecraft itself and all texture packs make their own terrain.png files. Put whatever terrain.png file you like into the directory where mineways.exe is located. Note: I do use the four tiles in the rightmost column, at the bottom, for water and lava (water, stationary water, lava, stationary lava). One warning: 128x128 and larger tile texture packs will work (and will take awhile to process), but previewing these files in an interactive viewer like the SAP Viewer Complete may not work. This is because DirectX and OpenGL has limitations on the maximum texture size. These texture files should display fine in offline renderers.

Expert detail about the PNG texture generated: the tiles are each given a border 1 pixel wide. This border avoids bilinear interpolation artifacts. However, mipmapping will not work well, since tiles are next to each other, so disable it for rendering (other sampling techniques should work fine).

Deletion: just delete the directory. If you created color schemes, there will be a few small entries in the registry: if you really want to clean it all, search for "Mineways" and you'll find them.

Mapping

Basic map use:

Color Schemes

Color schemes allows you to change the color for any block, and to also eliminate any blocks you want from view (e.g., remove grass, dirt, stone, sand, clay, and gravel and you'll see a lot of ore deposits). Add a new color scheme, then Edit it. Change the name "Color Scheme" at the top of the dialog that pops up, then select any block type to edit it. Color is given in hexadecimal color format. You can use MWSnap (old but free), FastStone Capture (new but costs $20), or other programs to find the hexadecimal (e.g. #787878) color value of any pixel on your screen. 'Alpha' says how opaque a block will appear on the screen, with 255 meaning fully opaque and 0 meaning fully transparent (invisible). Blocks with an alpha of 0 will be deleted when exporting. You can turn off export of all blocks by using the "Hide All Blocks" button. This feature allows you to create separate parts, e.g. a glass roof could be created by then turning on just glass export.

Shortcut keys

Most operations can be done with the mouse: left button and mousewheel for viewing, middle mouse button for setting the depth to whatever is at that location, right mouse selects a region to export - more on this in the Selection section.

Selecting a Region

To create a 3D file for viewing or printing you first select a 3D box in your world. Whatever is in this box is exported. Hold down the right mouse button and drag to define a selection area. Key tip: once a region is defined, you can use the right mouse button to select an edge or corner and drag to fine-tune the rectangle.

By default the heights used for the rectangular block are y=62 (sea level) to y=127. The altitude slider at the top of the window determines the maximum height, but usually you'll leave this one alone. You'll use it for selecting areas fully underground or in the Nether. The number keys 0-9 can be used to quickly shift the maximum height; the < and > keys shift the altitude by one.

The current lower depth of the selected volume is shown in the status window at the bottom of the screen as "Bottom". You can change this lower depth at any time, regardless of whether a volume has been selected. The lower depth can be changed in a number of ways. If you click the middle mouse button over a location, the lower depth is set to the height of that location. The [ and ] keys shift the lower depth by one, and so are invaluable for tuning.

Example: at first, the selected area does not include the terrain below. By clicking on terrain with the middle mouse button, the level is lowered. Clicking again on the unselected area, the lower depth is now set low enough to capture all terrain. Bright pink shows terrain exactly at the lower depth.

In the image on the left an area is selected but the lower depth is too high, so parts of the terrain are not selected. Adjusting the depth downwards selects this terrain.

Key tip: to see what you're doing, export the model and view with the SAP Viewer Complete or other tool. I am constantly adjusting the box size and export options, exporting, then reloading the file in the SAP viewer.

Exporting Models

Select "Export Model for Rendering" from the File menu, or use control-R, and save your file. The resulting file(s) can then be imported into a huge variety of 3D modelers and viewers, e.g. Blender. Alternately, you can select "Export Model for 3D Printing", control-P, to create a model suitable for sending to a 3D printer.

The big difference between rendering and printing is that 3D print models must be solid and well-formed. Currently Mineways treats all blocks as solid, full blocks: half-steps or stairs are treated as blocks, as is every other block. There is also no transparency for the materials, since printers do not currently support this type of creation. Models for rendering can, when full texturing is on, include billboard models for flowers, saplings, crops, and other elements. Note that the billboard locations are added in comments to the output .OBJ and .WRL files. In this way, a dedicated modeler could substitute his own elaborate grass, flower, or other models in place of the simple billboards Minecraft provides.

"My Model's Too Expensive!"

If you export to print and upload to Shapeways, you might be surprised to find that the price is sometimes just shy of a used car. This usually happens with larger models, those 100+ hour darlings you sweated over in Minecraft. The cause is that, by default, Mineways exports the model to print at a safe size. Colored sandstone has a thin wall dimension of 2 millimeters. This means if some wall in your model is less than 2 mm thick, it is in danger of breaking into pieces if printed in color. There are three basic solutions to the price problem:

Two asides: the SAP Viewer Complete has a wonderful feature: cross sectioning. You can slide a plane through your model and see the interior spaces. This can help you determine where to place your box for printing, where to build escape holes, etc. On the flip side, this viewer has a defect in its display of tree foliage when viewing render (but not 3D print) exports: from some angles you see through all the foliage. This is a problem with its lack of setting the alpha test properly.

SAP Viewer Complete: on the top, the wonderful cross-section viewer in action. Below, leaves look fine in the left view; on the right, leaf cutout problems.

By default, Wavefront OBJ *.obj (and *.mtl) files are exported for rendering, VRML97 (aka VRML2) for 3D printing. Here's the rundown of the various file types you can select, including some subtleties about each.

OBJ: Wavefront OBJ is an old format, so is commonly supported as an import format for a huge range of applications, including the free Blender package. If you export materials, a corresponding *.mtl file is output; if you export textures, a *.png is also created. The .obj and .mtl files are text files, so can be easily edited or processed further. Currently Shapeways does not read in color OBJ files, so any OBJ files zipped and uploaded will print only in a solid material. Use VRML97 to export color files for 3D printing.

OBJ, no material preview: A subtlety of OBJ is whether the material file should influence the texture file. Some viewers, like the SAP Viewer Complete, will multiply the texture by the material. By selecting "no material preview" for the OBJ file, a minimal material file is generated.

Binary STL: This file format is commonly used by 3D printers. It normally is used for single-color materials, but the exporter will used the VisCAM format to attach colors to triangles - see this article. When STL files, binary or ASCII text, are exported a corresponding *.txt file is generated with information about the model. This same data is included in the beginning of the *.obj and *.wrl files themselves.

ASCII text STL: A variant for 3D printers, the file generated is considerably larger than the binary form and cannot include color. The main advantage is that this file type is a simple text file and so can be easily edited. The format is trivial and so can provide a raw set of triangles for a model.

VRML97: Also known as VRML2 or VRML 2.0. While this format has been superceded by X3D, it is commonly supported by a wide range of packages. That said, its main reason for existence here is that it's the one file format that Shapeways uses for colored models. The *.wrl and *.png file created are put into a zip file and uploaded to Shapeways for printing - see more about this process below. The VRML file produced is tailored towards making a single texture for printing. When previewing, this is the best format to use with the free SAP Viewer Complete.

Export options

There is a bewildering dialog that pops up on export, with a ton of options. You can blithely ignore this option and always just click OK (or the Enter key). However, some of the options are extremely useful, so plow on if you want to make sure your model is strong enough and still cheap as can be.

World coordinates selection: you can see and change the 3D volume of space to export from your world. Key tip: You can view the output *.obj or *.wrl with a text editor, like Notepad (or, better yet, Notepad++). By doing so, you'll see a line like this:

# Selection location: -80, 72, 66 to -66, 127, 104
By putting these numbers in the 6 coordinate boxes, you can easily continue to work on a model between Mineways sessions. If you want to know the location of a place in your world, use the F3 key when playing Minecraft. Note that negative values like -5.239 will round down to -6, and also note that your Y-value altitude is one higher than where your feet are located, and so two higher than the ground beneath you.

Material export: these are pretty much as they say. The "no materials" option is just that. "Solid material colors" will give solid swatches of color for each material. "Richer color textures" gives texture tiles that have some noise in them. For the OBJ file format the difference is that a PNG texture file is output; VRML97 always exports a texture for any material option. "Full color textures patterns" requires the terrain.png file (look at the start of this page for more info), reading this file to create full textures for each block, as possible. Some blocks, such as fire, do not have any texture in the terrain.png image, so are rendered as solid blocks. Remember that for any format you can always turn off a block from being output by setting its alpha to zero in your own color scheme. For "full textures" the color scheme has no other effect, other than affecting the water color: the higher the alpha set, the more of the base color you define is combined with the water texture. So, for a deeper blue, you can define the two water colors (note there's a "stationary water") as dark blue or even black and a high alpha, e.g. 200.

Make Z the up direction instead of Y: some graphics applications consider the Y direction to be "up", some Z. If your model imports sideways into your application, check (or uncheck) this box.

Center model: when checked, the center of the bottom of the model is put at the origin, location (0,0,0). This can improve the floating-point resolution of the data. If you want to instead have the same coordinate values as in your world, uncheck this box.

Export all block types: by default smaller objects, such as flowers, signs, etc., are culled out when exporting solid materials - only nearly-block-sized or important blocks are exported. This option is on by default when exporting full color textures for rendering; turn it off to remove the "billboard" objects. Remember you can also turn off output of any block type by setting its alpha to zero in your own custom color scheme.

Merge flat blocks with neighbors: some blocks, like redstone wire, repeaters, snow, ladders, wall signs, etc., can be glued onto neighboring blocks, changing their faces. By default we do this; turning this option off (why?!) will generate full blocks for these objects. I haven't done much work on this option, as I never turn it off.

The rest of the options mostly have to do with 3D printing, which follows.

Exporting to 3D print

As background, view the Shapeways 3D color printing process video. Layers of material are laid down and solidified at the appropriate spots. Unsolidified "sand" is vacuumed away. You pay by volume, not by complexity. What this means to you is: avoid making enclosed spaces with tiny entrances. Unfortunately, most buildings are just that: large rooms with small doors. Your job is to make sure your model has either no openings at all, in which case the Hollow option can clear out the inside, leaving just a shell. Alternately, make escape holes yourself using snow blocks, which you then melt after all processing of your model. I'll explain these options below.

There are other potential pitfalls with 3D printing, such as thin wall problems (more here), and too many polygons (rare for a Minecraft model), to name just two. Shapeways' tutorial pages and materials pages give you a lot to chew on. The Mineways program tries to guide you past the major pitfalls, but it's always possible to generate something that's essentially unprintable: too weak, holes too small to clear out the dust, etc. Browsing the tutorials there should help you understand what is possible.

Options follow.

Rotate model clockwise: this is useful when you want to display a model on Shapeways. The view of the model is rendered by Shapeways from the south-south-east. So if your model faces west, you might rotate it 270 degrees to have it face south and so display better on your models page.

Scale: There are four major ways to scale your model.

Physical material: choosing a material here from among the more sensible Shapeways material options sets the default wall thickness and constrains the "Aim for a cost" option. It also ensures that the price is computed for that material and output in the top of the model file (or associated *.txt file, for STL output). It's worth saying again, key tip: view the top of the output model file for all sorts of useful information about the model and how you generated it. The "White & Flexible" material has a smaller minimum wall thickness compared to "Colored Sandstone" (0.7 mm vs. 2.0 mm), so much smaller (and cheaper) models can be created in it. Shapeways has a tutorial on how to paint this material, which can be fun in itself. Note that the ceramics material has a maximum wall thickness of 15 mm, something Mineways does not check; this material is also the only one where you are charged by surface area instead of volume.

By default, the model is heavily processed to clear up a number of potential 3D printing problems:

Fill air bubbles: any hollow area is filled with solid material (specifically, glass, which can sometimes be seen when doing base hollowing, below). There are two sub-options:

Connect parts sharing an edge: certain non-manifold edges (where two blocks are diagonal and share an edge) are eliminated by a welding process in which more blocks are added. This welding process normally occurs only when it joins pieces that otherwise would be separated and fall apart.

Example: on the far left, with all connect parts options off, the strings of the balloons do not connect. These will probably print as separate bits. In the middle left, blocks sharing an edge are connected. Some parts of the strings touch only at corner tips, so are still not connected. Note that for these examples the "delete floating objects" option was turned off, as otherwise the disconnected string bits would have been removed. On the middle right, corner tips are connected, and now each balloon will print correctly. On the far right, debug mode, showing edge connecting blocks as lava and tip connecting blocks as pink wool.

Delete floating objects: if objects hang in space, these are eliminated if they're small (less than 16 blocks in size) or are entirely tree logs and leaves. This step eliminates parts of trees hanging along the edge because of where the selection box is located. If you get a warning about there being more than one part in a model exported, crank the block number up to 1000 or more to get rid of larger chunks (once you know what those chunks are - see the debug display parts mode below).

Example: Exporting without deletion of floating objects results in a hunk of foliage hanging in space. The "debug showing groups" option shows the disconnected group (the black columns are support columns created when hollowing). Turning on deletion of floating objects, the floating foliage is deleted. Note the clump of leaves from a chopped-off tree stuck to the house is not deleted: get out the shears in Minecraft, if you want to chop it clear.

Hollow out the bottom: models are typically resting on an uneven ground layer, and building interiors are typically filled in. Hollowing clears out blocks inside the model, making it less expensive and faster to print (though weaker). The "super hollow" option is more aggressive, searching hollow areas found to see if more can be carved out. This option can occasionally make volumes that do not have wide enough holes to clear out the material; vanilla "hollow" alone is normally safe in this respect.

Example: in the upper left, hollowing is off and tunnels are not sealed. In the upper right, tunnels are sealed (the glass blocks). While this briefly increases the block count, hollowing will cut it considerably. In the lower left, basic hollowing is performed; the cutaway shows how far it penetrates into the teapot. Block count is reduced from 26.8k blocks to 14.7k blocks. Lower right, superhollowing is performed, reducing the count further, to 8.3k blocks. The escape hole between teapot and ground looks to be large enough to clear the sand (and indeed it was, see this photo).

Melt snow blocks: This one's subtle, for pros. Say you have a model of a fort on a mountaintop. You would like to have the mountain be hollowed out. You would also like the fort to have an escape hole in the floor for any unattached printing sand inside it to be cleared out. By replacing part of the floor (or other area) of the fort with snow blocks, these blocks will be removed at the very end of all processing. So, the hollow operation can then hollow out the mountain below the fort, right up to the fort's floor. Then the "melt snow" operation makes a hole between the fort's interior and the mountain, allowing sand to be vacuumed out.

There are also two debug print options available, both shown in examples above. The "show separate parts" option does just that: the largest object is made semi-transparent and smaller groups each given a unique color, so that you can see what pieces of the model are not connected. Either remove these smaller parts by kicking up the "delete floating objects" limit, or go into Minecraft itself and add blocks to attach them together. That said, separate parts are fine in a file if you know what you are doing: you could be making a chain of separate links, or could have a number of individual pieces (such as letters) you want to create in a single print run. Note: I've found this mode tends to crash the SAP Viewer Complete if you export to VRML97. Exporting to OBJ seems to display fine.

The "show welds" option shows what blocks were added by the various "connect parts" options. If you don't like where the welds are put, you can go into your Minecraft world and edit the model yourself. Key tip: you can run Mineways and play Minecraft at the same time. So, you can edit your world in Minecraft, then reload the world into Mineways. The selected area won't be cleared when you do so, so you can edit, reload, export, and view the model (in a separate viewer); lather, rinse, repeat. This is an efficient way to perfect any model you're working on.

Key tip, worth repeating: at the beginning of the model file itself (which is a text file, so can be viewed in any text editor) is a summary of various statistics, such as number of blocks generated, model dimensions, and cost (good to within a few cents).

Using Shapeways

If you want to make a 3D print of a model, the quick way is to use Shapeways' site (I'm game to list other services or hobbyist machines like MakerBot, if applicable - I don't get any money from Shapeways, they're just convenient). After creating an account (and creating a shop), go to the upload page. Choose a file for upload, always a .zip file containing (usually) a single .wrl and .png file you created with Mineways, using 3D print export. You can check the "Have us fix" box if you want, but it shouldn't be necessary. You also don't need to specify a Unit of Measure: "meters" is the default and is what Mineways always outputs.

Once you've uploaded, wait for an email (ten minutes wait at most) saying your model "is now available on Shapeways". Now go to your account menu (upper right of screen) and select "My Models" from the menu (or use this link). Key tip: you must select directly on the text itself in most Shapeways menus and other elements - selecting the box is not enough. This drove me insane before I realized that is how it works.

Once you're on the My Models page you should see a view of your model. Note the cute "cube" feature next to the model's image: click on it and you get a 3D model you can rotate with the mouse. To make the model purchaseable, click on the model itself to edit its page. In the upper right of this page is a subtle "Edit Page" button: it should say "ON". If "OFF", click on the button to toggle it on. Key tip: if you want to actually purchase your own model, turn editing "OFF" and then you can add the model to your cart. Don't forget to select the material type. Note that colored sandstone is often less expensive than the default white material! White models, as we've discussed earlier, can be considerably smaller and print correctly.

There are a bunch of things you can edit about your model. On the upper right click on "More" to display the model publically and make it available for purchase. Click on the model's name to change it (not obvious), click below the image to allow downloads of your model files, and below that to add a description. You can turn off any materials that you think would be too weak for the model, and you can add keywords at the bottom (include "Minecraft"!). There are also ways to change how the size and price are displayed. Once you've actually printed the model, you can upload photos of it. See my humble shop as an example.

That's it! You can add models to your cart and checkout. Note there's a fixed cost of $6.50 per order. Be careful, however: unlike Amazon, you cannot cancel your order once placed. After you've made an order, the waiting begins, often 2-3 weeks: check the orders page to see the expected ship date. If this ship date passes and your model is still just "Accepted", write Shapeways service and ask about it - they're friendly and helpful.

If you get serious about printing models, the materials sampler is worth considering: it costs just $5 to add to an order, factoring in the $25 coupon you receive with it towards your next order.

Related Resources

Here are some related (free) tools that are handy, collected in one spot:

Want something to try Mineways on? There are a number of sites with cool downloadable models and worlds, including:

You could get a copy of our world, Vokselia. I've also got a Shapeways shop, where you can view photos of different 3D prints and also download the model files themselves. You could also buy any of these (though you should just make your own!).

Doing this project is just for fun. For something amazing, check this out (more here)- meta! Double-meta, I exported this model using Mineways, check it out.

Other packages

I'm not the first to offer a Minecraft model exporter. Here are some others, they may fit your needs:

Known bugs

Find a bug? Send me an email and I'll consider it. Fix a bug? You're my personal hero, and send on the code.

Wishlist

This is my own wishlist; if you really want a feature, add it yourself! I'm busy writing a book in my spare time so don't have a lot of cycles to spare for this project.

Version History

That's it - have fun!


contact Eric Haines
Last updated 12/31/2011