🛠️
ezEdits Wiki
English
English
  • ezEdits Docs
  • Getting Started
    • Installing
    • Permissions
  • Palettes
    • Palettes Explained
    • Default Palettes
    • Palette Commands
  • Noise
    • Noise Explained
    • Noise Commands
  • Masks & Patterns
    • Masks
    • Patterns
  • Brushes & Tools
    • Brushes
      • Palette Shift Brush
      • Palette Gradient Brushes
      • Placement Brushes
    • Superwand
  • Commands
    • Deformation
    • Flowfields
    • Noisegen
    • Region
    • Placement
      • Available Structures
      • Primary+Secondary Alignment
      • Placement Parameters
      • Scatter Parameters
      • Array Parameters
    • Selections
    • Shapes
    • Smoothing
    • Spline
      • Common Parameters
      • 2D Spline Shapes
      • 3D Spline Shapes
      • Advanced Spline Shapes
    • Stained Glass
    • Surface
    • Survival
    • Texturing
Powered by GitBook
On this page
  • Radius progression: <radii>
  • Kochanek-Bartels-Parameters: -p <kbParameters>
  • Quality: -q <quality> (v0.13.0 or newer)
  • Quality: -q <quality> (v0.12.0 or lower)
  • Initial roll: -r <startRoll> or -r <startRoll>,<endRoll>
  • Stretch: -s <stretchFactor>
  • Twist: -t <angle>
  • Normal Mode: -n <normalMode>
  • End Style: -e <endMode>
  • Ingame help page: -h
  1. Commands
  2. Spline

Common Parameters

PreviousSplineNext2D Spline Shapes

Last updated 25 days ago

The following parameters and flags are available for all //ezspline subcommands.


Radius progression: <radii>

Defines the thickness (course) of the spline.

Acceptable values are: one or more comma-separated entries, where each entry is either:

  1. A radius value (e.g., 10, 6.9). Radius values must be greater than 0.

  2. A position and radius, separated by a colon, where the position is a decimal between 0 and 1 (e.g., 0:10, 0.5:15.5).

Whereby if specified, each position must be strictly ascending, and the first and last entries must be positions of 0 and 1. If positions are omitted, they will be set and interpolated automatically.

For example

  • 0.5:10,2 is illegal because the first entry, which is always position 0.0, has been specified as position "0.5"

  • 5,0.6:10,15,0.4:20,5 is illegal because the positions are not in strictly ascending order since 0.4 came after 0.6.

Examples

//ezsp rope clay`` <radii>

Single radius entry: GIF going from //ezsp rope clay`` 5 through up to //ezsp rope clay`` 10 :

Two radii entries: //ezsp rope clay`` 1,12 . The spline starts with radius 1 and progressively gets thicker up to radius 12 at the end:

Triple radii entries: //ezsp rope clay`` 1,12,1. The spline starts with radius 1, and progressively gets larger up until the middle of the spline (50% of the path) where it reaches 12 and goes back to radius 1 towards the end:

As the first and last values always define the start- and end-radius of the spline and as all unspecified positions in between are interpolated, that means 1,12,1 (no positions specified) is expanded to 0:1,0.5:12,1:1 when you execute the command. You may also specify the positions yourself though.

Using the command //ezsp rope clay`` 1,0.1:12,1, and going from 1,0.1:12,1 up through 1,0.9:12,1. This shifts the "keyframe position" of our radius-12-entry throughout the spline (start and end are still fixed at radius 1):

Many radii entries: //ezsp rope clay 2,10,2,12,2,10,2. You may define any number of entries and their respective positions:


Kochanek-Bartels-Parameters: -p <kbParameters>

Parameters for the flow of the spline. Determines what path the spline takes through the given node positions.

Defaults to 0:0:0.

Provide <tension>:<bias>:<continuity>, colon-separated in that order. The expected value range for each parameter is [-1..1].

(Note: the order in the diagram (c,t,b) is different than what ezspline expects (t,b,c).)

Examples:

//ezsp polygon clay 10 4`` -p <kbParameters>

-p 0:0:0

-p 0:-1:0

-p -1:0:0

-p 0:1:0


Quality: -q <quality> (v0.13.0 or newer)

Determines how accurately the spline shape should be generated, trading between accuracy and runtime.

There are four modes:

  1. FAST (~1.5x faster than balanced)

  2. BALANCED

  3. HIGH (~3x slower than balanced)

  4. EXACT (even slower...)

Defaults to BALANCED (which produces an almost perfect result relatively quickly).

Examples (for v0.13.0 or newer)

//ezspline rope clay 10`` -q <quality>


Quality: -q <quality> (v0.12.0 or lower)

Sets the number of samples of the shape per dimension per block. Must be greater than 0.

Defaults to 2.0 (which produces a mediocre result relatively quickly).

If you get air gaps, or a noise-y / unsmoothed appearance, set the quality to a higher value, e.g. -q 5.0.

Higher values for the -q parameter can significantly increase processing time. While small values (e.g., -q 2) are relatively quick, larger values (e.g., -q 10) may take minutes. Additionally, the benefit of increasing the -q value diminishes beyond a certain point. We suggest using 2 while testing parameters and rendering with 4-6 for the final placement.

Examples (for v0.12.0 or older)

//ezspline beads clay 10`` -q <quality>

GIF start at -q 1 and moves up to -q 7.

For this example, -q 2 took less than a second, and -q 7 took 20 seconds to run.


Initial roll: -r <startRoll> or -r <startRoll>,<endRoll>

Allows to rotate the spline shape around the spline's axis, aka. rolling it. Expecting an angle given in degrees.

Defaults to 0.

There are two ways to twist/roll your spline:

  • You may define a starting roll angle with -r and a twisting angle with -t, allowing for a constant twist per length.

  • Or may define a starting roll angle and an end roll angle by passing two comma-separated angles to -r. If you do that, -t will be ignored.

Example

//ezspline 2d Re(Y1:-0.2,Y2:0.2) clay 10`` -r <angle>

GIF start at -q 0 and moves up to -q 180.


Stretch: -s <stretchFactor>

Allows stretching or compressing the spline shape in the direction of the spline path.

Defaults to 1.

Note: //ezspline structure's and //ezspline expressions's -z flag overrides this flag. If -z is on, then -s does nothing.

Example:

//ezsp 3d Chainlink clay 10`` -s <stretchFactor>

GIF starts at -s 0.2, briefly pauses at -s 1, and increases up to -s 4.


Twist: -t <angle>

Defines how much to twist the shape along the spline. The input is an angle given in degrees.

Defaults to 0. (Except for //ezsp rope, there it's 90)

Specifics: The angle determines how much the shape is rotated throughout the length of the current diameter of the spline. Meaning, that if the diameter is 30 blocks, then after 30 blocks of path length, the shape will have rotated by the given angle.

This parameter is ignored if you pass both a starting and an end angle to -r.

Example:

//ezsp 2d Polygon(S:4) clay 10`` -t <angle>

GIF starts at -t 0 and increases up to -t 90.


Normal Mode: -n <normalMode>

There are three modes:

  1. CONSISTENT aims to appear smooth and consistent by "rolling" the spline shape in curves.

  2. HORIZONTAL prevents the spline shape from "rolling sideways", keeping its initial orientation.

  3. UPRIGHT makes the internal spline shape's y-axis with the world's y-axis.

The default is CONSISTENT.

Examples:

//ezspline expression black,red,blue,white,yellow 5 -o`` -n <normalMode> ``((z%2)>1.5?5:2*(x>0)+(y>0))+0.001

-n CONSISTENT: The default value. The spline curves around the path in a smooth fashion. Towards the end, a noticeable amount of rolling has accumulated since. (At the start white+red is the top surface, while towards the end white+blue is at the top -> the spline "rolled").

-n HORIZONTAL: The spline tries to align the originally upwards-facing surface to remain upwards, preventing itself from "rolling sideways". You can see that by the fact the white+red face is facing upwards throughout the entire spline.

-n UPRIGHT: The internal y-axis is always aligned with the world's y-axis instead of being perpendicular to the path. Notice how the yellow stripes are not perpendicular but perfectly vertical now.

Another more dramatic example (same command, different path):

-n CONSISTENT

-n HORIZONTAL: Spline is forced to twist itself at steep/vertical sections to remain horizontal. (Here, it always tries to put the white+red surface at the top).

-n UPRIGHT: As you'd expect, when the spline's y-axis is perfectly vertical, then it does not like steep/vertical path sections...


End Style: -e <endMode>

Set how the two ends of the spline should look like.

There are five modes:

  1. FLAT The spline ends abruptly at the exact endpoint of the path.

  2. SOFT The spline ends softly shape Cuts into the spline, tapering off the end in a softened end.

  3. SPIKE The spline ends with a cone that extends beyond the endpoint of the path.

  4. ROUND The spline ends with a dome that extends beyond the endpoint of the path.

  5. CUBE The spline ends in a cube shape beyond the endpoint of the path.

The default is FLAT.

Example

//ezsp rope ice 15 6`` -e <endMode>

The redstone block line shows the used convex selection.

//ezsp 2d square ice 15`` -e <endMode>


Ingame help page: -h

Prints the in-game help page. Shortcut for //help ezspline ...


shows what each parameter does.

-q BALANCED

-q FAST

v0.13.0 introduced a significantly better and faster spline algorithm. This is only relevant for people who still use ezEdits version 0.12.0 or older. See for newer version behaviour.

-e FLAT

-e SOFT \

-e SPIKE \

-e ROUND \

-e CUBE

-e FLAT

-e SOFT

-e SPIKE

-e ROUND

-e CUBE

This diagram
above