//----------------------------//
ArtMatic 2 in 1 out components
//----------------------------//


Introduction
Math tools #
S:P Maths #
Ax+By+C
Interpolate
Multiply (x+A)*(y+B)
Distance
Distance squared
Line
Gaussian Dot
Profile Shapes #
DF Curves #
Elevation Shapes #
Distance*(x + y)
Radial
Min <-> Max
Logic tools #
S:P Logic and Profiles #
Grid
Hexagons
Grids #
Orbit analyzer
Sines #
Circles
Random Cones
Star Field
Ripples #
Facet
Random Squares
DF Patterns #
DF Waves #
Tech Noise #
Pyramids #
Circuitry
ZigZag
Maze
Smooth Entrelas
Lightning
Dynamo
Zebra noise
Fractal Lines
Pict/Movie SymTiled
Blurred Pict/Movie
Pict/Movie
Random noise
Low Freq noise
Perlin noise
Multi Perlin noise
Bump noise
Fractal noise
MultiFractal noise
Ridged fractal noises #
Fractal Terrains #
Fractal noises #
Eroded Fractal
Sparse fractal rocks
Stone Clusters
Lunar rocks
Bubble rocks
Stratified rocks
Ridged noise
Bubble and Skins #
Cellular
Craters
Volcanoes
21 Compiled tree


Introduction

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.

Frequency Options

Most noises and fractal surfaces generator have a Frequency options pop up that sets how the frequency parameter is interpreted. In general these functions are "adaptive" in term of frequency content as discussed in "Adaptive, Band-Limited Noise Functions"


Adaptive, Band-Limited Noise Functions

Fractal based noises functions have adaptive resolution and are band-limited to reduce high-frequency noise. They are recommended for use with ArtMatic Voyager. The number of iterations and resolution are determined by the zoom level and the fractal iterations preference. By being adaptive, the functions can deliver maximum detail at any zoom level but won't generate higher frequencies when the frequencies gets above pixel size to minimize aliasing.

NOTE: With very high zoom levels, you may need to increase the Maximum Iterations for Fractals setting in the Preferences dialog.


21 Math tools #

parameters :
Algorithm dependent

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.


algorithms :





21 S:P Maths #

parameters :
A : Amplitude x (0. : 2.)
B : Amplitude y (0. : 2.)
C : Algorithm dependent

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.


algorithms :

Example: Libraries/Graphic Design/MotionGraphics.artm

21 Ax+By+C

parameters :
A : Scale X (-16. : 16.)
B : Scale Y (-16. : 16.)
C : Add (-8. : 8.)

discussion :
Ax + By + C is essentially a plane 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.




21 Interpolate

parameters :
A : Blend or Angle % (0. : 1.)

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.


algorithms :


21 Multiply (x+A)*(y+B)

parameters :
A : Offset x (-4 : 4)
B : Offset y (-4 : 4)

discussion :
Multiplies the inputs and sends out the result. 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 quite 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.




21 Distance

parameters :
A : Offset x (-4. : 4.)
B : Offset y (-4. : 4.)
C : Amplitude (-16. : 16.)

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.




21 Distance squared

parameters :
A : Amplitude (-4. : 4.)

discussion :
Similar to the Distance function, but the square root is not computed. Hence, it runs much faster as 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*x+y*y)




21 Line

parameters :
A : Rotation (-180. : 180.)
B : Contrast % (0. : 100.)
C : Width (0. : 5.)

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.


algorithms :


21 Gaussian Dot

parameters :
A : Amplitude (0. : 16.)
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 #

parameters :
A : Radius (0. : 64.)
B : Width % (-1. : 10.)
C : Height % (0. : 10.)
D : Curvature/Smooth % (0. : 1.)

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 : Libraries/Graphic Design/Flower Marble Marquetry.artm


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 .


algorithms :


21 DF Curves #

parameters :
A : Frequency (0. : 4.)
B : Mutation % (0. : 1.)
C : Level (0. : 2.)
D : Algorithm dependent

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.

algorithms :


21 Elevation Shapes #

parameters :
Algorithm slider : (0 : 30)
B : Radius (0. : 32.)
C : Amplitude (0. : 64.)

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.


algorithms :


21 Distance*(x + y)

parameters :
A : Offset (-2. : 2.)
B : Amplitude (-2. : 2.)

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

parameters :
A : Frequency (0.50 : 12.)

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

parameters :
A : Amplitude (-2. : 2.)
B : Min to Max (0. : 1.)
C : Smoothness % (0. : 32.)

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 #

parameters :
A : Blend x<->y (0. : 1.)
B : Blend min/max (-2. : 2.)
C : Smoothness % (0. : 50.)

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.


algorithms :


21 S:P Logic & Profiles #

parameters :
A : Offset y (-10. : 10.)
C : Morph with x (0. : 10.)
D : Smoothness % (0. : 20.)

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.


algorithms :

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

parameters :
A : Period (1/Freq) (0.02 : 50.)
B : Scale Y (0.06 : 16.)
C : Contrast % (0. : 100.)
D : Width % (0. : 1.)

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. The scale parameters determine the spacing 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.


algorithms :


21 Hexagons

parameters :
A : Amplitude (0. : 8.)
B : Phase (-32. : 32.)
C : Frequency (0. : 8.)

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 #

parameters :
A : Contrast % (0. : 100.)
B : Phase (-32. : 32.)
C : Frequency (0. : 32.)
D : Width % (0. : 1.)

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 Libraries/Components demo/Tiles Sizes Match 45 to see how various tilings, mirror spaces and grids can be used together.

algorithms :


21 Orbit Analyzer

parameters :
A : Amplitude (0.01 : 16.)
B : Trap radius (0.01 : 8.)
C and D : Algorithm dependent

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 boudaries 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 analyser 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: Libraries/Fractals/OrbitsAN Newton Z3:2Z2 #dot+et
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:

algorithms :


21 Sines #

parameters :
A : Amplitude (-16. : 16.)
B : Phase X (-32. : 32.)
C : Phase Y (-32. : 32.)
D : Frequency (0. : 16.)

discussion :
21 Sines # renders a series of surfaces based on Sines.

algorithms :


21 Circles

parameters :
A : Frequency (0.06 : 6.28)
B : Size (0. : 1.50)
C : Power (0.25 : 8.)

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

parameters :
A : Amplitude (-4. : 4.)
B : Cone size (1. : 6.)
C : Frequency (0. : 16.)

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

parameters :
A : Amplitude (-2. : 4.)
B : Phase (-32. : 32.)
C : Frequency (0. : 32.)

discussion :
Star Field generates a virtual, layered starfield 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 #

parameters :
A : Amplitude (0. : 8.)
B : Phase (-32. : 32.)
C : Frequency (0. : 16.)
D : Ripples (0. : 1.)

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


algorithms :


21 Facet

parameters :
A : Frequency (0.12 : 8.)
B : Amplitude (-2. : 2.)
C : Phase (-32. : 32.)

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.




21 Random Squares

parameters :
A : Scale X (-8. : 8.)
B : Scale Y (-8. : 8.)
C : Amplitude (0.12 : 4.)

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 #

parameters :
A : Amplitude (-16. : 16.)
B : Phase (-16. : 16.)
C : Frequency (0.03 : 32.)
D : Smoothness % (0. : 1.)

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).

algorithms :



21 DF Waves #

parameters :
A : Frequency (0. : 4.)
B : Mutation % (0. : 1.)
C : Level (0. : 2.)
D : Phase (-6.28 : 6.28)

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 : Libraries/Components demo/DFwaves


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.


algorithms :

Notes: Unfortunately blending or adding 2 exact distance fields does not necessary yield an exact DF. Only boolean operations like min , max and the functions provided by the various logical tools will preserve the original DF.


21 Tech Noise #

parameters :
Algorithm slider : (0 : 37)
B : Amplitude (0. : 16.)
C : Frequency (0. : 32.)

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.

algorithms :


21 Pyramids #

parameters :
A : Amplitude (0. : 8.)
B : Phase (-32. : 32.)
C : Frequency (0. : 16.)

discussion :
Pyramids generates surfaces made by a sum of recursively scaled square based pyramids.


algorithms :



21 Circuitry

parameters :
A : Amplitude (0. : 8.)
B : Phase (-32. : 32.)
C : Scale (0. : 4.)

discussion :
This procedural component creates a randomized pattern that juxtaposes several predefined patterns. A typical pattern is shown at left.




21 ZigZag

parameters :
A : Amplitude (0. : 8.)
B : Phase (-32. : 32.)
C : Scale (0. : 4.)

discussion :
This procedural component creates a randomized pattern that juxtaposes several predefined patterns. A typical pattern is shown at left.




21 Maze

parameters :
A : Amplitude (0. : 2.)
B : Style (0. : 1.)
C : Frequency (0. : 8.)

discussion :
Maze is a texture function that creates maze patterns. Parameter B (Style) determines the maze pattern.




21 Smooth Entrelas

parameters :
A : Amplitude (0. : 8.)
B : Phase (-32. : 32.)
C : Scale (0. : 4.)

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

parameters :
A : Amplitude (-2. : 2.)
B : Rotation (-3.14 : 3.14)
C : Offset (-50 : 50)
D : Mutation %

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.


In 8.08 various flavors for Lightning are available :

algorithms :



21 Dynamo

parameters :
A : Rotation (-2. : 2.)
B : Phase X (-2. : 2.)
C : Phase Y (-2. : 2.)

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

parameters :
A : Amplitude (0.25 : 2.)
B : Thickness (0. : 2.)
C : Frequency (0.25 : 8.)

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

parameters :
A : Amplitude (0.12 : 2.)
B : Phase (-32. : 32.)
C : Frequency (0.12 : 8.)

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

parameters :
A : Size (1./512.) : 4.)
B : Contrast (0. : 4.)

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

parameters :
A : Size ((1./512.) : 4.)
B : Contrast (0. : 4.)
C : Blur (0. : 1.)

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: Libraries/Component demo/Chrome cycle logo



21 Pict/Movie

parameters :
A : Size ((1./512.) : 4.)
B : Contrast (0. : 4.)
C : Tiling (0. : 1.)

discussion :
This component lets you insert a gray scale picture file or movie into an ArtMatic system. All of the Pict/Movie components have the same A & B parameters (Size and contrast) with a third parameter, C, that varies by component. The 'Size' parameter scales the input. When Size is 1, the input picture will fill the canvas at the default zoom level (set by clicking the
Default view button). The contrast parameter adjusts the gain of the output values. Use 1 (default) for nominal gain. The 'Tiling' parameter determines the input's tiling. When Tiling is 0, no tiling is done. The larger the Tiling value, the closer together the tiles will be. The 21 versions of this component use a black and white version of the input movie/pict and use the current gradient to color the resulting image. By preceding the tile with space distortion functions, you can warp and distort the image.
For Color images you can use the 23 RGB Pict/Movie or the 24 RGBa Pict/Movie .

To choose an image from the disk learn more at Image and Movies Inputs.

Example Files: many examples are provided in the Libraries/ Image Graphic effects & Image Processing.




21 Random Noise

parameters :
A : Amplitude (0. : 1.50)
B : Phase (-32. : 32.)
C : Frequency (0. : 32.)

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.




21 Low Freq Noise

parameters :
A : Amplitude (0. : 4.)
B : Frequency (0. : 4.)
C : Phase (-32. : 32.)

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

parameters :
A : Amplitude (0. : 4.)
B : Level (0. : 2.)
C : Frequency (0. : 32.)

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

parameters :
A : Amplitude (-12. : 12.)
B : Octaves (1. : 64.)
C : Frequency (0. : 32.)
D : Roughness (0.12 : 0.75)

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

parameters :
A : Amplitude (0. : 8.)
B : Phase (-8. : 8.)
C : Frequency (0. : 32.)

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

parameters :
A : Amplitude (-4. : 4.)
B : Phase (-32. : 32.)
C : Frequency (0. : 32.)
D : Roughness (0.25 : 0.75)

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

parameters :
A : Amplitude (0. : 4.)
B : Phase (-32. : 32.)
C : Frequency (0. : 32.)
D : Roughness (0. : 1.)

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 Noise

parameters :
A : Amplitude (0. : 16.)
B : Smoothness % (0. : 1.)
C : Frequency (0. : 32.)
D : Roughness (0. : 1.) for Cubic ridges and Power cubic ridges

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.



algorithms :


21 Fractal Terrains #

parameters :
A : Amplitude (0. : 16.)
B : Mutate % (0. : 1.)
C : Frequency (0. : 100.)
D : Roughness (0.12 : 0.75)

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:


algorithms :


21 Fractal Noises #

parameters :
A : Amplitude (0. : 16.)
B : Mutate % (0. : 1.)
C : Frequency (0. : 32.)
D : Roughness (0.12 : 0.88)

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:


algorithms :


21 Eroded Fractal

parameters :
A : Amplitude (0. : 8.)
B : Erosion level (0. : 1.)
C : Frequency (0. : 32.)
D : Roughness (0.25 : 0.75)

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

parameters :
A : Amplitude (0. : 8.)
B : Sparseness (0. : 1.)
C : Frequency (0. : 32.)
D : Roughness (0.25 : 0.75)

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

parameters :
A : Amplitude (0. : 16.)
B : Phase (-32. : 32.)
C : Frequency (0. : 32.)
D : Roughness (0.25 : 0.75)

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

parameters :
A : Amplitude (0. : 4.)
B : Phase (-32. : 32.)
C : Frequency (0. : 32.)
D : Roughness (0.25 : 0.75)

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

parameters :
A : Amplitude (0. : 4.)
B : Phase (-32. : 32.)
C : Frequency (0. : 32.)
D : Roughness (0.25 : 0.75)

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

parameters :
A : Amplitude (0. : 4.)
B : Phase (-32. : 32.)
C : Frequency (0. : 32.)
D : Roughness (0.25 : 0.75)

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

parameters :
A : Amplitude (-4. : 4.)
B : Octaves (1. : 128.)
C : Frequency (0. : 32.)
D : Roughness (0.25 : 0.75)

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 #

parameters :
A : Amplitude (-10. : 10.)
B : Level or Mutation % (0. : 1.)
C : Frequency (0. : 32.)

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:


algorithms :


21 Cellular

parameters :
A : Amplitude (0. : 8.)
B : Phase (-32. : 32.)
C : Frequency (0. : 32.)

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

parameters :
A : Amplitude (0.12 : 8.)
B : Phase (-32. : 32.)
C : Frequency (0.03 : 8.)

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

parameters :
A : Amplitude (-16. : 16.)
B : Displacement (0. : 1.)
C : Frequency (0. : 16.)

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 :

parameters :
A : Scale 0:1
B : Iterations

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).