21 components can hold any 2D functions of the form F(x,y). They are often used to mix the output of two separate components (or branches) or to provide a surface (terrain), a texture (patterns) or an alpha channel value (mask). Several components are creating DF 2D profiles and patterns for Building 3D Objects : DFRM guide.
Most of the 21 components are 2D scalar functions but some can accommodate vector inputs like S:P Maths #.
In general we use X and Y capital case to refer to vector values and x y lower case to refer to scalar values.
An essential in-depth discussion of ArtMatic structures Trees and components is found in ArtMatic Designer References and in Building trees.
21 Math tools #
ArtMatic script function :
parameters :
No parameters.
discussion :
Math tools # provides a large number of mathematical functions of 2 variables. This component performs the mathematical operation determined by chosen algorithm. Some of these functions have equivalent components with more parameters. The Math tools implementation of such functions may be faster and should be used where speed is important. Note that the operations assumes scalar inputs : if you connect RGBA streams, the Alpha is going to be taken as the scalar input but the output will stay scaler. To process RGBA streams and output a RGBA stream use S:P Maths # instead.


21 S:P Maths #
ArtMatic script function :
parameters :
A : Amplitude x (0.0 : 2.0)
B : Amplitude y (0.0 : 2.0)
discussion :
This component can work on scalar input (1D) as well as 3D or 4D packed input (usually RGB or RGBA packed data). When the input is packed, the output is packed. This is both convenient and spare some packing tile to optimize trees that handles various streams of RGBA data. It is in particular quite efficient in the end of a CT when the output needs to be packed anyway.
For arithmetic operations (Add to Multiply) infinity in input 1 is transmitted unchanged and Infinity in input 2 is treated as transparent.
When dealing with RGB Alpha data the same maths applies to all channels, unlike the 24 Packed Maths # component which mostly handle the alpha differently than the RGB.
If one of the component is scalar and the other RGBA it is converted to (alpha, alpha, alpha,alpha) prior to the operation. The component can handle RGBA in input 1 and RGB in input 2 (in that order only). In that case the alpha of 1 is preserved and the operation affects only the RGB data.
Note: option "allow negatives values" is the default for vector calculation. When working with color values (RGB or RGBA) you may want to use "zero floor" to avoid negative colors.
21 Ax+By+C
ArtMatic script function :
parameters :
A : Scale X (-16.0 : 16.0) E9 options
B : Scale Y (-16.0 : 16.0) E9 options
C : Add (-16.0 : 16.0) E9 options
discussion :
This Affine function is used to sum 3 input values.
Ax + By + C is essentially a line equation. It scales and mixes both input and adds the offset C. It can be used as a weighted mixer or as a linear surface generator (a tilted plane). Pass the output to a gradient to generate a linear gradient of variable scale and direction.
Starting E9 it can accept Packed RGB or RGBA inputs. In that case the output will be packed as well.
In the ArtMatic script language expressions like 3*X+4*Y+2 will map to this component.
Formula: Ax + By + C
21 Interpolate
ArtMatic script function :
parameters :
A : Blend % (0.0 : 1.0)
discussion :
Interpolate mixes two incoming components/branches by interpolating between the incoming values. It is a simple way to crossfade between two branches of a tree since the mix is handled with a single parameter rather than the 3 parameters required for using Ax + By + C. The "Blend" parameter determines the relative mix of the two incoming branches. When set to 0, the output is the left-hand input. When the parameter is set to its maximum value (1), the output is the same as the right-hand input. When the parameter is set to in-between values, the parameter represents the relative contribution of the two inputs.
Script examples:
Implicit: vec1 fa = mix(X,Y,0.6); //with parameter set to 0.6
21 Multiply (x+A)*(y+B)+C
ArtMatic script function :
parameters :
A : Offset x (-10.0 : 10.0) E9 options
B : Offset y (-10.0 : 10.0) E9 options
C : Add (-10.0 : 10.0) E9 options
discussion :
Multiplies the translated inputs and adds C (available E9). Some may use this as a math primitive, others may use it as a mixer to combine two surfaces, and others may use it as a surface generator. When mixing two surfaces, the resulting surface often features interesting interactions of the two inputs that retain some aspects of the two inputs. While the equation is quite simple, the results are often complex and surprising. This component is often very useful for designing systems for ArtMatic Voyager as the resulting image generally intersperses areas dominated by the first input with areas dominated by the second input which provides complex topographies.
If you need a faster straight multiply use 21 Math tools# "mul" that just returns x*y.
21 Distance
ArtMatic script function :
parameters :
A : Offset x (-10.0 : 10.0) E9 options
B : Offset y (-10.0 : 10.0) E9 options
C : Amplitude (-16.0 : 16.0) E9 options
D : Offset (-10.0 : 10.0) E9 options
discussion :
Calculate the Euclidean distance or length given by the square root of x*x+ y*y. The Distance component generates a sort of blunt-nosed cone when it is given the points of the plane as its input. If the 1D sphere component follows the distance component, the result is a perfect half-sphere. Parameters A and B offset the output and parameter C acts as a multiplier/zoom. A negative C value reverses the cone direction to point it upwards. Starting E9 an additional offset can adjust the result level.
formula : C*sqrt((x+A)^2 +(y+A)^2).
If you need a faster straight distance use 21 Math tools# "dist(x y)" that just returns length(x,y).
21 Distance squared
ArtMatic script function :
parameters :
A : Amplitude (-4.0 : 4.0)
discussion :
Similar to the Distance function, but the square root is not computed. Hence, it runs much faster than the true classical Distance and should be used in iterative cases when the square root can be applied after just once after the iterations. This is a very valuable primitive and can often be used in place of the Distance function where maximum performance is required.
Formula :A(x^2+y^2)
21 Line
ArtMatic script function :
parameters :
A : Rotation (-180.0 : 180.0) angle in degree
B : Contrast % (0.0 : 100.0)
C : Width (0.0 : 5.0)
discussion :
A single "line" (with a saw-wave profile) is generated when the input is undistorted space. This component is a commonly used primitive. It is also useful as a mixer for mixing the output of two components.
Line has now various algorithm to address many needs and situations and can provide lines that can be sharp at very high resolutions for graphic design application.
Contrast: Sets the slope of the line edges. Contrast uses a non linear scale so 100% is actually 100*100, that is 10 000.
For Screen resolution graphics it is usually fine to use contrast values below 4 that provides a smooth transition and anti-aliases naturally. But for High resolution outputs, to get a sharp lines you will need to use a very High contrast value so that lines keeps sharp at 10,000 pixel or more rendering.
Width: The width of the line is the point where, at a given contrast, the line gets fully white (1) or fully black.
Notes: With very high contrast the width of the line should be over zero or it will be visible only at very high resolutions. The contrast is not automatic and you need to adjust it for the target of resolution. What looks good on a screen rendering will not be o.k. for a High res print.
21 Gaussian Dot
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 16.0)
B : Size (0.125 : 8.0)
discussion :
Gaussian Dot generates a gaussian bump surface using exp(-dist*dist), dist being the euclidean distance to the origin (x = 0, y = 0). The maximum value lies at the origin and the output approaches zero as the input's distance from zero exceeds the "Size" parameter which makes it practical for constraining inputs that tend towards infinity. Practically-speaking, it is the surface equivalent of the Gaussian bell curve.
21 Profile Shapes #
ArtMatic script function :
parameters :
A : Radius (0.0 : 64.0) E9 options
B : Width % (-1.0 : 10.0) E9 options
C : Height % (-1.0 : 10.0) E9 options
D : Curvature/Smooth % (0.0 : 1.0)
discussion :
Profile Shapes provides a large number of shape primitives for 3D modeling and 2D graphic design / decorative arts.
They are distance fields where the zero crossing is the contour of the shape. Since they expand before and after the zero boundary they can be enlarged or reduced by a simple offset and may be shaded in many ways. They also provide a surface that can be used as a terrain as well as a DF primitive.
Example :

For 3D application "Profile Shapes" gives basic shapes for creating architectural objects to render in ArtMatic Voyager. When combined with the appropriate 3D components, Profile Shapes can create a mind-boggling range of shapes. Even a simple systems that uses 32 Revolution & Sweeps # and Profile Shapes can create thousands of object shapes. When using Profile Shapes for 3D modeling, make sure that Allow Negative Values is on if it is available as a parameter option. It is on for those algorithms that do not include it as a parameter option. Use the algorithm popup to choose the shape. The parameter names may change with the shape and are self-explanatory.
Learn more about DF modeling in Building 3D Objects : DFRM guide.

This Roman-style church makes use of several Profile Shapes instances. Find out more about technics for 3D modeling with "Profiles Shapes". Click Here to review working with DF profiles.
Algorithm Notes: The shapes are focused on architectural shapes and basic polygons. Where iy- or ix- appears in the name, it indicates that the shape is infinite in the -y or -x direction. For example Column Greek iy- is a column that has a top but is unbounded on the bottom (the minus y direction). The Radius parameter (A) sets the global size of the shape. The Width (parameter B) and Height (parameter C) provide independent width and height control. In some cases, Width also modulates the shape. Curvature (parameter D) smooths all or certain angles most of the time. In some cases, it will modify the shape or curvature. The ornamentation/borders/frames of walls and columns are also increased with the fourth parameter. The options usually offers ways to make the shape unbounded (infinite) in a one or both directions and determines if the shape growth direction .
Script example: create a volume by intersecting 2 profiles
vec1 fb = Profile_Shapes.disk(va.z,va.y); //zy plane
vec1 fc = Profile_Shapes.pentagon(va.x,va.y); //xy plane
vec1 fout1 = min(fc,fb);








21 DF Curves #
ArtMatic script function :
parameters :
A : Frequency (0.0 : 16.0)
B : Mutation % (0.0 : 1.0)
D : Phase (-10.0 : 10.0)
discussion :
DF Curves # provides a set of various curves profiles for 3D modeling and 2D graphics. The DF field is computed using complex mathematics to provide a accurate distance estimate to the function, often using newton/ralphson iterative technics to solve 5 degree polynomials or analytically unsolvable functions. Thus they are generally slower than the Profiles shapes # functions or other curve approximations available elsewhere in Artmatic engine but they give a perfectly accurate DF field suited for 3D modeling in Voyager. As 2D functions they need to be combined with other primitives to create bounded 3D objects.
Some curves are available in lines only while others are provided as an oriented profile as well. Objects created with profile version will be filled while others will be hollow. Infinite curves like Cubic and Exp have been clipped to a large disc to avoid numerical instability for large values.
Parameter 'Level' sets the radius of the line in Curve mode. It has no effect for profile curves.
Extraordinary 3D objects can be modeled by combining several of this primitives.
Learn more about DF modeling in Building 3D Objects : DFRM guide.




21 Elevation Shapes #
ArtMatic script function :
parameters :
Algorithm slider : (0 : 30) integer
B : Radius (0.0 : 32.0)
C : Amplitude (0.0 : 64.0)
discussion :
This component creates a variety of basic shapes for terrains (elevation maps). It is useful for creating terrains in ArtMatic Voyager. The algorithms popup menu or "Algorithm slider" parameter determines the shape created. Algorithms include a variety of cones, pyramids and cubes with various contours as well as a star shape and various building shapes. The parameter options give the option of having negative values which can be useful when using it with ArtMatic Voyager.
21 Distance*(x + y)
ArtMatic script function :
parameters :
A : Offset (-2.0 : 2.0)
B : Amplitude (-2.0 : 2.0)
discussion :
This component provides a pseudo illumination effect on a bump when shaded in gray levels. As a surface it creates a positive bump on the right side of a 45 line passing trough zero and a negative bump the other side. Its value approaches 0 the further one gets from the origin (0,0).
21 Radial
ArtMatic script function :
parameters :
A : Frequency (0.500 : 12.0)
discussion :
When the input is undistorted space, this component's output is the angle between the x-axis and the input point. The output is symmetrical about the x-axis and yields a lighting effect on a virtual cone when the input is the points of the plane. The frequency parameter controls the arc of the lighted and shadowed areas.
21 Min <-> Max
ArtMatic script function :
parameters :
A : Amplitude (-2.0 : 2.0)
B : Min to Max (0.0 : 1.0)
C : Smoothness % (0.0 : 32.0)
discussion :
MinMax returns the minimum of (x,y) when parameter 'Min to Max' is zero, the maximum of (x,y) when 'Min to Max' is 1, and a blend of the two otherwise.
It can be used as a mixer to combine two surfaces by selectively choosing values from one input or the other rather than combining the values.
Parameter 'Amplitude' multiplies the result and shall usually be 1. The 'Smoothness' parameter controls the continuity of the transition between the two inputs.
Using Min <-> Max with 'Min to Max' at 0.5 will blend the min and the max at equal weight yielding the Median.
When parameter 'Min to Max' is 1 or 0 the function is identical with the 21 Logic tools # Union or Intersection
21 Logic tools #
ArtMatic script function :
parameters :
A : Blend x<->y (0.0 : 1.0) E9 options
B : Blend min/max (-2.0 : 2.0)
C : Smoothness % (0.0 : 50.0)
discussion :
Logic Tools provides a number of algorithms for combining surfaces and DF objects using a variety of logic (boolean) operators. They are particularly useful for 2d graphics, terrain design and DF 3D modeling.
(Learn more about DF modeling in Building 3D Objects : DFRM guide).
The 'Smoothness' parameter avoid sharp discontinuities by blending fields at the edges of the boolean operation. In general 'smoothness' is implemented using a square power blending function. The Cubic smooth (union,intersection and subtract) algorithms provides a 'smoother' smoothing by using cubic blending curves.











21 S:P Logic & Profiles #
ArtMatic script function :
parameters :
A : Offset y (-10.0 : 10.0) E9 options
C : Morph with x (0.0 : 25.0) E9 options
D : Smoothness % (0.0 : 20.0) E9 options
discussion :
S:P Logic & Profiles implement all important logic functions that can work indifferently on Scalar or Packed RGBA vectors. When the input is packed, the output is packed.
Logic & Profiles is the preferred tool to perform volumetric modeling : See Building 3D Objects : DFRM guide.
If one of the component is scalar while the other is RGBA it is converted to (1,1,1,alpha) equivalent to a white 3D DF object when alpha is the DF. The given functions are meant to work with RGBA DF input in 3D modeling but the straight min & max will work for RGB values. With RGB values, only max and min make sense so other algorithms will revert to "Union (max)", or "Intersect (min)". Infinity in input 1 is transmitted unchanged and Infinity in input 2 is treated as transparent.
The Algorithm pop up provides icons which give a preview of the DF profile when used on x y coordinates.
The boundary between a pure logic operator and a profile shape is blurry. In fact any logic function can be used to generate a profile, as well as a profile shape can be use as a logic function to mix two input volumes. The icon generated by the function actually shows the profile shape emerging from the logic operation between X & Y.
All functions have as first parameter 'Offset y' which allow to adjust the level of input y DF field. Some algorithms have an extra parameter 'Morph with x' that will optionnaly mix the logical result with the x input when above zero.
Option popup applies to thickness and spread parameters only.
3 new functions were added in 1.5 to facilitate texturing of DF primitives.
Note: Union, Intersection, Subtract & Chisel union have an additional parameter "morph in x" that allows to blend with the DF field passed in x after the Boolean operation.
21 Grid
ArtMatic script function :
parameters :
A : Frequency (0.0 : 50.0) E9 options
B : Scale Y (0.062 : 16.0)
C : Contrast % (0.0 : 100.0)
D : Width % (0.0 : 1.0)
discussion :
This component generates a grid pattern when it is fed the points of the plane. The Grid is not necessarily square as the 'Scale Y' parameter can change the Y period independently of X when set at a ratio != 1. It is a very useful function when examining how the various vector functions (2->2) distort space. For consistency in E9 the Period parameter became "freq" with default option to 1/value. The scale Y parameter determine the aspect ratio of the horizontal and vertical bars. The amplitude parameter determines the "height" or the "arc" of the grid bars.
Shading rendering of the grid is similar to the ones used in the 21 Line tools #
algorithms.
21 Hexagons
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 8.0)
B : Phase (-32.0 : 32.0) E9 options
C : Frequency (0.0 : 8.0) E9 options
discussion :
Hexagons creates a surface of infinite tiled hexagonal pyramids. The size of hexagons is determined by the 'frequency' parameter while Amplitude controls the height.
"Phase" offset the pattern in x.
21 Grids #
ArtMatic script function :
parameters :
A : Contrast % (0.0 : 100.0)
B : Phase (-32.0 : 32.0) E9 options
C : Frequency (0.0 : 32.0) E9 options
D : Width % (0.0 : 1.0)
discussion :
This component generates grid-like patterns that are shaded with the 21 Line tools # algorithms. The underlying math now ensures that the frequency scaling matches the other tile components.
For example see the
21 Orbit analyzer
ArtMatic script function :
parameters :
A : Amplitude (0.1 : 16.0) E9 options
B : Trap radius (0.2 : 8.0)
discussion :
Orbit analyzer is a great practical tool to shade many kind of 2D fractals.
When a 2D transform is applied recursively, each transform application defines a new point in the orbit. Depending on how this obit goes one can usually decide a shading strategy :
- the orbit quickly moves far away from origin. It is called divergent.
- the orbit quickly moves to a fixed points or a fixed set of points. It is called convergent.
- the orbit is chaotic or takes a very long time to converge or diverge. It is often the case at the boundaries of well defined regions, like typically the borders of the Mandelbrot set.
Orbit analyzer is usually used with a 23 Looper above that will recurse the 2D transform, often compacted in a Compiled Tree.
You can use several Orbit analyzer to extract various information from the orbits and mix them to create complex shading of the functions. Not all algorithms gives useful information with all kind of functions, but there is always some that will work even with the most difficult chaotic system. Best is to try and change the output amplitude and tweak the parameters to see what features are brought out.
Several Orbit analyzer tile can be used to mix various algorithms like in the example:
Except the output 'Amplitude' that scales the result globally, parameters varies according to the algorithms.
Orbit Analyzer proposes the following algorithms to extract information from the iterations's orbits:
21 Sines #
ArtMatic script function :
parameters :
A : Amplitude (-16.0 : 16.0) E9 options
B : Phase X (-32.0 : 32.0) E9 options
C : Phase Y (-32.0 : 32.0) E9 options
D : Frequency (0.0 : 16.0) E9 options
discussion :
21 Sines # renders a series of surfaces based on Sines.
21 Circles
ArtMatic script function :
parameters :
A : Frequency (0.0 : 128.0) E9 options
B : Size (0.0 : 1.500)
C : Power (0.250 : 10.0)
discussion :
Circles generates an arrangement of tiled cones. The frequency parameter determines the spacing of the cones. The size parameter determines the size/shape of the bases; at the minimum value the base has a circular shape; at the maximum value, the cones appear to have square bases. The power parameter acts as a contrast/brightness control on the component's output. To see the output as cones, use the derivative function as the final component as in the image to the left.
21 Random Cones
ArtMatic script function :
parameters :
A : Amplitude (-4.0 : 4.0)
B : Cone size (1.0 : 6.0)
C : Frequency (0.0 : 16.0)
discussion :
Technically-speaking, this component generates an arrangement of randomly-sized and placed cones whose appearance can seem like motes or "space-dust". Amplitude controls the contrast/cone height. Bubble size controls the cone base size, and frequency controls the spacing and can act like a zoom control.
21 Star Field
ArtMatic script function :
parameters :
A : Amplitude (-2.0 : 4.0)
B : Phase (-32.0 : 32.0) E9 options
C : Frequency (0.0 : 32.0) E9 options
discussion :
Star Field generates a virtual, layered star-field that is great for creating cosmic textures and images as well as for bump textures.
Animating the phase parameter creates a sense of depth by moving the layers at different speeds.
21 Ripples #
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 8.0)
B : Phase (-32.0 : 32.0)
C : Frequency (0.4 : 16.0)
D : Ripples (0.0 : 1.0)
discussion :
Ripples generates various patterns of sinusoidal ripples according to the algorithms below. The ripples # parameter determines the number of concentric rings per tile. The 'Frequency' parameter determines the overall pattern size and the 'Phase' parameter animates the ripples. The new mode "random Add" is much more suited for natural looking textures while other modes are fine for graphics.
'Frequency' abides to the standard frequency options.
Ripples # was changed in ArtMatic engine 8.07
21 Facet
ArtMatic script function :
parameters :
A : Frequency (-128.0 : 128.0) E9 options
B : Amplitude (-2.0 : 2.0)
C : Phase (-32.0 : 32.0)
discussion :
Facet is a discontinuous function that generates a mosaic-like surface. It uses an algorithm similar to bubbles but generates the same value (altitude) for each individual bubble.
Script examples:
vec1 fout1 = Facet(va.x,va.y);
21 Random Squares
ArtMatic script function :
parameters :
A : Scale X (-8.0 : 8.0)
B : Scale Y (-8.0 : 8.0)
C : Amplitude (0.125 : 4.0)
discussion :
This component generates discrete random rectangles when the component's input comes from the raw plane or another component with two outputs. The scale parameters determine the horizontal and vertical sizes of the rectangles and the amplitude is a multiplier to the output. Note that the output is discontinuous and does not tend to work well with the derivative component.
21 DF Patterns #
ArtMatic script function :
parameters :
A : Amplitude (-16.0 : 16.0)
B : Phase (-16.0 : 16.0)
C : Frequency (0.031 : 32.0)
D : Smoothness % (0.0 : 1.0)
discussion :
DF Patterns implements a series of procedural patterns useful for design and architecture. When Amplitude is 1 the distance field is exact and the pattern can be used in 3D for texturing and volumetric terrains within Voyager. The output is balanced and unlimited which makes them useful also for graphic effects like wipes.
Usually the phase parameter controls an offset in x or z (the pattern can be 3D internally) but is sometimes used to modulate a 5th parameter like density or orientation probabilities.
Note: DF implies that amplitude is linked with frequency so that the value of the field is a good approximation of the distance to the zero crossing, that is the surface of the object. That means practically that for high frequencies the amplitude gets pretty small and for a 2D graphic use you will need to scale the output to compensate (or scale the space before and keep the DF frequency low).



21 DF Waves #
ArtMatic script function :
parameters :
A : Frequency (0.0 : 4.0)
B : Mutation % (0.0 : 1.0)
D : Phase (-6.283 : 6.283)
discussion :
DF Waves # provides a set of various periodic curves profiles for 3D modeling and 2D graphics. The DF field is computed using complex mathematics to obtain a true distance estimate to the zeros of the function, often using iterative technics to solve equations that are not analytically solvable. Thus they give a perfectly accurate DF field suited for 3D modeling in Voyager as well as an accurate elevation to render a 2D curve of invariant thickness. As 2D functions they need to be combined with other primitives to create bounded 3D objects. For 2D graphics you may want to connect the output to other tiles to shade the curve in various ways.
Most curves algorithms comes with 2 flavors : 'profile' & 'curve'. 'profile' keeps the opposite signs around the zeros of the wave curve while 'curve' render the wave as a line using level-ABS(C), C being the curve DF field.
parameters:
'Frequency' controls the scale of the wave. The effect of 'Mutation' depends on which algorithm is selected and is discussed below. 'Level' offsets the zero crossing of the curve while 'phase' moves the periodic curve laterally.
Examples :
Two periodic curve intersects on the 2D plane.
A true DF field is not only useful for 3D DF modeling, it provides a constant thickness for 2D graphics curves.
21 Tech Noise #
ArtMatic script function :
parameters :
Algorithm slider : (0 : 37) integer
B : Amplitude (0.0 : 16.0)
C : Frequency (0.0 : 32.0) E9 options
discussion :
This noise component creates a variety of "techno" patterns that can be useful for creating decorative patterns and also for designing ArtMatic Voyager cities and artificial terrains. Use parameter A to select the pattern. A variety of mazes, patchworks and cityscape-like patterns are available. Most patterns come in both a sharp and a soft variety. Generally, the "soft" version should be used whenever this component is used to create surfaces and textures for ArtMatic Voyager as the "sharp" version can have discontinuities (sharp edges) that can cause problems in ArtMatic Voyager.
The various "City" noises provides city-like terrains that share the same street network and that can be combined when set at the same frequency.
Use this component set to the Street Network or Streets Mask pattern along with the minimum or multiply function to shape another surface to a city map as shown above. All the patterns with "city" and "street" in the name use the same street networks so they can be mixed together as long as they use the same frequency setting.
21 Pyramids #
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 8.0)
B : Phase (-32.0 : 32.0) E9 options
C : Frequency (0.0 : 16.0) E9 options
discussion :
Pyramids generates surfaces made by a sum of recursively scaled square based pyramids. When available an Aspect Ratio parameter D can change squares to rectangles.
21 Circuitry
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 8.0)
B : Phase (-32.0 : 32.0)
C : Scale (0.0 : 4.0)
discussion :
This procedural component creates a randomized pattern that juxtaposes several predefined patterns. A typical pattern is shown at left.

21 ZigZag
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 8.0)
B : Phase (-32.0 : 32.0)
C : Scale (0.0 : 4.0)
discussion :
This procedural component creates a randomized pattern that juxtaposes several predefined patterns. A typical pattern is shown at left.

21 Maze
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 2.0)
B : Style (0.0 : 1.0)
C : Frequency (0.0 : 16.0) E9 options
discussion :
Maze is a texture function that creates maze patterns. Parameter B (Style) determines the maze pattern.

21 Smooth Entrelas
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 8.0)
B : Phase (-32.0 : 32.0)
C : Scale (0.0 : 4.0)
discussion :
This procedural component creates a randomized pattern that juxtaposes several predefined patterns. The amplitude, phase and frequency control the contrast, offset and spacing of the resulting pattern.

21 Lightning
ArtMatic script function :
parameters :
A : Level (0.0 : 10.0)
B : Rotation (-3.142 : 3.142)
C : Offset (-50.0 : 50.0)
D : Mutation % (0.0 : 1.0)
discussion :
Lightning is a surface function that creates branching patterns of lines that can evoke lightning or simple tree. For a realistic lightning effect the surface shall be connected to a fractal displacement noise.
'Offset' controls the branch offset and 'Rotation' the branch angle from the father branch. The combination of 'Rotation' and 'Offset' parameters can create various overall shapes. Usually they will be set at opposite signs.
Lightning can be used in ArtMatic Voyager as a sprite or as geographic element to provide the structure of a river canyon system with branching rivers for example.

21 Dynamo
ArtMatic script function :
parameters :
A : Rotation (-2.0 : 2.0)
B : Phase X (-2.0 : 2.0)
C : Phase Y (-2.0 : 2.0)
discussion :
Dynamo is a fascinating component whose behavior is impossible to explain and whose formula is quite complex. It has a very non-linear response. The images below are all taken from a simple system whose only changes are to Dynamo's parameters and the zoom level.

21 Zebra noise
ArtMatic script function :
parameters :
A : Amplitude (0.250 : 2.0)
B : Thickness (0.0 : 2.0)
C : Frequency (0.250 : 8.0)
discussion :
This component generates a zebra stripe pattern. The Amplitude influences the lines' waviness. 'Thickness' determines the lines' thickness and frequency determines the stripe spacing.
21 Fractal Lines
ArtMatic script function :
parameters :
A : Amplitude (0.125 : 2.0)
B : Phase (-32.0 : 32.0)
C : Frequency (0.125 : 8.0)
discussion :
This (non-adaptive) component generates a system of veined lines and is actually the absolute value of fractal noise. It is great for creating marble-like textures.
21 Pict/Movie SymTiled
ArtMatic script function :
parameters :
A : Size (0.2 : 8.0)
B : Contrast (0.0 : 4.0)
discussion :
This variation of the Pict/Movie component creates symmetrically mirrored tiles. For information about all of the Pict/Movie components, see the chapter Using Pictures and Movies.
21 Blurred Pict/Movie
ArtMatic script function :
parameters :
A : Size (0.2 : 4.0)
B : Contrast (0.0 : 4.0)
C : Blur (0.0 : 1.0)
discussion :
This variation of the Pict/Movie component creates a blurred version of the input movie/pict. The 'Blur' parameter controls how much blur is applied. Note that the Blurred Pict/Movie component doesn't tile the image.
Gray scale 8 bits images are supported in most file formats. 16 bits images are supported in grayscale PNG format. Blurred Pict/Movie with input in 16 bits is recommended for 3D applications (terrains or DF objects) to minimize pixel sampling artifacts. The blurred buffer is using 16 bits per pixels. Beautiful halo, chrome and other effects can be created with this component. With the higher bit resolution that minimise quantization artefacts Blurred Pict/Movie can also be used for 3D bump-mapping and pict-based terrain rendering.
Note that the original AND the blurred (16bits) buffers are kept in memory, so this component may need a lot of memory when using several instances. You may consider to downsize the sources images (lowering resolution has little consequences on the blurred version anyway) when using several images with it.
A color+alpha version is available with the RGBa Blurred Pict/Movie component.
To choose an image from the disk and manage inputs learn more at Image and Movies Inputs.
Example file:
21 Pict/Movie
ArtMatic script function :
parameters :
A : Size (0.2 : 8.0)
B : Contrast (0.0 : 4.0)
C : Tiling (0.0 : 1.0)
discussion :
This variation of the Pict/Movie component creates symmetrically mirrored tiles. For information about all of the Pict/Movie components, see the chapter Using Pictures and Movies.
21 Random noise
ArtMatic script function :
parameters :
A : Amplitude (-10.0 : 10.0) E9 options
B : Phase (-32.0 : 32.0) E9 options
C : Frequency (0.0 : 32.0)
D : Offset (-1.0 : 1.0) E9 options
discussion :
This component generates random noise (like the snow on a television). Unlike Random Squares, this component's output while "noisy" is continuous with smooth transitions between the noise grains. This component is often used as a primitive for generating textures. It is a simpler and faster implementation than Perlin Noise but is less perfect as the underlying computation lattice can easily be detected.
Script example:
Implicit equivalent :vec1 fout = random(X,Y);
21 Low Freq noise
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 4.0)
B : Frequency (0.0 : 4.0)
C : Phase (-32.0 : 32.0)
discussion :
This is a low frequency version of "random noise" that is great for creating smoothly changing textures. Starting ArtMatic Engine 8.0 Low freq Random respects the standard frequency options settings.

21 Perlin noise
ArtMatic script function :
parameters :
A : Amplitude (-4.0 : 4.0)
B : Level (0.0 : 2.0)
C : Frequency (0.0 : 32.0)
discussion :
Perlin noise is the fundamental continuous random noise function in Computer Graphics. It is band limited and provides a great primitive for many textures or textures modulations, as well as pink noise (narrow spectrum noise) for sound applications.
Noise which can yield a variety of surface textures that can resemble stucco or cells in a petri dish and more.
Perlin Noise is equivalent to Multi-Perlin noise with its octaves set to 1.
21 Multi Perlin noise
ArtMatic script function :
parameters :
A : Amplitude (-12.0 : 12.0)
B : Octaves (1.0 : 64.0)
C : Frequency (0.0 : 32.0)
D : Roughness (0.125 : 0.750)
discussion :
This component creates a rich noise by adding "octaves" of Perlin noise with each octave having higher frequencies of the previous one. When the octaves parameter B is at its maximum there are about six layers of noise.
Roughness sets the fractal dimension of the result, which is related to the frequency scaling between each octaves. For a standard fractal surface this is typically set to 0.5 meaning frequencies are doubled for each octaves.
It can be used to create large-scale modulation or rolling plains in ArtMatic Voyager when the frequency is set very low (.01 to .03). Review the introduction topic Frequency Options by clicking here.

21 Bump noise
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 8.0)
B : Phase (-8.0 : 8.0)
C : Frequency (0.0 : 32.0)
discussion :
Bump noise gives the impression of raised and embossed textures - created by the subtraction of one Perlin noise function from another. The generated surface is rougher than the other types of noise.

21 Fractal noise
ArtMatic script function :
parameters :
A : Amplitude (-4.0 : 4.0)
B : Phase (-32.0 : 32.0) E9 options
C : Frequency (0.0 : 32.0)
D : Roughness (0.250 : 0.750)
discussion :
The fractal noise component is generated by summing different frequencies of noise. The amplitude of each noise "layer" decreases as its frequency increases with a typical ratio of 1/f where f is the frequency value. Frequencies double between each "layer". Parameter D 'Roughness' controls the overall fractal dimension. The default is 0.5 and corresponds to a doubling of frequencies (and halving of amplitudes) at each noise layer.
This is a very useful noise for creating natural textures and for "texturing" its input. This noise has a certain degree of structure which makes it great for creating marbled textures and clouds and other natural textures. This component is iterative and is sensitive to the Max iterations for fractals preference.
Review the introduction topic Frequency Options by clicking here.

21 MultiFractal noise
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 4.0)
B : Phase (-32.0 : 32.0)
C : Frequency (0.0 : 32.0)
D : Roughness (0.0 : 1.0)
discussion :
2D fractal noise with varying fractal dimension (roughness) created by summing Perlin noise functions at increasing frequencies. "Multi-Fractal" indicates that the fractal dimension (a measure of the surface roughness) changes randomly over the surface -- unlike simple fractals whose fractal dimension is constant. As you can see below the apparent roughness varies unlike Fractal Noise whose roughness is constant. Parameter D 'Roughness' controls the overall fractal dimension. The default is 0.5 and corresponds to a doubling of frequencies (and halving of amplitudes) at each noise layer.

21 Ridged fractal noises #
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 16.0)
B : Smoothness % (0.0 : 1.0)
C : Frequency (0.0 : 32.0)
discussion :
This component is especially well-suited to creating mountain ranges for ArtMatic Voyager. The Roughness parameter determines the texture of the ground. This is a composite noise function that uses Ridged Fractal Noise for low frequencies (large scale changes) and a Multi-fractal Noise for high frequency content. The result is a rich natural terrain that is more realistic than pure Ridged Fractal Noise.
Review the introduction topic Frequency Options by clicking here.

21 Fractal Terrains #
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 16.0)
B : Mutate % (0.0 : 1.0)
C : Frequency (0.0 : 100.0)
D : Roughness (0.125 : 0.750)
discussion :
Fractal terrains offers more realistic landscapes primitives than pure fractal noise with erosion simulation. The "Mutate" parameter affects the phase and orientation of erosion patterns while roughness deepens the erosion. 'Roughness' controls the overall fractal dimension. 'Frequency' abides to the standard frequency options.
Eroded Canyons Example:

Eroded B Mounts Example:

21 Fractal noises #
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 16.0)
B : Mutate % (0.0 : 1.0)
C : Frequency (0.0 : 32.0)
D : Roughness (0.125 : 0.875)
discussion :
This component supplies a number of fractal and terrain textures. The roughness parameters controls the fractal dimension hence the sensible roughness of the surface.
Review the introduction topic Frequency Options by clicking here.
Fractal Power Balanced Example:

21 Eroded Fractal
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 8.0)
B : Erosion level (0.0 : 1.0)
C : Frequency (0.0 : 32.0)
D : Roughness (0.250 : 0.750)
discussion :
This component is great for creating textures weathered by erosion in ArtMatic Voyager. The textures are smoother than the ridged noise surfaces as if wind and water erosion has worn the surfaces. Eroded Fractal adds "rivers" to a Perlin noise base. The Erosion parameter controls the length and amplitude of the "rivers". The image below is an image of an Eroded Fractal terrain as seen in ArtMatic Voyager.

21 Sparse fractal rocks
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 8.0)
B : Sparseness (0.0 : 1.0)
C : Frequency (0.0 : 32.0)
D : Roughness (0.250 : 0.750)
discussion :
This component is great for creating irregularly spaced rocks/mounds/hills (depending on the surface amplitude). The Sparseness parameter determines the density of the features. Sparse fractal noise is a useful primitive for simulating dust and scratches in ArtMatic textures or to add fine rock details in an ArtMatic Voyager landscape. It has been modified in ArtMatic Engine 8 so the first few octaves of the noise are less "perlin noise" like by using voronoi patterns to shape the largest rock.
Sparsely Spaced Fractal Rocks Example:
21 Stone Clusters
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 16.0)
B : Phase (-32.0 : 32.0)
C : Frequency (0.0 : 32.0)
D : Roughness (0.250 : 0.750)
discussion :
Clusters of stones with varying stone sizes and amount. This component is great for creating clusters of variously-sized terrain based stones for ArtMatic Voyager.
'Frequency' abides to the standard frequency options while 'Roughness' controls fractal dimension.

21 Lunar rocks
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 4.0)
B : Phase (-32.0 : 32.0)
C : Frequency (0.0 : 32.0)
D : Roughness (0.250 : 0.750)
discussion :
This component adds lunar-like rocks to ArtMatic Voyager surfaces. This is a multi-fractal noise with added sparse bump clusters. It is more natural looking than standard fractal noise with varying degrees of roughness and bumps that tend to occur in clusters.

21 Bubble rocks
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 4.0)
B : Phase (-32.0 : 32.0)
C : Frequency (0.0 : 32.0)
D : Roughness (0.250 : 0.750)
discussion :
A Multi fractal noise where fine details and rougher textures tend to fill the lower elevation of larger-scale elements. This component is frequently used in ArtMatic Voyager to create irregular bubble-shaped mounds and rocks.

21 Stratified rocks
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 4.0)
B : Phase (-32.0 : 32.0)
C : Frequency (0.0 : 32.0)
D : Roughness (0.250 : 0.750)
discussion :
A skewed and quasi-orthogonal fractal noise function great for creating stratified ArtMatic Voyager terrains. 'Frequency' abides to the standard frequency options.

21 Ridged noise
ArtMatic script function :
parameters :
A : Amplitude (-4.0 : 4.0)
B : Octaves (1.0 : 128.0)
C : Frequency (0.0 : 32.0)
D : Roughness (0.250 : 0.750)
discussion :
Ridged Noise is similar to the Multi Perlin Noise function but uses ridged Perlin noise function as its basis. This component is great for adding ridged contours to systems used with ArtMatic Voyager. The Octaves controls the number of layers of ridges. The "ridges" are obtained passing a perlin noise through an inverted absolute value filter (1-abs(n)). Result is then squared to achieve smoother "valleys". Ridged Noise is great as a base for irregular dunes or mountains. 'Frequency' abides to the standard frequency options.
Each successive octave is at a higher frequency with a lower amplitude:

Ridged Noise with about octaves=4 can be a good starting point for dunes. When the amplitude is negative it looks more like round stone clusters as shown below:
21 Bubble & Skins #
ArtMatic script function :
parameters :
A : Amplitude (-10.0 : 10.0)
B : Level % (0.0 : 1.0)
C : Frequency (0.0 : 32.0)
discussion :
Bubble and skins offers various procedural noises on a continuous implementation of the voronoi noise.
'Frequency' abides to the standard frequency options while 'Amplitude' controls the elevation heights.
Voronoi Skin B Example:



21 Cellular
ArtMatic script function :
parameters :
A : Amplitude (0.0 : 8.0)
B : Phase (-32.0 : 32.0) E9 options
C : Frequency (0.0 : 32.0) E9 options
discussion :
This component creates a Voronoi cellular elevation texture. Cellular is often used in conjunction with the Smooth Floor filter component (with the roof parameter set near 1) to flatten the "cells" so they look like cracks in the ground:

21 Craters
ArtMatic script function :
parameters :
A : Amplitude (0.125 : 8.0)
B : Phase (-32.0 : 32.0)
C : Frequency (0.031 : 8.0)
discussion :
Craters is an elevation texture function generally used to create realistic craters when creating planet-like terrains. 'Frequency' abides to the standard frequency options while 'Amplitude' controls the elevation heights.
21 Volcanoes
ArtMatic script function :
parameters :
A : Amplitude (-16.0 : 16.0)
B : Displacement (0.0 : 1.0)
C : Frequency (0.0 : 16.0)
discussion :
Volcanoes is an elevation function generally used to add randomly placed volcanoes when creating planet-like terrains. 'Frequency' abides to the standard frequency options while 'Amplitude' controls the elevation heights. Negative 'Amplitude' will make volcanoes become holes or lakes in the terrain.
21 Compiled tree (Subtree)
ArtMatic script function :
parameters :
A : Scale (0.0 : 1.0)
B : Iterations (0 : 256) integer
discussion :
Compiled trees are groups of tiles that can be used in place of single tiles as a kind of macro or subroutine. 21 CTs can be seen as scalar valued 2D function of the form F(x,y), that is surfaces, and are usually used to generate complex scalar or colored terrains when the output is a packed RGBA stream. Entire planets with various color-textured terrains can be described with a set of 21 RGBA CTs mixed together with a 34 Packed_random_Mix for example.
usage :
Select a 21 tile and use "New compiled tree" to create a new CT from the selection (Tree Edit menu or type 'n' key).
To save a CT on disk to use the function elsewhere use "Save compiled tree" from the Tree Edit menu.
You may also copy and paste the entire CT by using Copy Tile and Paste Tile from the Edit menu.
You may iterate the tree by "Iterations" number when the tree contains an Iterations tile to modify and accumulates various values. "Scale" provide an optional scaling of outputs and is set at 1 by default (no scaling).