Curve Designer

Generate Curve

Generates a straight line along the X axis. Use t start/end below to set its length.

Uses t start/end below as the sweep angle in radians (0 to 1.5708 = quarter turn).

Uses the steps field below for surface resolution.

Uses the steps field below for resolution along each rod.

Manual Edit

Left-click a grid cell or existing block to add a block.
Right-click a block to remove it.
Drag with either button to orbit the camera.

Layer Preview

Save / Load

How to use Curve Designer

The grid

The dark plane is a 100×100 unit grid. Each cell is one 1×1×1 block. Drag with either mouse button to orbit the camera around the scene; scroll to zoom.

Manual Edit

Left-click an empty grid cell, or the face of an existing block, to add a new block there. Right-click an existing block to remove it. A translucent preview block shows where the next left-click would place a block. Dragging (moving the mouse more than a few pixels between press and release) orbits the camera instead of placing or removing a block, so accidental placement while rotating the view is avoided.

Block color

The color swatch under Manual Edit sets the color used for the next block placed, whether by Generate or by clicking directly — change it before generating or clicking to use a different color.

Layer Preview

Use this to inspect your design one slice at a time without deleting anything. Set Layer Y and choose a mode: Full Preview shows every block as normal; All Above hides any block with a Y coordinate below the layer value; All Below hides any block with a Y coordinate above it. This only changes what is visible — hidden blocks are still part of the design and reappear when you switch back to Full Preview.

Save / Load

Saved designs are stored in your browser's local storage (not on a server, and not shared between browsers/devices). Type a name and click Save to store the current blocks; pick a name from the dropdown and click Load to restore it, or Delete to remove it permanently.

Export as Minecraft NBT downloads the current blocks as a vanilla structure-block (.nbt) file you can load in Minecraft Java Edition with a structure block. Each block's color is matched to the closest of the 16 wool colors, since Minecraft blocks don't support arbitrary RGB colors. Coordinates are shifted so the lowest corner of your design sits at the structure's origin. This requires a browser with gzip compression support (Chrome, Edge, Firefox, and Safari all qualify).

Curve Parameters

Pick a curve type below for a full explanation of its parameters. Generated blocks are added to whatever is already in the scene — they are not cleared automatically. Click Clear All to start over.

The Hollow (shell only) checkbox affects every Generate click: when checked, after generating it removes any block whose all 6 neighbors (up/down/north/south/east/west) are also occupied blocks, leaving only the outer shell. This applies to the whole scene at generate time, not just newly added blocks, so it can also hollow out previously placed or generated blocks on the next Generate. Useful for shapes built with thickness, like solid rounded corners or thick tubes, to save blocks and material.

A spiral that circles the Y axis at a fixed radius while climbing steadily, like a spring or a spiral staircase.

  • radius — distance from the Y axis to the spiral.
  • height scale — how far the spiral rises in Y for each unit increase of t. Larger values produce a steeper, more stretched-out spiral.
  • thickness — solid radius of the tube around the spiral's centerline. 0 (default) gives a 1-voxel-thin curve; higher values make a thicker solid spring.
  • t start / t end — the range of the sweep parameter t, in radians. Each 2π (≈6.283) of range is one full turn around the axis.
  • steps — how many sample points are taken across the t range. More steps give a smoother spiral; too few will look blocky or skip turns.

A spiral that circles the X axis at a fixed radius while advancing steadily along X, like a horizontal corkscrew lying on its side.

  • radius — distance from the X axis to the spiral.
  • length scale — how far the spiral advances along X for each unit increase of t. Larger values produce a steeper, more stretched-out spiral.
  • thickness — solid radius of the tube around the spiral's centerline. 0 (default) gives a 1-voxel-thin curve; higher values make a thicker solid spring.
  • t start / t end — the range of the sweep parameter t, in radians. Each 2π (≈6.283) of range is one full turn around the axis.
  • steps — how many sample points are taken across the t range. More steps give a smoother spiral; too few will look blocky or skip turns.

A wave that travels along the X axis while oscillating up and down in Y.

  • amplitude — the peak height of the wave above and below zero.
  • frequency — how rapidly the wave oscillates as t increases. Higher values pack in more wiggles over the same t range.
  • thickness — solid radius of the tube around the wave's centerline. 0 (default) gives a 1-voxel-thin curve; higher values make a thicker solid wave.
  • t start / t end — the range of X values the wave is drawn across.
  • steps — how many sample points are taken across the t range. More steps give a smoother wave.

A straight segment along the X axis.

  • radius — solid radius of the line. 0 (default) gives a 1-voxel-thin line; higher values make a thicker solid rod.
  • t start / t end — the X coordinates the line starts and ends at.
  • steps — how many sample points are placed along the line. Since a straight line never skips an integer X value, a low step count is usually fine.

Write your own parametric formulas for x, y, and z as functions of t. Useful for shapes the built-in presets don't cover.

  • x(t), y(t), z(t) — JavaScript-like expressions evaluated for each sample of t. Available without a prefix: sin, cos, tan, sqrt, abs, pow, PI, floor, ceil, min, max, exp, log, random. Example: sin(t)*5.
  • t start / t end — the range of t passed into your formulas.
  • steps — how many sample points are taken across the t range. More steps give a smoother result, especially for fast-changing formulas.

A quarter-circle arc that rounds a single straight edge of a box, in one plane.

  • radius — how far the arc sits from the sharp corner point — controls how rounded the edge looks.
  • plane — which two axes the arc is swept across (XZ is horizontal, XY and YZ are vertical).
  • center x / y / z — the coordinates of the sharp corner point being rounded. The arc is offset from this point by the radius along the plane's two axes.
  • t start / t end — the sweep angle in radians. A full quarter turn is 0 to 1.5708 (π/2); this is filled in automatically when you select this tab.
  • steps — how many sample points are taken across the sweep. More steps give a smoother arc.

Generate one arc per edge of your box, positioning each with center x/y/z, then connect them with straight Lines or manual blocks to build a fully rounded box.

A curved spherical-octant patch that rounds one corner point of a box in all three dimensions at once, like rounding the corner of a cube into a ball-shaped notch.

  • radius — how far the curved surface sits from the sharp corner point — controls how rounded the corner looks.
  • center x / y / z — the coordinates of the sharp corner point being rounded.
  • octant x / y / z sign — which side of the corner, along each axis, the curve bulges toward. Together the three signs pick one of the 8 octants around the corner point.
  • steps — surface resolution. The patch is generated as a steps×steps grid of points; higher values give a smoother, more solid-looking surface but generate more blocks.

This curve type does not use t start/end — the sweep always covers a full quarter turn in both directions to produce one octant.

A 3D corner bracket: three straight rods extending from one corner point along X, Y, and Z. Right at the corner the rods are fattened into a smooth rounded joint; moving away from the corner, that extra rounding fades out until each rod is a plain straight thickness. Use this to build rounded picture-frame-style corners instead of a solid filled corner.

  • edge length — how long each of the 3 rods extends from the corner point.
  • rod thickness — the solid radius of each rod once you're past the fade distance — the plain straight part. 0 gives a 1-voxel-thin rod.
  • tip bulge — extra radius added on top of rod thickness right at the corner (distance 0), making the joint where all 3 rods meet look smoothly rounded instead of sharp.
  • fade distance — how far from the corner point the tip bulge fades away to nothing, blending into the plain rod thickness.
  • easing — the shape of that fade. Linear fades evenly; Ease In keeps the bulge close to full size longer before dropping off near the fade distance; Ease Out drops the bulge quickly near the corner then tapers gently the rest of the way.
  • center x / y / z — the coordinates of the shared corner point the 3 rods extend from.
  • rod x / y / z sign — which direction (+ or −) each rod extends along its axis.
  • steps — how many sample points are taken along each rod's length. More steps give a smoother taper.