3D Spline Shapes
Last updated
Last updated
This page covers the //ezspline 3d
subcommand which feature 3D spline shapes embedded along the spline path.
//ezspline 3d
<shape>
<pattern>
<radii>
[-s <stretch>]
[-t <angle>]
[-p <kbParameters>]
[-q <quality>]
[-n <normalMode>]
[-h]
<shape>
: Choose one from the list below.
<pattern>
: Specifies the block(s) the spline is made out of, e.g. clay
.
The remaining arguments are outlined on the Common Parameters subpage.
<shape>
s//ezspline 3d
Beads (Be)
//ezsp 3d Beads
<pattern>
<radii>
[-s <stretch>]
[-t <angle>]
[-p <kbParameters>]
[-q <quality>]
[-n <normalMode>]
[-h]
Generates a beads-shaped spline along the selected positions.
Beads shape has no parameters.
Example:
//ezsp 3d
Beads
clay 10
This shape can also be achieved with the Rings shape using the following set of parameters: Rings(E:0,T:1,G:0,M:2,N:2)
//ezspline 3d
Cubes (Cu)
//ezsp 3d Cubes([
Gap:<value>
])
<pattern>
<radii>
[-s <stretch>]
[-t <angle>]
[-p <kbParameters>]
[-q <quality>]
[-n <normalMode>]
[-h]
Generates a chainlink-shaped spline along the selected positions.
[
Gap:<value>
]
(G
) (Default: 0.5):
Sets the gap between cubes
(!
) We provide an interactive 3D plot to play around with all parameters: https://www.desmos.com/3d/xbmia9wiwo
Examples:
//ezsp 3d
Cubes
clay 7
Default gap is 0.5
//ezsp 3d
Cubes(Gap:0.0)
clay 7
//ezsp 3d
Cubes(Gap:1.0)
clay 7
//ezsp 3d
Cu(G:2.0)
clay 7
//ezspline 3d
Chainlink (Ch)
//ezsp 3d Chainlink([
Extrusion:<value>
],[
Thickness:<value>
],[
Gap:<value>
],[
MajorExponent:<value>
],[
MinorExponent:<value>
],[
Place:<value>
])
<pattern>
<radii>
[-s <stretch>]
[-t <angle>]
[-p <kbParameters>]
[-q <quality>]
[-n <normalMode>]
[-h]
Generates a highly customisable chainlink-shaped spline along the selected positions.
[
Extrusion:<value>
]
(E
) (Default: 0.2):
The amount to length to add for each individual link along the chain.
[
Thickness:<value>
]
(T
) (Default: 1.0):
The inner/minor radius of each link.
[
Gap:<value>
]
(G
) (Default: 0.0):
Amount to offset each link by, adjusting the overlap of the links in the chain.
[
MajorExponent:<value>
]
(M
) (Default: 3.0):
The exponent defining the outer shape of an individual chain link.
[
MinorExponent:<value>
]
(N
) (Default: 3.0):
The exponent defining the shape of the cross-section of an individual chain link.
[
Place:<value>
]
(P
) (Default: "BOTH"):
Choose between "FIRST", "SECOND", or "BOTH" to place only half of the chain links or both.
(!
) We provide an interactive 3D plot to play around with all parameters (it's very neat): https://www.desmos.com/3d/yvrsv605mf
Examples:
//ezsp 3d
Chainlink
clay 10
//ezsp 3d
Chainlink(M:99,N:99,Extrusion:0.6)
clay 10
M:99
is responsible for making the chains appear rectangular (instead of elliptical).
N:99
is responsible for making the square chain link's cross-section square-shaped.
//ezsp 3d
Chainlink(M:1,N:1,E:0.7,G:-0.2,T:1.2)
clay 11
//ezsp 3d
Chainlink(M:2,N:2,E:0,G:1)
clay 11
//ezspline 3d
Chainlink(P:FIRST)
red_terracotta
10
//ezspline 3d
Chainlink(P:SECOND)
blue_wool
10
//ezspline 3d
Fishnet (Fi)
//ezsp 3d Fishnet([
Spacing:<value>
],[
Depth:<value>
],[
Width:<value>
])
<pattern>
<radii>
[-s <stretch>]
[-t <angle>]
[-p <kbParameters>]
[-q <quality>]
[-n <normalMode>]
[-h]
Generates a fishnet-shaped spline along the selected positions.
[
Spacing:<value>
]
(S
) (Default: 1.0):
The distance between the strings of the net.
[
Depth:<value>
]
(D
) (Default: 0.2):
The depth of each string within the net. How much it protrudes towards the center of the spline.
[
Width:<value>
]
(W
) (Default: 0.2):
The width of each string.
(!
) We provide an interactive 3D plot to play around with all parameters (it's very neat): https://www.desmos.com/3d/eww8fzzyuj
Examples:
//ezspline 3d
Fishnet
clay 10
//ezsp 3d
Fishnet(Spacing:2.0)
clay 10
//ezsp 3d
Fishnet(S:2.0,Depth:1.0,Width:0.3)
clay 10
//ezsp 3d
Fi(S:2.0,D:0.5,W:0.5)
clay 10
//ezspline 3d
Oscillate (Os)
//ezsp 3d Oscillate([
Depth:<value>
],[
Interval:<value>
])
<pattern>
<radii>
[-s <stretch>]
[-t <angle>]
[-p <kbParameters>]
[-q <quality>]
[-n <normalMode>]
[-h]
Generates a spline with an oscillating thickness along the selected positions.
[
Depth:<value>
]
(D
) (Default: 0.2):
Specifies how many blocks deep the ridges cut into the surface of the spline.
[
Interval:<value>
]
(I
) (Default: 0.5):
Specifies the distance between each ridge.
(!
) We provide an interactive 3D plot to play around with all parameters: https://www.desmos.com/3d/xilpdwcnom
Examples:
//ezspline 3d
Oscillate
clay 10
Uses default values Depth:0.2
and Interval:0.5
//ezsp 3d
Oscillate(Depth:0.6)
clay 10
//ezsp 3d
Oscillate(Depth:0.6,Interval:1.5)
clay 10
//ezsp 3d
Oscillate(Depth:0.2,Interval:1.5)
clay 10
Can be abbreviated to Os(D:0.2,I:1.5)
//ezspline 3d
Rings (Ri)
//ezsp Rings([
Extrusion:<value>
],[
Thickness:<value>
],[
Gap:<value>
],[
MajorExponent:<value>
],[
MinorExponent:<value>
])
<pattern>
<radii>
[-s <stretch>]
[-t <angle>]
[-p <kbParameters>]
[-q <quality>]
[-n <normalMode>]
[-h]
Generates a highly customisable spline of repeating rings/cubes/spheres along the spline path.
[
Extrusion:<value>
]
(E
) (Default: 0.2):
The amount to length to add for each individual link along the chain.
[
Thickness:<value>
]
(T
) (Default: 0.15):
Thickness of each ring. Smaller values lead to a larger hole in the middle. 1.0 results in a (super-)sphere.
[
Gap:<value>
]
(G
) (Default: 0.0):
Relative gap size between each torus. 0 means there is no gap, all toruses come right after another. 1 means the distance is exactly the size of one torus. Negative values result in overlapping.
[
MajorExponent:<value>
]
(M
) (Default: 2.0):
The exponent defining the outer shape of an individual torus.
[
MinorExponent:<value>
]
(N
) (Default: 2.0):
The exponent defining the shape of the cross-section of an individual torus.
(!
) We provide an interactive 3D plot to play around with all parameters (it's very neat): https://www.desmos.com/3d/eukcghnohc
//ezspline 3d
Scales (Sc)
//ezsp Scales([
Scale:<value>
],[
HorizontalOffset:<value>
],[
VerticalOffset:<value>
],[
MajorExponent:<value>
],[
MinorExponent:<value>
],[
Angle:<value>
],[
DepthMultiplier:<value>
])
<pattern>
<radii>
[-s <stretch>]
[-t <angle>]
[-p <kbParameters>]
[-q <quality>]
[-n <normalMode>]
[-h]
Generates a highly customisable spline with a scales-like three-dimensional texture on it.
Columns
(C
). (Default: 8):
Sets how many tiles should fit per "layer".
HorizontalOffset
(H
). Default: 1.05):
Determines how far apart each tile is sideways.
VerticalOffset
(V
). (Default: 1.2):
Determines how far apart each tile is along the spline path direction.
MajorExponent
(M
). (Default: 1.4):
The exponent defining the shape of the tile.
MinorExponent
(N
). (Default: 14.0):
The exponent defining the shape of the cross-section of each tile.
Angle
(A
). (Default: 14.0):
Defines the orientation of each tile.
DepthMultiplier
(D
). (Default: 1.0):
Adjusts how deep the ridges between the tiles go.
Values larger than 1 carve out blocks.
Value less than 1 fill with more blocks.
(!
) We provide an interactive 3D plot to play around with all parameters (it's very neat): https://www.desmos.com/3d/ymmixtkdgf
Example:
//ezsp 3d
Sc(c:8,d:1.2)
clay 22,9
//ezt ambient clay ##EnchantedBright
//ezspline 3d
Noodles (No)
//ezsp Noodles([
Amount:<value>
],[
Density:<value>
],[
Frequency:<value>
],[
Tangle:<value>
],[
Width:<value>
],[
Seed:<value>
])
<pattern>
<radii>
[-s <stretch>]
[-t <angle>]
[-p <kbParameters>]
[-q <quality>]
[-n <normalMode>]
[-h]
Experimental spline which generates a set of twisted, intertwining, non-intersecting sub-splines.
[
Amount:<value>
]
(A
) (Default: 12):
The number of intertwining lines.
[
Tangle:<value>
]
(T
) (Default: 3.0):
Determines how much the noodles intertwine and move around. Low values result in fully straight noodles. High values result in more chaotic paths.
[
Density:<value>
]
(D
) (Default: 70%):
Indirectly determines the width of the noodles by specifying how much the cross-section should be filled with material vs just air. 100% makes the noodles as thick as they can be so that the given amount of noodles can still fit into the spline radius. Thus, large values do not leave the noodles much space to move which gives rise to glitchy paths. Small values leave large air gaps between the noodles.
Example: Cross section of the spline at 100%
Example Cross section of the spline at 50% (same number of noodles)
The smaller the density the smaller the individual radius of the noodles. Difference to the width parameter: The determined radius is the one used for collision detection. The width parameter has no influence on the collision between noodles.
[
Width:<value>
]
(W
) (Default: 0.8):
Relative width multiplier for all noodles independent of the noodle collision detection. Noodle collisions are calculated at width 1.0. This parameter defines the width at which the noodles are rendered/placed. This means values larger than one result in overlapping noodles, clipping into each other, meanwhile, values smaller than one ensure an air gap between all noodles.
[
Frequency:<value>
]
(F
) (Default: 0.5):
Sets the frequency value of the underlying noise responsible for the random perturbations. Higher values result in jittering.
[
Seed:<value>
]
(S
) (Default: -1 (random)):
Sets the seed of the underlying noise responsible for the random perturbations.