Minecraft Dome

Before I start, please note that there's no save/restore/undo in this version of MinecraftDome. If it gets slow, hit the "Calculating …" button in the "Generation parameters" thingy. This will put it into "idle" mode. Press the button again to resume calculating. "Reset" also stops calculations and will also zero the calculated heights. This is handy if things start zipping off into infinity.

MinecraftDome seems to work ok for me in Firefox 54.0.1 on a 6-year-old MacBook Pro. YMMV.

Defining the surface and its supports

Ok. First, use the "surface layer" area to create a surface layer. Just fill in a circle (for a dome) or a rectangle or something. Click and drag to set/delete squares. Note that ths can be clunky if you have the calculations ticking over while you do it.

Make sure your surface is all connected. The calculations are done using a square mesh, so by "connected" I mean the squares need to share a face - diagonals don't count.

There is a monumentally clunky set of controlls for drawing rectangles and ellipses - hit the hide/show drawing controls button. it's pretty self-explanatory, except for the "ellipse power" field. This allows you to draw diamonds and hyperellipses. 1 gives a diamond, 2 gives an ellipse, and 2.4 gives a nice hyperellipse. Infinity will give you a rectangle, but there is a separate button for that.

Next, create an anchor layer. In that anchor layer, anchor down at least one block of the surface by clicking it. Typically you'd do more than this. For instance, to create a dome you'd anchor down the circumference of your surface. To make an arch, you'd create a longish rectangular surface and anchor down the two ends.

You can manipulate the y positions of the anchor blocks by fooling about with the values of the red/green/blue anchors. All anchors in a given layer will be treated as laying on the plane defined by those points. This allows you to - for instance - create a colonade with a given elevation at each end.

Fooling about with the dome generation parameters

In the generation parmeters section is a button that says "Idle" or "Calculating". Frob it to turn calculations on/off. There's also a reset button, to kill things and put them back to zero.

You would nomally use this app to generate the roof of a structure. That is, the floor of your awesome house will probably be two or three blocks below your defined anchor points, with nice quartz columns where those anchor points are. So keep that in mind when judging whether or not the shape looks too flat or too high.

Parabolic load

The "parabolic" value applies a constant load across the surface and adjusts the surface to bear that load. In consequence, the surface will adopt a nice parabolic shape constrained by your anchor points. Larger values give a steeper parabola. This is a suitable shape for a roof bearing rock.

Catenary load

The "catenary" value applies a load across the surface based on the area of the surface and adjusts the surface to bear that load. In consequence, the surface will adopt a catenary shape - the shape of a self-supporting structure. Negative values will create shapes that "hang" from their anchor points under thier own weight.

Catenary shapes tend to give a flatter dome than parabolic, with sides that are steeper.

The catenary calculations can tend to zip off to infinity, unfortunately, so keep that mouse over the "reset" button.

Roof load

A roof load allows you to set a roof height, applying a load across the surface proportional to how close the surface is to that height. I belive this also produces a catenary shape (hyperbolic cosine). Odd but cool things are likely to happen if you put some anchors above this height and some below it. Negative values for load are likely to send the roof off to infinity.

Math nerd alert: At one limit (infinite load), the dome tends to adopt a post-and-lintel shape. This is the shape of cosh(x) for very large x. At the other limit (infinitessimal load, infinite height), the dome tends to adopt a parabolic shape. This is the shape of cosh(x) in the region around zero.

No load

If both values are zero, then you'll get a soap-bubble effect. I think what happens is that the engine computes a minimal surface. Of course, if all your anchor points are in one layer and therefore coplanar, you'll wind up with something flat.

Display Options

Next, have a look at what's in the awesome greenish 3-d window. Your anchor points are red octahedra.

There are some buttons to move the view around a bit. Click and hold. If the action gets choppy, turn off the "calculating" thing. Yeah, I could implement some mouse-draggy action, but I didn't. The buttons are all you get.

There are some display options. The "Ideal blocks" checkbox turns on some semitransparent cubes centered at exactly the computed grid points.

The "lines" checkbox turns on a yellow grid.

But you are interested in the "minecraft" checkbox. Turn it on to see cubes placed in columns defining the shape. "Join faces" means that adjacent cubes must connect on a face, as opposed to it being ok to connect on a diagonal.

Generating some stuff you can print out and use as a plan for building the actual shape in-game

When you have the shape you want, or something vaguely like what you want, hit the "generate construction plans" button. This will open a new window and produce a set of plans in fixed-width plain text that you can copy/paste or print.

Lines are drawn every 16 blocksfor the X and Z axwes, and every 8 for the Y axis. This should allow you to line up what you are doing with the chunk boundaries in game - use F3-something to see those boundaries. Use the offset controls to offset the generated chuink boundary lines.

· Empty space
A Anchor block
An empty space that has a block above it. Can help you line things up, and a fine place for a torch.
A block
An empty space that has a block below it. Can help you line things up, and also a fine place for a torch.

Sending me some money

If you use and enjoy this tool, or even if you just use it, consider dropping a buck or two into my paypal pmurray@bigpond.com. Two bucks will be fine. Why not drop in even more if you want to use this tool a lot? You know, if you drop ten or twenty bucks into my paypal, you could use this thing for years and years before being overcome with wracking pangs of guilt!

If you wish to email me about this, you can send it to that address pmurray@bigpond.com. However, I get a metric tonne of spam. Please put "MinecraftDome" in the subject.

Repo is at GitHub. If you fork, kindly attribute me.

Creative Commons License Minecraft Dome by Paul Murray is licensed under a Creative Commons Attribution 4.0 International License.