Mineways
With the free Mineways program you can interactively select a model from a Minecraft world map and have a 3D printing service make a real model for you. Or send it to your own 3D printer, or just enjoy rendering it. Some results, so far, all in the $10 to $65 price range from Shapeways - click on an image to see the full series:
Stuff:
- Download the latest Windows version of Mineways (version 1.10, updated 1/18/2012) - Windows, but it works on Linux and the Mac under Wine - see link below (and I suspect it also works on the Mac using a virtual machine like VirtualBox - let me know).
- Download the source code (C/C++).
- Minecraft forum thread - this is where I announce important update information, so subscribe to the thread if you're a serious user.
- 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. The playlist guide is here. Tutorials:
- Mineways Flickr group. Best photo so far: this one (not made in Mineways, but it could have been).
- Other discussions: reddit thread, and a related reddit thread; Blender thread; hypegage to fish for new stuff.
- My modest (non-profit) Shapeways shop shows some buildings I've exported and purchased, mostly for friends. You can look at photos, check prices, and download the models themselves.
- Our world's homepage
|
Subscribe to Mineways - for just important announcements, like new version releases
|
Visit this group
|
Let me know of any bugs you find and features you'd like. 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. I wrote this program just for fun, I'm not associated with Shapeways or Mojang. There are other print services that work with Mineways, such as i.materialise and Ponoko, as well as home 3D printers, such as RepRaps and Thing-O-Matics (wiki).
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, here for more photos of the real thing, 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 both 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 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.
Uninstall: 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.
Basic map use:
- Load a Minecraft world map with File | Open World. Only worlds where you have the file are available (e.g. single player, or worlds you've downloaded).
- Scroll around by dragging with the left mouse button, WASD keys, or arrow keys.
- Zoom in on an area by the mouse scroll wheel, Page Up/Page Down keys, or Q/E keys.
- Mouse over a block and look at the bottom of the screen to see its location and ID. (Note that a coordinate like "-76" means "-75 to -76"; "4" means "4 to 5"). "Y" is the height.
- Use the slider at the top of the window to slice away all blocks above the given altitude.
- Search the menu for other interesting options. The "hide obscured" option removes all blocks above the first air found in caves, making it easier to see the caves themselves. This option is turned on when first viewing the Nether. The "give me more memory" option allocates more space for the map; else, if you increase the size of the map window to near-full screen, you'll find performance dies.
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.
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.
- WASD and the arrow keys move around.
- E/Q and PageUp/PageDn zoom in/out one level.
- Home and End zoom all the way in and out.
-
- < and > move the altitude slider up and down.
- 0-9 move the altitude slider larger amounts.
- B sets the export lower depth to whatever the slider is at. Use the slider to go to the altitude desired, then push the 'B' key.
- [/] moves the lower depth up/down by one level.
- Ctrl-O opens a world file, for when the world file is in some non-standard place.
- Ctrl-T saves a 3D model file for rendering, e.g., water is made transparent.
- Ctrl-R saves a 3D model file for rendering, e.g., water is made transparent.
- Ctrl-P saves a 3D model file for printing at Shapeways or other 3D printer.
- F2 jumps to spawn.
- F3 jumps to player's location.
- F4 jumps to selected area, if any.
- F5 goes to Nether, if any.
- F6 goes to The End, if any.
- F7 shows all blocks on the map, such as flowers, mushrooms, ladders; off by default, as these can be distracting. This option does not affect exported models.
- L show nighttime lighting. This option does not affect exported models.
- C shows underground caves below the given altitude.
- H hides obscured blocks. When you set a maximum altitude underground, this option discards all blocks at this altitude and lower, until an air pocket is hit. Try it with the slider set to 60 or lower, to see tunnels. On by default in the Nether.
- F shades by altitude. This option does not affect exported models.
- I shows slime spawning areas underground, from level 40 on down (you can use the altitude slider to see these more clearly).
- Ctrl-W closes the program.
- ? pops up the About dialog.
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 usually work by adjusting the box size and export options in Mineways, export, then reload the file in the SAP viewer to see the results.
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.
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. For example, this model of our spawn area is 15 x 9.8 inches in size (about 190 x 125 blocks, 2 mm wide), and costs $633.14. Expensive models happen because either the model is too small, or too large. The problem with small models is that each block itself is massive. If you scale a small model to a large height, the blocks themselves become larger and you have to pay for each block's volume. Mineways can't help you much there, you'll need to use a CAD program to hollow out your object manually. Shapeways has a tutorial on hollowing.
The other problem you may run up against is the blocks are not small enough.
This 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 some solutions to the price problem:
- Switch to the white and flexible physical material. Choose this material in the options dialog on export and the thin wall minimum drops to 0.7 mm. This brings the price (and size) of your model down, from about $6.00 per thousand blocks to $0.48 per thousand. You do lose color printout, of course, but can paint the model yourself. Your model should print safely.
- Print it smaller and cross your fingers. Change "Make each block 2 mm high" to "Make each block 1 mm high", for example. If you don't have any tree trunks (which at 1 mm will snap right off), thin walls, or other filigree, the model should be fine. You can remove trees from your model by using a color scheme that makes leaves and logs invisible. See this video, which shows how to make glass blocks invisible; just do the same with logs and leaves. At worst, at 1 mm other little bits might break off. Companion cubes will print with no problems, models of insects with thin little legs or feelers are less likely to survive. Keep going smaller until you like the price, or simpler yet, just choose the scaling option "Aim for a cost of $25.00" or whatever you want. Note that Shapeways itself might refuse to print your model if they believe some parts are too thin to support the structure; here's an example where Shapeways decided the support struts were not thick enough.
- Learn more about the options below. Proper use of "fill bubbles" and "super-hollow" can easily combine to reduce your costs by 2/3rds. "Seal off entrances" and "Fill in isolated tunnels" can also help. These options are extremely useful for going to a smaller scale but still having thick enough walls. The strategy I like is to have the interior of the building get filled with blocks by using "fill bubbles" and then have "super-hollow" remove most of these blocks, leaving a shell that's thick enough to print.
- Buy/make your own 3D printer. A pretty extreme solution, but the cost of material goes down considerably (no multicolor printing, though, unless you want to lay out $77,000 for a ZPrinter 650). Here's a nice 3D printer comparison page - RepRap wins on cost, $520 for the mechanical parts.
By the way, I hear "it would be cheaper using LEGOs" a fair bit. LEGO blocks cost around 4-5 cents a block, 2 mm colored sandstone 3D printed blocks run about 6/10th of a cent. There are advantages to LEGOs (larger, reusable, fun to make) and disadvantages (no textures, not perfect cubes), but LEGO cost is not an advantage.
Model check: 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, how well hollowing is working, 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 from it not setting alpha testing properly; use G3D instead if you want to preview for rendering (it also loads faster).
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 either the Materialise Magics or 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.
This section covers the basics on importing Mineways files into various renderers. I know little about particular renderers, so rely on you guys out there to inform me. I'd love information on 3DS MAX, Maya, Blender, Octane, etc. That said, if you want better geometry and other features, you should try out mc2obj; Mineways' focus is on 3D printing more than rendering. While I have your ear, you should also check out OptiFine for in-game play: it has lots of cool rendering options.
Previewing: to quickly check results before importing into a rendering program, consider using an interactive previewer. The SAP Viewer Complete is a good previewer for 3D print models, but not so fantastic for viewing models made for rendering. I recommend the G3D viewer when using full color textures. It does not have cross-sectioning and supports only OBJ files, but has much better transparency support and shadows, loads much faster, and has screenshot and video capture built in (note: the viewer32.exe is the one that supports video capture). Unzip and double-click the register.bat file to associate it with OBJ files (or just do this manually, if you prefer). Here's an example, side to side, of this set of sampler files, which show one of (almost) every block in Minecraft.
On the left, SAP Viewer Complete showing the VRML (WRL) printing file; on the right, G3D on the OBJ rendering file:
|
|
Cinema 4D
Here are steps from James Christien (icecruiser xD; example C4D result here), with help from Huskiee on alpha.
Step 1: Get your world and region selected in Mineways, then select 'Export Model for 3D Rendering'.
Step 2: Save as the file type 'VRML'.
Step 3: Adjust your option accordingly:
- Tick the 'Export full color texture patterns' button.
- Make the model 1000 CM in height so it's not super tiny in Cinema4D (optional)
Do everything else to your liking.
Step 4: Once the model is exported, open Cinema4D and drag into the main window the 2 files (.png and .wrl) generated.
Step 5: Once it is all loaded, if black ugly things are present on tiles - such as grass or torches - then double-click the material in the materials viewer. The materials viewer is the round sphere with materials on it, at the bottom of the interface.
Step 6: On the material options, on the left side options bar, check the Alpha option and go into its preferences window by clicking it after you checked it.
Step 7: In the alpha settings, come down to the Texture setting and click on the little arrow on the right, go down the menu and select Bitmaps, and choose the material name (there should only be one) in the small window that pops up after clicking Bitmaps.
Step 8: All the black things should be gone, ready to be used and rendered properly.
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.
Create a ZIP: like it says, on export a ZIP file of the exported files is created, ready for upload for 3d printing at Shapeways or other service. Note that the exported files themselves are also still immediately available for previewing.
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.
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. If you unzip a texture pack, you'll see the terrain.png inside. To select a different terrain.png file, use the "Select terrain.png for export" under the File menu. If you have a terrain.png file you would always like to use by default, copy it into the directory where mineways.exe is located, replacing the one that is there.
Note to terrain.png experts: 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.
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). If you cannot disable bilinear interpolation in your renderer and want a more blocky look, take your terrain.png file and resize it to be say 4x larger in both directions; alternately, resize the texture(s) that Mineways exports. Make sure you just use a "pixel resize" without any filtering, e.g. in IrfanView use "Resize (faster)". Download this example and put this one in place of the terrain.png in your Mineways program directory to see the difference. This higher resolution may improve the clarity of 3D texture printing - we're not sure at this point.
On the left, the basic 256x256 terrain.png file is used; on the right, the input terrain.png image is resized (without filtering) to 1024x1024.
|
|
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 helps for import into a renderer, and 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.
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. For 3D printing, Mineways assumes the units are meters. If you want centimeters, as some home printers use, you currently have to multiply the values input by 100. For example, if you want to print 1 millimeter wide blocks, you have to put 100 millimeters instead. A units option will be added soon.
- Height: you can specify how high you would like a model to be. This is also useful for rendering output, where the default is set to be reasonable for import into Blender.
- Minimize size: if you want to make "draft" 3D print models that are as small as safely possible, check this option. That said, if you know your model has pretty thick walls, you could make your model smaller still by using the next option.
- Block size: by default the safe wall size (for a non-supporting wall) is shown here. You can make this value smaller if you are convinced that your model is thick enough to print. Mineways will issue a warning nonetheless. This option is also useful for rendering output.
- Aim for a cost: you can aim, though the wall size needed may be too small to safely print. If you get this warning, you'll have to decide whether the walls appear thick enough to print. This feature is imperfect: it computes a rough cost before hollowing, so that it has a sense of how small it has to make the blocks to reach the goal. Hollowing uses this size to keep the walls thick enough to print. So, sometimes the walls are thicker than needed when the model is finally exported.
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 in a text editor 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. White & flexible is plastic and pretty durable, colored sandstone is heavier, fairly strong, but brittle. 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.
Model's units: when a model is saved, the values stored are not in any particular units, like meters or inches. However, 3D printers need this scale for printing the model. Meters are assumed, as this is what Shapeways uses by default. For other services and printers, other units are assumed. Here's a brief rundown:
- i.materialise - for this 3D print service, millimeters are the default units. For STL export, choose the "Binary Materialise Magics" STL file type; by default "Z is up" is off and the units are millimeters. Textured models are not currently supported, but colored models are, by exporting color to STL and choosing the multicolor material in their 3D print lab. If you want to import VRML for some reason, "Z is up" should be on and you'll have to change the export scale to millimeters.
- Ponoko - this 3D print service uses centimeters, millimeters, and inches. "Z is up" should be on. Color materials are not supported, from what I can tell.
- RepRap - this home 3D printer appears to need models in centimeters. I'm not sure if this is more of a requirement of the related software.
- Thing-O-Matic (wiki) - I don't know a thing about this one; information appreciated!
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:
- Seal off entrances: uses "entrance" blocks - doors, ladders, trapdoors - to seal off rooms, even if the doors and ladders themselves are culled. Sealed rooms can then be removed from printing.
- Fill in isolated tunnels: a volume being exported can have tunnels underground running through it, and can run into the sides of the volume itself. These tunnels cost time and money to print; if the tunnel is isolated (no access to the surface) then this option will seal these off and fill them in. Hollowing can then remove more material.
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.
- Connect corner tips: if two blocks touch at just their tips and the blocks are found to be in separate parts, they are then welded together by adding two new blocks.
- Weld all shared edges: Shapeways normally allows two blocks' edges to touch, despite information to the contrary. If this behavior is unacceptable (Shapeways or some other application rejects the model), checking this box will work to remove all shared edges.
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.
Technical note: superhollow can sometimes create little separate objects at the bottom layer unconnected to the rest of the model, pieces of tunnel not cleaned out. You'll need to also turn on the "fill in isolated tunnels" box to have these removed ("delete floating objects" should do this, but currently does not).
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).
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. MAKE SURE TO INCLUDE THE .PNG FILE. 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. Key tip: - to change the default material to colored sandstone, hover over the colored sandstone material in the list. You'll see "make default" appear in blue at the bottom of the material's box. Select it, then "select only the default material" at the top of the list of materials. Make sure to click "Update Materials & Pricing" at the bottom of the list of materials.
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.
Here are some related (free) tools that are handy, collected in one spot:
- The SAP Viewer Complete for viewing exported models for 3d printing. Get the complete version, not the minimum. This viewer has a cross-sectioning tool and many other features and is good for 3d print model examination. However, it loads slowly and its preview of OBJ models for rendering shows artifacts, so you might prefer the next viewer.
- The G3D viewer is excellent for previewing 3D OBJ files for rendering (sorry, not VRML or STL), as its support for cutouts is superior to the SAP Viewer. It also includes real-time shadows and reflection-mapped water, as well as built-in screen and movie capture (only the viewer32.exe version has video capture). Some examples here.
- The VisCAM View is good for viewing and checking STL files.
- MeshLab helps you convert, simplify, and smooth meshes, among a huge number of other operations.
- Blender for rendering OBJ files. You'll probably want to turn off the "Export all block types" option, as Blender doesn't work well with the grass, flower, and torch cutout models Mineways exports (anyone know a renderer that does? It shouldn't be hard: just respect the alpha value of the texture).
- MCEdit lets you make large-scale changes on your world. For example, you could trim away objects near your model to make a cleaner export. You can also read in model schematic files from sites such as this.
- WorldEdit is a Bukkit plugin to export multiplayer world data to a .schematic file, which you can then put in an empty world on your computer and exported from there.
- VoxelSniper is another Bukkit addon for servers, providing a wide range of editing abilities.
- Binvox goes the other direction, letting you turn a model file into a voxelized representation, suitable for building or export to a schematic file. I have a quick-start Binvox package for Windows: binvox, viewvox, GLUT DLL, two sample 3D models, and batch files to run the programs. Documentation here. For more info, see the forum thread and related forum thread, and album. I used it to make the teapot, guardian, and hopper, among other models.
- Eihort is a fantastic 3D viewer for your world. You can zoom through, see a huge distance, and get coordinates for wherever you are. It's slightly outdated and buggy right now, but a new version is in the works.
- More Minecraft tools here.
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!).
For something amazing, check this out (more here)- meta! Double-meta, I exported this model using Mineways, check it out.
I'm not the first to offer a Minecraft model exporter. Here are some others, they may fit your needs:
- MINECRAFT.print() - these guys were first to print Minecraft models. You run some python scripts from a command line to take a volume and turn it into an STL file. There's a hollowing function (their Companion Cube is not solid, thank heavens). These guys are adding a friendlier user interface soon. Cody pointed out this nice little color export someone did using their scripts.
- Minecraft structure planner - written in Ruby, this is a basic exporter of STL files from schematics. It's the first program I know to export color models from Minecraft for 3D printing.
- MineToys and the MineCon Shop (French) offer 3D prints of your character. More on how MineToys works here.
- mcobj is an exporter for rendering, with source available. There is a Blender tutorial and a gallery of results. It has command-line and dialog versions. It doesn't apply textures, so check out...
- mc2obj (source here) - this utility pulls in the specified Minecraft world data and makes an OBJ file. With its focus on rendering, it is considerably farther along than Mineways, namely, it includes true geometry vs. Mineways' whole block orientation. In my perfect world Mineways' user interface and extra features (e.g., good redstone connection, textures with borders) would be merged with mc2obj to make a friendly and full-featured exporter for rendering.
- Mineblend - an add-on that extracts data from a world directly into Blender.
- Mineposter.com - you can upload your world and have them make a poster of a view of the whole thing or a particular portion of it.
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.
- Wide character names not supported: if you have characters like ÅåÄäÖö in your file path name, Mineways is likely to fail - sorry, Swedes. This is a bug with the original minutor. When I tried to fix it, I ran into the problem of ZLIB not appearing to support wide character file names. You are my nemesis, ZLIB! In the meantime, I've put in a warning and workaround (rename the file and paths).
- West is at the top of the screen. This is how things were until version 1.8, at which point Notch made old East into the new North. PITA to fix, but I'll probably eventually get around to it.
- Superhollow can sometimes create little separate objects at the bottom layer unconnected to the rest of the model, caused by internal tunnels. "Delete floating objects" currently does not remove these. The workaround is to use "fill in isolated tunnels".
- Sometimes the selected area is not cleared from the screen itself. This will happen when you select, scroll to a new place, select, then scroll back. Easy to fix: just switch lighting on and off, hit 'L' and 'L' again.
- ZLIB: for some weird reason I need to link to two different versions of the ZLIB library. It's some problem with name mangling, but I don't know what. Things work fine, but this is dumb. Help appreciated!
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.
- Blocks are always full blocks: stairs and half-blocks could be given true geometry instead of appearing as blocks, doors and vines given thin slabs instead of full blocks, etc. The Mineways data structures focus on sharing vertices by tagging which corners need to be output. Adding new geometry is all special cases. This addition would be fairly easy for rendering, I suspect, but for 3D printing care would be needed so that the new block shapes matched up with their neighbors and formed a clean surface. Shapeways itself might be able to clean up the model, so maybe less care is needed overall. That said, I'd rather it be done right, so that other 3D print efforts can easily use the models without cleanup. Note that mc2obj has true geometry output for rendering (not printing). One idea I've toyed with: double the resolution of all blocks, then track the slab and stair blocks, filling in the appropriate subblocks in the 2x2x2 representation. Use the subblocks for output of these special blocks and their neighbors. Headaches include stitching up neighbor faces to avoid cracking (T-vertices).
- Integration with Shapeways' API and i.materialise API (not out yet): Mineways could save each user a few minutes by directly uploading the resulting model files to Shapeways or i.materialise. While manually zipping and uploading is not a big deal, it's a bit of a pain to set the default material, add "Minecraft" as a keyword, etc. These APIs would set all this information for the user, as is done by MineToys, 3DTin, and TinkerCAD.
- Schematic file import: some players store their creations in schematic files. You can use MCEdit to import a schematic into an empty world and save that world, then use Mineways on that world. It would be nicer if the schematic file could just be read in directly and selected for export.
- Work on Mac and Linux: my code is very much a Windows beast. There's some old minutor platform-independent code (colorschemes.c, mapviewer.c, Mineways.c) in the topmost source directory, but I haven't touched it. If someone wanted to make a Qt version of this code, great. That said, Mineways works on Linux under Wine (and I suspect on the Mac).
- Better color selection: this is a weakness with the original minutor. Yes, you have to put in hexadecimal numbers for the color and the alpha.
- Version 1.0, 12/24/2011 - exe, source
- Version 1.01, 12/27/2011 - exe, source - fixed depth going to -1, added warnings about models being too large, increased map cache size, improved model summary information at top of model file.
- Version 1.02, 12/30/2011 - exe, source - added "hide all blocks" feature to color scheme dialog, fixed debug mode for separate parts so that it works properly if full textures are on (the textures get turned off) and so blocks always appear, don't export billboard torch if "Export all block types" is off.
- Version 1.03, 1/2/2012 - exe, source - Added check to see if world reads properly, warns if not; added snowy sides to grass blocks when covered with snow; changed to "illum 4" for Wavefront OBJ export.
- Version 1.04, 1/2/2012 - exe, source - Rendering gets some love: using "illum 4" kills Blender import, so back to "illum 2" for all but water, add "Tf" and remove "d" export; export "map_d" of the same texture map, making SAP Viewer work better with OBJ; change face offsets to be relative numbers instead of absolutes, so OBJ files can be added to each other.
- Version 1.05, 1/4/2012 - exe, source - Added two options: F7 makes little things like flowers and mushrooms visible on the map, and under File is "Select terrain.png for export", so a different terrain.png file can be used. Do not set the transmittance when using full textures for glass (assumes a cutout for glass). Other little menu cleanups, like what key selects the menu item.
- Version 1.06, 1/8/2012 - exe, source - Major bug fixes: bubble population problem, group allocation, proper display of different neighboring transparent objects, sloped powered rails not displaying properly for printing, mushrooms not displaying as billboards for rendering. Added units selection for output. Added automatic ZIP creation for export. Separated cutouts from transparent blocks. Corrected export of Tf for OBJ material file. Added separation of textures into RGB and RGBA and alpha-only for better rendering import to 3DS MAX. Added "frosted detail" physical material.
- Version 1.07, 1/9/2012 - exe, source - If blocks were turned off and "seal off entrances" was used, some of the hidden blocks would reappear; fixed, and guard code added. If a warning was flagged, a ZIP file is not created; changed so that the zip file is always created.
- Version 1.08, 1/10/2012 - exe, source - Files zipped before errors reported, output only those textures needed (and RGB for 3D printing instead of RGBA). Added fire billboard (your terrain.png must include it). Added dead bush and fern billboards.
- Version 1.09, 1/11/2012 - exe, source - Bug fix: was saving VRML PNG twice. Features: added Materialise Magics as a color STL export format, defaulting to the settings i.materialise prefers. All STL now defaults to mm units, as this seems to be a common choice.
- Version 1.10, 1/18/2012 - Bug fix: default texture output not set for printing single-material OBJ. Fixed terrain.png read error message. Features: added emitter Ke output for emitters, though currently always '0 0 0'; this makes for easy identification and editing of emitters. Added internally a static, absoluteIndices, to allow positive indices to be output for OBJ files.
That's it - have fun!
contact Eric Haines (homepage)
Last updated 1/18/2012