ArtMatic - Metasynth

Transcription

ArtMatic - Metasynth
ArtMatic
Component Reference
software by Eric Wenger
manual by Edward Spiegel
manufactured by U&I software LLC,
701 Seventh Avenue
Redwood City, CA 94063
http://www.uisoftware.com
This documentation describes ArtMatic version 6.0
©2015 U&I software LLC.
ArtMatic Pro Component Reference
Component Reference Overview ...................................................................... 4
1->1 Components: Filters ................................................................................. 7
1->2 Components ........................................................................................... 22
1->3 Components ........................................................................................... 26
1->4 Components ........................................................................................... 29
2->1 Components: 2D Scalar Functions ........................................................ 33
2->2 Components: 2D Vector Functions ........................................................ 59
2->3 Components ........................................................................................... 72
2->4 Components ........................................................................................... 84
2->5 Components ......................................................................................... 112
3->1 Components: 3D Scalar (Space/Field) Functions ................................ 121
3->2 Components: 3D Vector Functions ...................................................... 154
3->3 Components ......................................................................................... 177
3->4 Components ......................................................................................... 203
4->1 Components ......................................................................................... 241
4->2 Components: 4D Vector Functions ...................................................... 244
4->3 Components ......................................................................................... 251
4->4 Components ......................................................................................... 269
Memory Components ................................................................................... 280
History ........................................................................................................... 284
-3-
Component Reference Overview
The Component Reference provides detailed information about ArtMatic’s components – the functions that can
be assigned to the tiles of the ArtMatic structure tree. The number of inputs and outputs that a tile has determines
which components are available for the tile. The Component Reference chapters are organized by tile connections
(the number of inputs and outputs).
Pre-Requisites. The Component Reference assumes that you are familiar with ArtMatic’s basic concepts and operation. We urge all users to read the Concepts chapter of the ArtMatic user guide and to perform the tutorials – including the Getting Deeper tutorial as it provides a valuable framework for understanding the types of components..
What are components?
You can think of ArtMatic’s components as graphics filters, space distortion functions, signal processors, or mathematical functions. Components are mathematical functions and procedural rules that take values via the inputs,
process the values, and pass out new values from the component’s outlets. In the reference chapters, we provide the
actual mathematical formulas used by the components where they are meaningful. It is not necessary to understand
the mathematics involved, but users with some background in mathematics will find the formulas useful.
How to approach the Component Reference
The component descriptions make for pretty dry reading. But, we do recommend browsing through the chapters to
get an idea of what is available. Where possible, we have provided simple examples and illustrations that will give
you ideas about how the various components can be used. You may find it useful to quickly browse through the
component descriptions before reading the Getting Deeper chapter, but don’t worry if you don’t understand all of
the descriptions. The Getting Deeper chapter will help you to make sense of the components and how they function.
Important Component Characteristics
Certain mathematical characteristics are frequently mentioned in this documentation and are important to understand:
Band-limited. A function is band-limited when its frequency content falls within specific intervals. (You can think of
frequency as a measure of the size of the function’s features--high frequencies generate small-scale features and low
frequencies generate large-scale features). The Perlin Noise function is a good example of a band-limited function
whose output falls in a very narrow frequency band.
Continuity. A function is said to be continuous when its derivative (its local slope) does not exhibit any sudden
changes. Continuity is an important issue for ArtMatic Voyager. Certain functions (such as the Step Quantize function) produce a non-derivable, non-continuous result. Many discontinuous functions have a “smooth” variant or a
smoothing parameter that softens the discontinuity and makes the result continuous
Linearity. A function is said to be linear when its derivative (or slope) has a constant value. If you connect the derivative operator to a linear function (such as the plane Ax+ By +C component), you will just obtain a single color
-- an expensive way to clear your canvas.
Multi-fractal. A Multi-fractal function is a function with a varying fractal dimension. Fractal dimension is a measure
of statistical roughness. Multi-fractals are very good for capturing the complexity of natural textures.
Periodicity. A function is said to be periodic when it repeats itself ad infinitum with a specific period.
-4-
COMPONENT REFERENCE: Overview
Component Functions & Conventions
In the following sections, some functions are described as generating surfaces and others as distorting space and others as
filters. These labels are intended as useful guidelines to give you an idea of the component’s prototypical use, but
these functions when combined together work in ways that no simple labels can capture. The wonderfully rich image universes generated by these complex dynamical systems are beyond description. While the individual components are quite simple, the results can be quite surprising, especially when a complex component tree is being used.
Complex numbers. You will notice that many components use complex numbers in their calculations. Complex
numbers are numbers made up of a real and an imaginary part in the form of a + bi where i is the imaginary number
(the square root of -1). Complex numbers and operations involving them have many fascinating properties which
are beyond the scope of this documentation. If you search the internet, you will find many sites that cover this topic.
Conventions and definitions. In the tables below, there are a few conventions worth noting in the formulas that appear.
A, B and C refer to the values of parameter sliders A, B and C. x, y, and z refer to the inputs to component tiles. The
first input (counting from the left) is x, the second is called y, etc. Where the word distance is used, it refers to the
Euclidean distance which is
or
About x, y, and z. X, y and z are sometimes used in two very different ways. In some cases, x, y and z refer to spatial
coordinates. However, when describing an individual component’s inputs, x, y and z merely refer to the component’s first, second and third inputs. In many cases, these values will not be spatial coordinates. For example, a 2->1
function might receive input from two separate branches of the tree; in such a case, the component’s left and right
inputs would be referred to as the x input and the y input even though the values being received are not xy spatial
co-ordinates; they are just two numbers to be acted on by the function.
Procedural functions. Some functions are described as procedural functions. A procedural function does not have a
simple mathematical formula but has a rule or algorithm that may change based on the function’s inputs or parameter settings. For example, the MinMax component may choose either the minimum or the maximum of the two
inputs or it may interpolate between the two values depending on the setting of parameter B.
Common Parameters
There are a number of component parameters that you will encounter over and over in the component descriptions.
They are:
Amplitude. Amplitude generally controls the amount or strength of the effect. It often will affect the range of the
effect as well.
Frequency. Frequency generally controls the spacing of repeated effects and cyclic functions. For example, in the
Ripples component, the frequency determines the ripple spacing.
Phase. Phase usually acts as an offset which shifts repeated patterns and cyclic functions up or down and/or left or
right.
Scale. Scale acts as a multiplier which is usually applied to the component output.
Offset. Offset is a constant value added to either an input value or to the output value.
-5-
COMPONENT REFERENCE: Overview
Component Types
The following table shows the component types sorted by the number of inputs and outputs. Click on the underlined
text to jump to the corresponding reference chapter. The Interpretation column summarizes possible functional categories of the various tile types. These categories are described in detail in the Understanding Components section
of the Getting Deeper chapter of this manual.
# inputs/outputs
1->1
1->2
1->3
1->4
2->1
2->2
2->3
2->4
2->5
3->1
3->2
3->3
3->4
4->1
4->2
4->3
4->4
Common Interpretations
1D filter. adjust the input/output values of another component.
“dual filters” and “motion functions”
map a single value to an RGB color, generate three independent values, unpack
an RGB stream.
map a single value to an RGBA, create four independent values from a single
value, unpack a packed RGBA stream
2D scalar functions: surface generation, shading, mixing
2D vector functions: space distortion, parallel filtering
space translation, RGB shading
RGBA color shaders (many of which are implementations of 2->3 RGB color
shaders), RGBA packed mixers, and the composite XYza functions that create
interesting tiled spaces + value + alpha mask
composite functions that produce a space transform and a color texture generator
surface generation, mixing, packing
3D vector functions: space translation/distortion, texture generation
space distortion, colorspace translation, packed stream mixing
color texture components, color texture + elevation components for ArtMatic
Voyager, packed mixers
mix four independent outputs, create a texture from two space transforms, pack
the outputs of RGB+Alpha components into a stream to be fed to a packed mixer
space distortion, ArtMatic Voyager elevation and extra outputs
RGB/3D mixing, loopers
process RGB+Alpha information, ArtMatic Voyager cities and themes
-6-
1->1 Components: Filters
1->1 components are scalar (single ouptut) functions. Most of them act as filters that modulate or remap the incoming values. They also provide basic building blocks for implementing your own algorithms and formulas. In many
cases, the component’s name is the calculation performed by the component. An essential in-depth discussion of
function categories is found in the Getting Deeper chapter and is recommended reading for everyone. In the discussion below, x signifies the tile’s input value. It is often useful to insert 1->1 components between other components
(and at the end of the tree) in order to adjust individual value ‘streams’.
Set Constant (New 5.0)
This component returns a constant value set by parameter A regardless of the input value. The options popup
provides three interpretations of parameter A: direct value, 1/value, angle in °. When direct value is selected, the
output value is the setting of parameter A. When the 1/value option is used, the output is 1 divided by the parameter
A value. When the angle in degrees option is selected, parameter A is treated as a value in degrees, and the output
value is the equivalent value expressed in radians.
Ax + B (also called Scale)
A: Scaling B Offset
This component is a basic scaling filter. It multiplies the input with parameter A then adds an offset (parameter B).
It is nice for adjusting the contrast and level of a system.
Parameter options: direct value, 1/value, or angle in degrees.
When direct value is selected, the output value is simply the setting of parameter A. When the 1/value parameter
option is used, the output is 1 divided by the parameter A value. When the angle in degrees option is selected, parameter A is treated as a value in degrees and the output value is equivalent value expressed in radians. The angle in
degrees option is convenient for multiplying by Pi (180 degrees) or Pi/n.
Offset(x +A) (Updated)
A: Offset
Math primitive that adds a value supplied by the Offset parameter to the incoming value. This component now has
parameter options for increased functionality: direct value, 1/value, angle in degrees, value *10 and value *20. The
last two options are handy for large displacements
A - x
A: Level
This component inverts and offsets the input values. When A is zero, this component just returns the negative of the
input. Formula: A - x
Parameter options: direct value, 1/value, angle in degrees, value *10 and value *20.
Abs x
A: Offset
Absolute value of the input (i.e. it strips the minus sign from the input) plus the value of parameter A. Parameter A
added in ArtMatic 6.
-7-
REFERENCE: 1->1 Components
Formula: |x| + A
Mirror Symmetry with ABS X! When applied to a space coordinate, Abs X will create a mirror symmetry as shown
below.
TIP! Neon Line. Put this component after the A/x component to create a neon line effect.
A basic structure
By inserting the ABS X, com-
that creates a line
ponent the line can be mirrored
about the X or Y axis or both.
A simple line.
Abs X applied to
Abs X on the y
the x-input
input
A - ABS(x)
Abs X applied to both inputs
A: Size  B: Offset C: Scale
This function is an inverted absolute value where B offsets the input and A offsets the output. When applied to a
space coordinate, the resulting space will be both symmetrical and mirror-inverted. Formula: (A - ABS(x + B)) * C
Third parameter, Scale, added in ArtMatic 6.
Smooth Abs x
A: Amount B: Offset
This is a modified version of the absolute value function which is smoothed near the origin. Amount is the degree
of smoothing. Parameter B added in ArtMatic 6.
Gaussian
A: Power  B: Phase  C: Amplitude
The Gaussian transform imposes a contour like a bell curve. The output of a Gaussian function at 0 is 1 and approaches 0 when A( x+B) is greater than 2. To increase the width of the bell curve, decrease parameter A.
Formula: C exp(-(A( x+B))2) with A from 0 to 128
Plateau
A: slope  B: size  C: amplitude
Plateau is a gaussian-type filter with an extended plateau on either side of 0. It is useful for delineating symmetrical
shapes and creating edge effects. See the file Flying Rectangles to see how plateau can be used to provide rounded
corners. Slope determines the sharpness of the plateau edge. Size determines the plateau width. Amplitude is a multiplier that sets the plateau height.
x power A
A: Power  B: Scale
This component provides non-linear remapping of values. With the power parameter set to the minimum, you can
get useful discontinuities such as well-defined islands and borders (depending on the input). The range of A is from
-8-
REFERENCE: 1->1 Components
the eighth root of x to the 16th power of x. If the incoming value is negative, the absolute value is taken before
applying the function. Parameter B is applied as a divisor.
Formula: When (x<0): - (-x/B)A When (x>=0): (x/B)A
Advanced tip: This component can be used to create metallic effects when applied to a value stream that is providing
light intensity. For an example, see the file Disgusting Shader.
Math Tools # (Updated)
A: Algorithm Selector
(Formerly Math Utils). This is an advanced level component for implementing mathematical equations or optimizing the performance of a complex structure tree. This component performs a mathematical operation selected with
Parameter A on the input. Parameter A should not be animated since it is a selector that determines what operation
this component performs. When you move the parameter slider, the Tool Tips region will display the operation that
corresponds to the slider value. Some of these (like sin) have equivalent components with more parameters.
Functions that can be used as limiting envelopes use parameter B for scaling. Using parameter B essentially gives
control over the envelope size. This functionality is useful when you want to limit the output of another component
by multiplying the results. This parameter (B) applies to gauss: exp-x*x, clamp unity, cubic unity, and cubic unity
in x-.
In some cases, there are other 1->1 components that implement version of this function. When that is the case the
this component’s version (Math Tools #) will be fastest as it is optimized for speed. For instance, if you need a superfast sin(x) transform, use this one. The normal sin(x) has more parameters, but that flexibility comes at the cost
of computation speed.
The available functions (available either from the Algorithm popup or parameter A) are:
• x *x. x-squared.
• sqrt(x). Square root of x. If x<0, the output is 0
• log(x). Natural log of x. Infinity when x<=0
• exp(x). e^x
• gauss: exp(-x*x). Gaussian curve
• sin(x). Simple sine function .
• cos(x). Simple cosine function.
• atan(x). Arctangent
• zero floor(x+). x is limited to values from 0 through infinity. If x<0, the output is 0.
• clamp unity. x limited to values from 0 to 1. If x<0, the output is 0. If x>1, the output is 1.
• cubic unity. Cubic spline of x from 0 - 1 using (x*(x*(3-x-x)))
• tanh: hyperbolic tangent
• 4-abs(x).
• roofed 4-abs(x).
• iteration break |x|>32. This algorithm aborts iterations within a recursive compiled tree when the input value is
larger than 32. This can be used to optimize certain fractals by aborting meaningless (and time-consuming) iterations.
• fract(x)(%1). Returns the fractional part of the input and is much faster than modulo.
• balanced unit mod. Balanced modulus from -1 to 1. When the input is 0, the output is 0. This is a classic ramp
wave.
• balanced unit saw. Saw (triangle) wave whose output range is -1 to +1.
• balanced smooth saw. A triangle wave with rounded edges: a great primitive to build periodic, continuous signals.
• smooth floor 0 (x+). Same as the zero floor algorithm but with smoothing around 0 that results in continuous values.
-9-
REFERENCE: 1->1 Components
All output values > 0.
• smooth roof 0 (x-). Same as the zero floor with continuity at zero for the x- domain. Resulting values are ≤ zero.
• cubic unity in x-. Similar to the cubic unity algorithm (a cubic envelope limiting values to the range 0-1) but acting
on on the negative part of x-axis.
• acos(x). ArcCos ( inverse Cos) function. The input values are “tiled” to the range -1 to 1.
• asin(x). ArcSin function. The input values are “tiled” to the range -1 to 1
Power Slope
A: Size B Phase C:Power
An exponential curve with a step function-like effect except that it is continuous with rounded edges near the “step”.
This function, when used at the final stage of a system, tends to make the image very high contrast -- black and white
rather than shades of gray, for example.
Normal grid output.
A grid with the Power Slope component filtering its output
A Power X
A: A  B: Amplitude
Another basic mathematical building block : it returns the x power of parameter A. Formula: B * (Ax)
A(1-exp(-x))
A: Amplitude
This component filters the input with an inverted Gaussian curve. It provides a convenient way to smoothly clip
values that approach infinity. It is a little like log, but has a steeper slope and sharper cutoff.
Log
A: Amount
This filter applies the natural log to the input. It is good for decreasing the output range of functions that go to infinity. The amount parameter determines the steepness of the output curve.
x squared
A: Amount  B: Scale
Another mathematical primitive that returns x-squared. When the amount parameter is set to the maximum, the
output is the input-value squared for input values above 0 and 0 for input values below 0. Otherwise, amount blends
the unfiltered input value with the squared version. The scale parameter is applied to the input value before it is
squared. Formula: LERP(x , x>0 ? (Bx)2 else 0)
A/x (Updated)
A: Amplitude
This component creates a non-linear inversion of the input. Formula: A/x. Algorithms added in ArtMatic 6.
Algorithms:
• inverse 1/x. This is the original algorithm. The component returns the A/x where A is the value of parameter slider
A and x is the input value.
- 10 -
REFERENCE: 1->1 Components
• contours. 1/abs(x) - returns A/abs(x). This algorithm is great for neon effects. See the file Power Arc Neon for an
example.
A/(xx+A-1)
A: Amplitude
This component is similar to Gaussian but has a steeper curve and a sharp discontinuity around zero. Formula: A/
(x2+A-1)
Saw
A: Right Slope  B: Amplitude  C: Offset
This component filters the input using a ramp that has a sharp attack and a slow decay. Values outside of the ramp’s range are mapped to zero. This component can serve as a nice contrast or surface
contour control. It can also serve as an envelope filter for sound design when multiplying its output
with the sound waveform. The Offset parameter moves the saw envelope with respect to the input’s origin. The
Amplitude essentially sets the height of the saw envelope, and the Slope parameter sets the decay length.
The Right Slope parameter (A) may have a value less than 0. A negative slope provides a gradual attack and a rapid
decay rather than the a quick attack and slow decay.
Raw output of the Grid component (no filtering)
The Grid component’s output filtered through the Saw
component with the Slope parameter at its minimum.
.
Saw filter of the Grid component with the Slope set to
Grid filtered by Saw with the Slope and Amplitude set to
the maximum
intermediate values.
Sin x
A: Frequency  B: Phase  C: Amplitude
This component returns the sine of the input which renders its output periodic (cyclic). It is the basic primitive for
pitched sounds and any periodic phenomenon. It can be used for sound creation, wood-type textures, zebra patterns
and much much more.
Power sin
A: Frequency  B: Phase  C: Power
This periodic component is useful for creating banding effects and for adding harmonics when in Sound mode. It is
equivalent to passing the output through a sin filter and then a power filter. Formula: (sin (x*A+B))C
Tile Wave
A: Frequency  B: Phase  C: Amplitude
A non-symmetrical sawtooth wave. Very handy for creating repetitive patterns and for creating sound waves. With
default parameter values, it repeats the interval bounded by -1 and 1 which keeps the output centered about 0 (essential for musical applications). If you place a Tile Wave component before any other 1D filter, the filter will become
periodic (though not necessarily continuous since the ramp drops immediately from its maximum value to its mini- 11 -
REFERENCE: 1->1 Components
mum value). For example, if you need a repeating figure of gaussian grains, put a Tile Wave before the Gaussian tile.
Sound tip: Multiply the result with a sine wave and you get rich sounds.
Modulo (Updated)
A: Frequency B: Phase C: Amplitude D: Repeats
Modulo is a continuous version of the modulo/remainder function. Like Tile Wave, the output is a ramp wave. It
is very useful when you need to limit values with a periodic (i.e. repeating) function. It can be useful for creating
bevel-like effects. Frequency determines the spacing of the created “ramps” (by setting the divisor used to generate
the modulo). Amplitude is applied at the output stage.
Grid without modulo
A simple tree that applies Modulo to a grid and three examples generated by th tree.
There are two algorithms available via the algorithms popup:
• infinite modulo. The original algorithm
• Repeats N. Limits the modulo function to a particular number of repetitions (rather than go on infinitely as it does
with the default Infinite Modulo algorithm). The fourth parameter, Number of Repeats, is active for this algorithm.
This algorithm is convenient for creating finite repetitions in X or Y by inserting it on the approrpriate axis. 0 is in
the middle of each repetition series.
DFRM NOTE: When using Repeats N with DFRM, leave the Amplitude at 1 in order to maintain the distance field’s
integrity.
Parameter options: Direct values (default), 1/scale, scale * 10, offset: value*10, offset: value*20, offset & scale * 10
In the parameter option names, Scale refers to parameter A’s value and Offset to parameter B’s value. For example,
offset & scale * 10, will set both parameter A and parameter B to 10 times the sliders’ nominal value whereas Scale
* 10 treats parameter A as 10 times its nominal value but interprets parameter B normally.
 Saw wave
A: Frequency  B: Phase  C: Amplitude
This periodic component returns a triangle wave function similar to a sine wave but with sharper edges. Saw wave
is often used in sound synthesis for the richness of its harmonic content. When used on a space coordinate input,
the resulting space will feature a periodic symmetry on the corresponding axis. Algorithms and parameter options
were added in ArtMatic 6.
Algorithms
• Infinite saw (freq)
• Repeats N - Hard Edges
• Repeats N - Smooth Edges
When the Repeat algorithms are used, a finite number of repetitions (set by parameter D) are performed. The
Repeats options are useful for design and architecture and can be useful for kaleidoscopic 2D or 3D fractals.
When the Repeat options are used, the parameter options determine the interpretation of parameters A and
B. Scale refers to parameter A and offset to parameter B.
- 12 -
REFERENCE: 1->1 Components
Parameter options:
• Hard edges Pi-based
• Smooth edges Pi-based
• Smooth edges Unity
• Smooth displace (+in)
When using Smooth Edges Unity, the amplitude is adjusted to match the frequency to keep the space undeformed. Smooth Displace (+in) smoothes the edges and displaces by the input amount.
U wave
A: Frequency  B: Phase  C: Amplitude
This component is a useful u-shaped periodic wave based on the absolute value of a sine function.
x + A sin Bx
A: Amplitude  B: Frequency
This component modulates the input with a sine function rather than simply filtering with a sine function.
Formula: x + A sin(Bx)
x sin(x)
A: Frequency  B: Phase  C: Amplitude
This component is a variation of the sine function where the amplitude of the sine wave is scaled by the input x. If
the input is itself periodic, x sin(x) can be used to create interesting modulated sounds.
sin(Bx)/sin(x)
A: Amplitude  B: Harmonics  C: Amplitude
This component is great for creating harmonics for structures designed for sound synthesis (when using the Direct
Drones synthesis method). The componentís equation is Sin(Bx)/sin(x).
Amplitude determines the output amplitude. Frequency influences the harmonic spacing. Harmonics determines the
number of harmonics.
Tech waves #
A: Oscillator Type B: Amplitude C: Frequency
Tech waves is primarily used for creating audio. Parameter A selects between 26 different waveforms. The Tool Tip
displays the waveform name as you move the parameter slider. The waveforms range from a standard square wave
to random waves great for creating interesting noise. There are 3 flavors of “smoothness” for each oscillator type
which is essentially high frequency filtering.
Smooth Steps
A: Amplitude  B: Randomness  C: Frequency
This component is a quantization function that has smooth transitions
between the steps (unlike Quantize which has discontinuous steps).
This component is especially useful for designing systems for use with
ArtMatic Voyager which dislikes the discontinuities introduced by the
Quantize component.
When the Randomness parameter is non-zero, the steps are spaced
irregularly, yielding a natural look. This component is often used to
- 13 -
REFERENCE: 1->1 Components
create ArtMatic Voyager terrains to achieve eroded terraces such as those shown in the canyon example shown at
the left.
Variable Steps
A: Step Type B: Amplitude C: Frequency
Variable Steps is a randomized quantizing (step) function that combines two step sizes with varying degrees of
smoothness. Parameter A is used to select the quantizing algorithm. This component is especially useful for creating terraced landscapes in ArtMatic Voyager. The illustrations below demonstrate how terraces can be added to an
ArtMatic Voyager landscape by using the Variable Steps component.
2->1 MultiPerlin Noise as seen in Voyager
Image created by adding Variable Steps
Sphere
A: Radius
 The Sphere filter yields a sphere when applied after the distance component. Formula:
Cubic Clip
A: Amplitude  B: Offset C: Slope
Cubic clip is similar to the Clip function but uses a cubic spline to maintain continuity at the clipping boundaries. It
creates a smooth interpolation from 0 to A. Parameter B is an offset added to the incoming value before applying
the cubic filter.
Clip
A: Contrast  B: Offset  C: CutOff
This filter clips the input when it passes outside of the range from 0 to the value defined by the CutOff parameter.
Floor
A: Floor Level  B: Roof Level
Constrain the input to values between the Floor Level and the Roof Level. Any value below the Floor Level is assigned the floor level. Any value above the roof level is assigned the roof level.
- 14 -
REFERENCE: 1->1 Components
Smooth Floor
A: Floor Level  B: Roof Level  C: Smoothness
This component is a continuous, smoothed version of the Floor component. The Smoothness parameter determines the degree of smoothness (the range of values near the Floor and Roof limits where the
values are smoothed); when it is 0 the function is discontinuous. This
component is useful for creating systems for ArtMatic Voyager which
abhors discontinuities. The Floor and Roof parameters set the lower
and upper limits.
When Smooth Floor is applied to a fractal surface, it can be used to create convincing plateaus in ArtMatic Voyager
terrains.
Contrast
A: Contrast Amount  B: Offset
A simple, but very useful, contrast filter. When Amount (parameter A), is set to the maximum, there are only two
possible output values (i.e. if this is the last component in a system, the result will be a two-tone image). The Offset
parameter controls where the contrast divide is made. When used to control picture luminance values, offset effectively adjusts the overall threshold level. See Concentric dither BW for an example.
Semitones Seq.
A: Loops B: Phase C: Amplitude
This component is used to create random note sequences in Sound mode. Generally, this component is
connected to one of the time outputs of the Global Input Matrix (as shown below) which causes the
notes to vary over time. The output values are limited to semitone values when used in a well-behaved
sequence. See the examples provided with ArtMatic. Example files: QT Mod Seq., Master LFO Test
series of examples
Parameters:
A: Loops – The number of loops (notes) that will be created in a given time frame. Larger values result
in phrases with more notes.
B: Phase – An offset within the random sequence. By changing the phase, you can create more complex
musical phrases since the sequence will not simply repeat over and over.
C: Amplitude–Determines the pitch range of the notes from which the sequence will be generated.
Mirror
A: Scaling  B: Offset
A symmetry component that creates a mirror of the input values. The Offset parameter moves the mirror axis. Parameter A scales the output values. See the files MetaMSlide A and Simple Mirror for examples. Formula: if (x>B)
then y = 2 * B - x
Output of 2->1 Line
Line with Mirror inserted after it
- 15 -
REFERENCE: 1->1 Components
Split & stretch
A: Amount  B: Offset  C: Smoothing
This handy component divides the input about 0 and pushes apart the positive and negative values. It is very useful
for modeling shapes. For example, insert an instance of this component before both the left and right inputs of a
circle, and the result is a rounded rectangle. See the example file Simple Button.
Discrete Random
A: Amplitude  B: Frequency  C: Phase
This component is a random step function. It is not continuous and not derivable and thus is not advised for ArtMatic Voyager or sound design.
Linear Random
A: Amplitude  B: Frequency  C: Phase
A simple discontinuous random function with linear interpolation. Use this component for creating
high order harmonics for sound synthesis or when you need sharp edges.
Random
A: Amplitude  B: Frequency  C: Phase
This component generates a band-limited and continuous random function. Formula : A Rnd(B(X+C))
Periodic Random
A: Frequency  B: Phase  C: Amplitude
A periodic (repeating) random function particularly useful for sound applications. It is band-limited and richer than
a pure sine wave. The phase parameter adjusts the contour of the random output.
Multi Perlin Noise
A: Amplitude  B: Octaves  C: Frequency
This component sums a series of perlin noise functions with the frequency doubling for each function in the series.
The octaves parameter determines the highest frequency generated. When the octaves parameter is at its maximum
(128 which is is 27) there are seven “octaves” of noise.
Multi Perlin Noise is a band-limited noise function very useful for sound synthesis as the upper frequency limit can
be controlled by the octaves parameter.
Fractal Noise
A: Amplitude  B: Frequency  C: Phase D: Roughness
A 1D version of the fractal noise algorithm. See the descriptions of the higher-dimensional fractal noise components
for more information. Besides many graphical applications, Fractal noise can also be used as a sound source to produce “pink noise” where the amplitude of specific frequencies follow the “1/f” rule. (Unlike “white noise” which
has all frequencies at the same amplitude.). Fractal noise produce a natural and pleasant unpitched sound.
Parameter D, Roughness, controls the fractal dimension. The default “normal” value is 0.5.
Example file: Gaz Giant vortex study
- 16 -
REFERENCE: 1->1 Components
Randomize
A: Amount  B: Frequency
A randomizing component which provides random distortion of the input. This differs from the Random function
which generates truly random values. Randomize adds its random value to the input.
Formula : X + A Rnd(BX)
Grains
A: Frequency  B: Size  C: Amplitude D: Phase
Grains is a non-periodic function that randomly distributes small gaussian-shaped “grains”. It is useful for both
graphics and sounds. For graphics applications, use it when you need a series of lines that is not densely spaced.
For sound applications, use it to create narrow-band noise that sounds more brassy than white noise or fractal noise.
Quantize
A: Freq.  B: Amplitude
Quantize the input into discrete steps. It turns a gradual gradient, for instance, into a series of color bars as in the
illustration below. Use this function to create discontinuous, step-like output. It is great for creating pixelization and
color-reduction effects. Quantize is not continuous and not derivable and thus is not advised for ArtMatic Voyager
or sound design.
Frequency determines the spacing of the quantization steps. The Amplitude determines the strength of the quantization. (With a value of 0, there is no quantization; with a maximum value, true quantization is performed.)
The image on the left is the result of applying
the Quantize component to a gradual ramp
(provided by the Ax+By+C component). The
image on the right is the unquantized image.
Derivative
A: Amplitude  B: Offset
This component approximates the derivative of the function whose output feeds the derivative component. It is
often used to emphasizes the 3D aspect of a system. Its output only makes sense when the input values are continuous (i..e. it does not work well with discontinuous & non-derivable functions such as Random Squares or discrete
Random).
Note: This component will behave differently when it is in a compiled tree than when it is in the main tree since it
uses information other than that which comes in through its input. When this component is used (almost always in
the lower part of tree), ArtMatic traverses the tree for the information that it needs to derive the lighting information.
As a result, this component can’t be used inside of compiled trees since the tree as a whole is hidden from compiled
trees. Formula: f(x + dx, y + dy) - f(x,y)
2D Derivative
A: Light direction dx  B: Light direction dy  C: Offset
Related to the derivative, this function provides lighting and 3D texture effects by scanning the entire
tree above it to compute its partial derivatives. Parameters A and B control the direction of the virtual
light vector. When A is 1 and B zero the light comes from the left.When B is 1 and A zero the light comes
from the top. This component actually looks at the entire tree structure and not just the incoming values.
- 17 -
REFERENCE: 1->1 Components
Note the 3D effect it has on a simple 2->1 Grid.
Note: This component will behave differently when it is in a compiled tree than when it is in the main tree since it
uses information other than that which comes in through its input. When this component is used (almost always in
the lower part of tree), ArtMatic traverses the tree for the information that it needs to derive the lighting information.
As a result, this component can’t be used inside of compiled trees since the tree as a whole is hidden from compiled
trees.
Advanced note for the mathematically inclined: This component approximates the partial derivative along both the x
and y axes of the system (dfx and dfy). The result is the dot product of parameters A and B with the approximated
partial derivatives over x and y. This components is one of ArtMatic’s most computationally-intensive components.
Formula: A (f(x + dx, y)-f(x, y)) + B (f(x, y+dy)-f(x, y)) + C
2D Slope
A: Amplitude B: Offset
This component provides a few algorithms for calculating the slope of the curve created by the component that feeds
it. This components scans the entire ArtMatic tree in order to perform its calculations. In some cases, ArtMatic may
not be able to calculate a slope. In ArtMatic 6, this component was updated with parameter options and algorithm
choices.
The images at left use the RGB Alpha bump color shader which uses
the alpha channel (fourth output) to create 3D height. The system
on the far left uses the 2D Slope component to compute the alpha
channel.
Parameter Options: 2D Slope Normalized, 2D Slope Magnitude, 3D Slope dy, 1D Slope df/dx. The old behavior
was Slope Normalized. Slope Magnitude returns a non-normalized slope (i.e. it is not limited to values from 0 to 1).
Slope Magnitude is handy for correct space scale estimation when applied to distance.
Algorithms:
3D Slope dy - the partial slope y/(dx,dz) of a 3D system. It makes use of length (dfy/dx,dfy/dz). It is useful for getting the
slope of a 3D DFRM field. For example, you can use it to switch between textures depending on the slope.
1D Slope dfx - the partial slope in x/dx of a 1D system. It makes use of length(df,1) to calculate the slope. This algorithm
can be used to improve the approximation of distance to a curve. The example system “Utility Fuction Plot” (found
in the Structure Presets folder) uses it to calculate an accurate curve display. The distance estimation is given by
(function(x)-y) divided by 1D Slope dfx.
Compare (new)
This component provides a way to compare an input value to a single value or value range. Where the input value
matches the selection criterion, parameter C’s value is passed out. Everywhere else 0 is passed out.
Compare can be especially useful when working the the ‘z’ indexes generated by the 2->4 XYza and 2->4 or 3->4
City Maps (xziy) components. For example, some of the city patterns use the z value 3 for building windows and
others use 0. You could feed Compare with the z value and feed the output to a branch or compiled tree that generates reflections. Compare can also be used to build discrete masks.
- 18 -
REFERENCE: 1->1 Components
Compare is used in this tree to provide
reflections via the ArtMatic Extra Output.
It is selecting those regions where xziy
City Textures Set C is 0 (which corresponds to window positions).
Algorithms:
•
•
•
•
•
Equal Exact Value. True if the input value exactly matches parameter A.
Inside Range. True if the input is inside the range bounded by parameter A and parameter A + parameter B.
Outside Range. True if the input is outside the range bounded by parameter A and parameter A + parameter B.
Greater Than. True if the input is greater than parameter A.
Less Than. True if the input is less than parameter A.
Iterations
A: Multiplier/Value  B: Iterations
This component serves two functions. It can force a top-level tree to be looped (calculated several times in succession), and it acts as a counter whose value corresponds to the iterations that have been performed. The behavior is
slightly different in top-level trees and in compiled trees.
In top-level structure trees, it forces the tree to be looped the number of times specified by parameter B. In compiled
trees (and also in top level trees), it returns the number of iterations that have been performed (multiplied by value
of parameter A). In sub-trees, the number of iterations to perform is provided by the compiled tree component’s
Iterations/Recursion parameter.
During each iteration, this component’s value is: current iteration number * Parameter A
Iteration is discussed in some detail in the chapter Compiled Trees and Iteration which also includes a tutorial that
covers the construction of iterative trees.
NOTE: In compiled trees parameter B is ignored as the compiled tree component performs the iterations.
WARNING: This component should never be the first component in a tree.
Infinity Gate/Mask
A: Maximum  B: Minimum  C: Invert Mask
This function allows you to replace finite values with infinity which has some special characteristics (i.e. it is replaced by the depth cueing color -- in RGB systems -- and is transparent when encountered by ‘packed’ mixers).
Like the Floor component, this function can be used to define a range outside of which the values are remapped.
- 19 -
REFERENCE: 1->1 Components
When the input value is less than the minimum or greater than the maximum the value infinity is sent out which
makes those portions of the surface transparent to the ‘packed’ mixers. Invert Mask can invert the component’s effect. When the parameter’s value is greater than one, infinity is generated where the input value is between the min
and the max parameters
This is great for creating keying effects when using ArtMatic Pro to create video effects.
Memory Functions
Below are brief summaries of the 1->1 memory components. Memory components are covered in detail in the chapter Memory Components. Memory components are used in looped/iterated/recursive trees to combine the results of
each pass through the loop. These components are only meaningful in such trees. We recommend performing the
Compiled Trees and Iteration tutorial in order to best understand how these components work.
Memory Add
A: Start Value
Memory Add simply adds the new value to the old value. It acts as an accumulator. The Start Value parameter is
the initial value which is added to the first iteration. Because the effect accumulates over the iterations, you may
sometimes want to set the Start Value to a low value so that the system doesn’t attain large/max values everywhere.
Memory Fractal Add
A: Power Slope B: Sum Gain 
Each iteration’s pixels are made brighter or dimmer than the previous iteration’s before being added to the accumulated image. See the chapter Memory Components for detailed information. Behavior changed slightly in ArtMatic
6 to improve each iteration’s amplitude change.
Memory Max
Memory Max retains whichever is larger: the new value or the previous value. When the iterations are done, you are
this component will essentially have returned the largest value (for each point) of all the iterations.
This component is only meaningful in iterative/recursive systems. This topic is covered in detail in the chapter
Compiled Trees and Iteration which also provides simple tutorials for understanding these functions.
Memory Min
The inverse of Memory Max. Passes out whichever value is smaller: the incoming value or the stored value.
Memory Diff
A: Smoothness
Memory component where each iteration’s value is subtracted from the stored value. See the chapter Memory Components for detailed information.
- 20 -
REFERENCE: 1->1 Components
RGB Alpha Pack (new)
This component either filters or creates a packed RGB-A stream depending on whether the input is a scalar (single)
value or an RGBA stream. This is a convenient way to add a solid color to a DFRM object or to filter an existing
stream’s colors.
Simple solid color for DFRM. If the input is a single scalar value, an RGB-A stream is created. The
stream’s RGB values are the values of parameters A, B and C and the alpha channel is the input value.
Typically, this is used to create DFRM colored solid where the sliders 1, 2, and 3 determine the color,
and the input provides the object (DFRM field). Using 1->1 RGB Alpha Pack is more efficient than
using the 1->4 Set Constant component followed by a 4->1 Pack component.
Packed Input. When the input is a packed RGBA stream, parameters A, B and C scale the input stream’s
RGB values and the alpha value is passed through unchanged. This is very handy for scaling a set of
packed values.
Compiled Tree
Open Compiled Tree
A: Blend  B: Recursion
Choose this component to use a 1->1 compiled tree. Compiled trees are groups of tiles that can be used in place of
single tiles as a kind of macro or subroutine. Compiled Trees and their parameters are covered in detail in the Compiled Trees chapter of this manual.
- 21 -
1->2 Components
1->2 components act as either “dual filters” or “motion functions”.
Dual filters (such as Modulo & Int) implement two related functions (such as floating point modulo and integer
quantize) one of which is passed out the left output and the other of which is passed out the right output. These are
useful in cases where you need to two perform two calculations on the same value. The Dual Filters versions are
computationally more efficient than connecting two different 1->1 Filters to the same input.
Tree
Modulo output
Integer output
Combined output
Output visualized as a curve
Motion functions. A few of the 1->2 components (such as Circular Motion) are motion functions and translate a value
(usually time) into a position. The motion function allow you to set up trees where motion is automatically created
by time.
When Circular Motion is connected to the Z Global Input
(as in the tree at left), the result
is automated circular motion.
Set Constant (updated)
A: Set Constant x B: Set Constant y
This component generates constant values determined by Parameters A and B. The input value is ignored.
Parameter options: direct value, 1/value, angle in °. See 1->1 Set Constant for more information about these options.
Set Vector (new)
Scale the input value using parameters A and B. Left output is A*x. Right output is B*x.
Add (x+A,x+B) (new)
This component is sometimes referred to as Add Vector. The outputs are x+A, x+B. Add Vector can be useful for
adding offsets to the same axis or to move several objects.
2D Derivative (new)
Returns the partial derivatives DX, DY.
- 22 -
REFERENCE: 1->2 Components
Math: atan & tgt
A: Amplitude
Math primitive for advanced users. This component generates the ArcTangent and Tangent of the input.
Math: log & exp
Formerly, MATH: Log & Exp. This component provides a few useful math functions selected by the algorithms
popup.
Algorithms:
• log(Ax+B) & exp(Ax+B). The left output is the log and the right output is the exponential.
• exp(x s), exp(-x s), B: slope. Parameter B acts as a slope value. The left output returns the positive exponent and
the right output the negative exponent. The two curves are symmetrical. When creating DFRM objects, the second
output could be used, for example, to thin the field while the first output is being used to scale the y-axis. See the
Voyager example file OLife DFRM sea shell.vy.
• perlin noise & derivative. This algorithm is provided to maintain compatibility with examples developed during
beta testing. It has been replaced with the standalone 1->2 Perlin Noise + Derivative component.
Modulo & int
This component provides a few different flavors of Modulo and Integer functions. The left output is a continuous
floating point version of the modulo/remainder function (see Modulo in the 1->1 reference chapter). The right output
is the discontinuous integer modulo function (which is equivalent to the 1->1 Quantize component).
Parameters:
• A: Real Modulo x. Influences both outputs.
• B: Phase.
• C: Int Modulo Y( some). Active in only some algorithms. Influences the right output only.
• D: Repeats #.
Parameter options: Infinite Tile, Repeats N.
Algorithms:
• Modulo & int Mod C. This algorithm was used in the pre-algorithm version. The left-output is a continuous floating point modulo (remainder) function equivalent to 1->1 Modulo. The right output is a discontinuous integer-quantized modulo (equivalent to 1->1 Quatntize) where parameter C determines the number of steps.
• Modulo & integer part. Left-output is the floating point (continuous) modulo. The right-output returns the integer
part of the input. The parameter option provides tiling options that limit the number of steps. This output can be very
useful for differentiating copies and making them behave differently.
• Modulo & Random Value. Right-output: return a unique random value B for each step of the modulo function. The
parameter option provides tiling options that limit the number of steps.
• |Modulo| & smooth step. Similar to “Modulo & integer part” but the step function is made continuous with smoothing of the steps. The modulo returned by the x-output is the modulo of the input’s absolute value and so is symmetrical. This mode was used to animate the legs in Legs Mechanics ArtMatic Voyager example. The parameter option
provides tiling options that limit the number of steps.
- 23 -
REFERENCE: 1->2 Components
Integer Modulo
A: Modulo B: Freq x C: Freq y
Integer Modulo essentially packs two 1->1 Quantize components into a single tile . The left and right outputs share
the same number of steps but have independently controllable spacing via the frequency parameters. Starting in
ArtMatic 5, 0 is centered in the repetitions.
Cubic Clip
A: Input Scale B: Offset C: Amplitude
The left output is the Cubic Clip function (see the 1->1 component description). The right output simply passes
through the input value.
2D derivative dx, dy
A: Amplitude B: Normalize %
Scan the tree and output dx from the left output and dy from the right output.
Motion Functions
The following components are useful for automating motion controlled by a time input (such as Global Input Z or
W). If you feed the input from a steadily increasing value (such as Global Input Z when in Constants or Time and
Cycles mode), the left and right outputs supply values that when added to global inputs X and Y generate motion.
The trees at left demonstrate two different ways to use motion components to create
a moving dot. When using a tree such as the second one, the parameter settings are
critical. There are two Z Displace tiles. One is connected to the left output of the
motion component, and so controls the horizontal movement (movement along the X
axis). The other one is connected to the motion component’s right output and thus is
meant to control vertical displacement (displacement with relation to the Y axis). The
first component should have Displace X set to 1 and Displace Y set to 0. The second
component should have the reverse settings. The result will be circular motion.
 
Linear motion
A: Direction B: Speed
This component creates motion along a straight line when used in a tree such as the ones illustrated in the Motion
section above.
Circular motion
A: Radius B: Speed X C: Speed Y
When Speed X and Speed Y are the same and when the input is a linear input, the result is circular motion when
used in a system such as the one shown in the Motion section above. The motion will be elliptical when the Speed
X and Speed Y parameters are different.
- 24 -
REFERENCE: 1->2 Components
Random Motion
A: Amplitude B: Speed
This component creates continuous random motion when used as described in the Motion section above.
Perlin Noise + Derivative
The left-output is a 1D Perlin Noise function with its derivative provided from the second output. Derivative can
be used to rotate an animated object while the the left-output value animates its position as in the Cluster Motion
Perlin.vy example provided with ArtMatic Voyager 3.
- 25 -
1->3 Components
1->3 Components generally serve one of three functions: to convert a scalar (single value) stream to RGB color, to
generate three independent values, or to unpack an RGB stream.
An example of 1->3 Unpack being used to
A 1->3 tile can create RGB from a
Example of a 1->3 tile generating three in-
single value. This makes the tree use
dependent constants to control displacement unpack a packed RGB stream
RGB rather than gradient color.
of three objects
Set Constant
A: X B: Y C: Z
Create three independent constant values whose values are determined by parameters A, B and C. The input value
is ignored. The output can be thought of as either three independent values or as a single RGB color.
Set Vector (new)
Scale the input value using parameters A, B and C. Output is A*x, B*x, C*x.
Add (x+A,x+B,x+C) (new)
This component is sometimes referred to as Add Vector. The three outputs are x+A, x+B and x+C. Add Vector can
be useful for adding offsets to the same axis or to move several objects.
3D Derivative (new)
Returns the partial derivatives DX, DY and DZ which are useful for 3D Fields (such as DFRM objects) and 3D
Textures.
Unpack
Unpack a 3D/RGB stream into its component streams. The stream must have been packed with the 3->1 Pack component . Most frequently, this is used with compiled trees: either inside of a compiled tree to unpack RGB values
passed into the compiled tree through a single input or to unpack RGB values passed out of a compiled tree through
a single output. See chapters QuickStart 2 and Getting Deeper for information about packed streams.
RGB Half Plane
A: Amplitude B: Offset C: Color Cycle
This component can be seen as either a simple color shader or a mathematical primitive. When used as a color
shader, it generates a ‘half-plane’ of the color defined by Parameter C. When the offset is 0, the color is generated
- 26 -
REFERENCE: 1->3 Components
wherever the input value times Parameter A is negative; everywhere else is black. There is a smooth transition from
black to the defined color. With non-zero settings of parameter A that are close to 0, the transitional area increases
in size. This transition area may only be visible when zoomed far in or with amplitude values very close to 0. When
Amplitude is 0, the output is the color defined by Parameter C. When A < 0, the color appears on the right. When A >
0, the color appears on the left. Advanced users can use this component to implement complex systems that behave
differently for negative and positive input values.
Half-plane connected directly to the Global X generates a half-plane of the color defined by Color Cycle
When connected to a surface, the result is a virtually two-tone pattern with no intermediate shades except where the input value is very close to 0.
Algorithm. Where x is the input value and A and B are parameters A & B): If (x * A) + B < 0 then output the RGB
value defined by parameter C
RGB Neon Line
A: Red B: Green C: Blue
This is a simple color shader that generates a vertical horizontal line if fed by the global X input or a horizontal line
if fed by the global Y input. The component can also be thought of as a complex filter that outputs its maximum
value (as an RGB color) where the absolute value of its input is 0 and generates increasingly smaller values as the
absolute value of its input increases. When attached to the output of surface, the result is a monochrome image made
up of shades of the color defined by parameters A, B and C.
Main gradient
A: Gradient Scale X B: Gradient Offset
A color shader that translates input values to a color of the main gradient (the current gradient) proportional to the
input value. Where x is the input value and A and B are the values of parameters A and B: (x * A) + B is mapped
to a color of the gradient where 0 is the leftmost color and 8 is the rightmost color. When parameters A (Scale) and
B (Offset) are 1 and 0 respectively, 0 maps to the leftmost color of the gradient and 8 maps to the rightmost color.
Main Gradient is often used to create
trees that mix gradient color and RGB
color.
When the input is a surface, the
result is a surface colored by the
main gradient (just as if the tree
had one output).
- 27 -
REFERENCE: 1->3 Components
Indexed gradient
A: Gradient Scale B: Offset C: Gradient Index
This component is similar to Main Grain but uses parameter C to choose the gradient that is used.
Shaded plain color
A: Red B: Green C: Blue
This component is a simple color shader that maps input value to a shade of the color defined by
parameters A, B, and C or to a shade of its complementary color.
When the input is greater than 0, the value is mapped to the shade of the color defined by parameters
A, B, and C with the brightness increasing with the input value. When the input value is less than 0,
the color is mapped to the complement of the color defined by A, B, and C (and the brightness is the
absolute value of the input value).
RGB gamma
A: Gamma Red B: Gamma Green C: Gamma Blue
Map an value to RGB with independent control of the R, G and B channels’ response curve.
Parameter A Value:
Output of left output of RGB
Gamma when input connected
to Global X
0.125
1.0
2.0
Curve analysis of RGB Gamma
Random Color
A: Col. Variance B: Saturation C: Luminance
Color shader that performs a random mapping of the input value to an RGB color whose saturation and luminance
are determined by parameters B and C. The color range is determined by parameter A. The output is smoothed so
that there are smooth transitions from color to color when the input is continuous.
Hue color
A: Hue Variance B: Saturation C: Luminance
Color shader that maps input to a color defined by the HLS values defined by parameters A, B and C. The saturation
and luminance of the output color are determined by parameters B and C. Parameter A, Hue Variance, is multiplied
with the input value before the being mapped to a hue value. As a result, when Hue Variance is small, this component is not very sensitive to changes in the input value. When Hue Variance is large, the component is very sensitive
to input value changes. The output is periodic.
Color Sines
A: Red freq B: Green freq C: Blue freq
Color shader that maps the input value to an RGB color by applying independent sine functions to the R, G and B
outputs. This can be useful for creating sounds.
- 28 -
1->4 Components
1->4 components are very similar to 1->3 components. There are three primary uses: to map a scalar values (single
value streams) to RGBA, to create four independent values from a single value, to unpack a packed RGBA stream,
to create four constant values. These components are often especially useful for designing elements for ArtMatic
Voyager as they can provide a color texture from elevation map or DFRM object.
In most cases the fourth output either passes out the input value unchanged or provides an alpha channel mask for
the RGB image passed out the first three outputs. Those components that pass the input value through the fourth
output unchanged are useful for creating trees that will be used by ArtMatic Voyager for both the color map and the
elevation map. When passing a surface value into the component, the result is the color shading used to color the
surface (from the first three outputs) and the surface elevation map passed out the fourth output. Those components
that pass out an alpha mask are especially useful for creating images/animation that will be composited with other
images in VTrack or another image editing program. When used in ArtMatic with the RGB Alpha Bump shader, the
result is a texture whose color is provided by the main gradient and whose contours are defined by the texture that
feeds the component.
Set Constant (Updated 6.0)
This component creates three constant values passed out the 1st, 2nd and 3rd outputs. The input value is passed out
the fourth output. This component is convenient for adding a solid color This component is functionally equivalent
to 1->3 Set Constant plus a fourth passthrough channel. Use this component when you need to add a constant color
to a Voyager surface (such as a planet texture or DFRM object). Pass the DFRM object’s output to Set Constant and
define the object’s color with slider’s A-C. This component can also be useful in Voyager for creating video transitions where the fourth output is treated as an alpha channel.
Voyager Tip! When used as the last component of a tree that supplies surface & color to ArtMatic Voyager, the result is a uniformly
colored surface whose elevation map is provided by Set Constant’s
input value.
Params A: X/Red B: Y/Green C: Z/Blue D: Scale Alpha
Scale Alpha (parameter D) scales the input value before it is passed out (the fourth output).
MFD Constant (new)
This component is useful for creating MFD (MicroFacet Distribution) values that are used by ArtMatic Voyager.
This is generally used to feed an ArtMatic extra output that is being used for MFD Shading in Voyager. This component is a true constant. The input is entirely ignored. The difference between MFD Constant and Set Constant is
that Set Constant scales the input and sends it out the fourth output; whereas MFD Constant is a true constant that
ignores the input value entirely.
- 29 -
REFERENCE: 1->4 Components
Set Vector (New)
Create 3 new output values by multiplying the input value with the parameter values and creating respective outputs. The input is passed through the fourth output unchanged. The outputs are X*A, X*B, X*C and X where X is
the input value.
Add [Vector] (x+A, x+B, x+C, x) (new)
Add the values of parameters A, B, and C to the input so that output a is x+A, output b is x+B, and output c is x+C.
The input value is passed unchanged out of the fourth output.
Indexed gradient (new 5.0)
This is the same as the 1->3 counterpart with the additional capability that it passes out the input via the alpha channel. This is useful for applying gradient color to a DFRM object or a planet texture. Pass a DFRM object (or planet
texture) to this component and the output is RGB color derived from an indexed gradient (selected by parameter C)
plus the surface. Great for Voyager RGBA color.
RGBa Neon Line
A: Red B: Green C: Blue
RGB+Alpha implementation of the 1->3 RGB Neon Line. The fourth output is an alpha mask that matches the
contours of the RGB output. This version of the component is useful when you want an alpha channel that provides
a mask so that only the line (or lines in an iterative system) is visible and not the background. This is very handy
when the resulting image or animation will be composited with other images. See the 1->3 Components chapter for
detailed information.
The tree at left is useful for creating transition effects like this exploding
wipe for VTrack. The rightmost image demonstrates the created alpha
(transparency) mask.
RGBa half plane
A: Amplitude B: Offset C: Color Cycle
This component is identical to the 1->3 version except that it also supplies an alpha channel mask out of the fourth
output. See the 1->3 Components chapter for detailed information.
Random Verticals
A: Amount B: Color cycle C: Frequency
Color shader that maps input values to randomly regenrated
RGB values. The fourth output is an alpha mask of the RGB
output. When attached to the global X co-ordinate, the result is
colored vertical stripes interspersed with black. The Amount
parameter determines the stripe ‘density’ while Frequency determines the width of the stripes. Color Cycle determines the
starting color and color range. When Color Cycle is 0, all stripes are black. As the Color Cycle parameter approaches 0, the color saturation approaches 0.
- 30 -
REFERENCE: 1->4 Components
Main Gradient
A: Gradient scale x B: Gradient offset
Map the input value to a color of the current gradient. This component is identical to the 1->3 version of this component except that it passes the input value unchanged through the fourth output. See the 1->3 Components chapter
for detailed information.
Shaded Plain Color
A: Red B: Green C: Blue
RGBA version of the 1->3 component. The input value is passed out through the alpha channel. See the 1->3 Components chapter for detailed information.
RGB Gamma (new)
This is the same as the 1->3 RGB Gamma component with the additional capability that it passes out the input via
the alpha channel.
Random color+alpha
Params A: Color Variation B: Saturation C: Luminance
This component can be used as either a color shader that generates continuous random colors or as a mathematical
primitive that generates four independent continuous random numbers. If you need four independent random numbers, this component is more efficient than using 4 1->1 random functions.
Hue Color
A: Hue Variance B: Saturation C: Luminance
Identical to the 1->3 component with the addition that it passes the input value out of the fourth output. See the 1->3
Components chapter for detailed information.
RGBa Sin X
A: Frequency B: Amplitude C: Color Cycle
RGB+Alpha implementation of the sine function. The fourth output is sin x. The input value is mapped to a color of
constant hue whose brightness varies with the input value.
Sound Generators
These components are useful for creating sounds.
SOUND MODE EXAMPLE
This tree (one of the Master LFO examples provided with ArtMatic Pro) demonstrates how to
use Shift Harmonics and Scaled Harmonics to create a repeating sequence. The right branch of
the tree provides note envelopes when the Master Input Mode (of the Global Input Matrix) is
set to Time & Cycles.
- 31 -
REFERENCE: 1->4 Components
Shifted Harmonics
A: Freq. B: Amplitude C: Harmonic offset
This component is mostly used in Sound mode. It can also be used as a color shader. Frequency determines the
harmonic pitch. Amplitude determines the pixel brightness/ sound volume. When Harmonic Offset is 0, the output
is the reference pitch plus the first three harmonics. When Harmonic Offset is non-zero the same offset is added to
the frequency of each harmonic resulting in unusual harmonic relationships (since the harmonics are shifted by a
constant frequency rather than a multiplier).
Scaled Harmonics
Params: A: Freq. B: Har. Spacing C: Har. offset
This component is mostly in Sound mode. It can also be used as a color shader. It generates a reference pitch plus
three harmonics. When the spacing and offset are set to the minimum values, the result is the reference pitch plus
the first three harmonics of the harmonic series. Increasing the spacing, increases the spacing of the harmonics and
harmonic offset shifts the harmonics.
Miscellaneous Components
Unpack
Unpack an RGB+Alpha stream into its constituent parts. Use this component when you need to access the values
being passed in a packed stream.
- 32 -
2->1 Components: 2D Scalar Functions
These components perform a variety of functions. They are often used to mix the output of two separate components
(or branches) or to provide a surface or texture when fed by the values coming from a single two-output component.
An essential in-depth discussion of function categories is found in the Getting Deeper chapter and is recommended
reading for everyone.
DFRM. Some of these components, such as Profiles Shapes, are valuable for creating 3D objects to be rendered with
ArtMatic Voyager.
Ax + By + C
A: Scale X B: Scale Y C: Add
This component is useful both as a mixing component that mixes the output of two separate components and as a
surface generator which can generate a tilted plane. If the inputs come from separate components, it mixes their
outputs with the scale parameters determining the relative contribution of the left and right inputs. If the inputs are
the points of a plane (such as when it is the first component in a system) then this component effectively tilts the
plane where A and B provide the tilt or rotation and C acts as a zoom. This is essentially a plane equation. This component can also be used to generate gradients such as the one pictured in its icon. Updated with parameter options
in ArtMatic 5.
Formula: Ax + By + C
Interpolate
A: Interpolate
This component mixes two incoming components/branches by interpolating between the incoming values. This
component 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 Interpolate parameter (A) determines the
relative mix of the two incoming branches. When the parameter is set to the minimum, the output is the left-hand
input. When the parameter is set to its maximum value, 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.
Output of the Circles com-
Output of the Grid compo-
Interpolation of the Circles
ponent.
nent.
and Grid components.
Line
A: Angle B: Amplitude C: Width
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. The surface that is
generated is an infinite single saw shape and therefore has a height unlike the heightless lines of Euclidean geometry. Values beyond the “saw” are zero. The saw height is defined by parameter B.
- 33 -
COMPONENT REFERENCE: 2->1 Components
Gaussian Dot
A: Amplitude B: Size
Gaussian Dot is a basic building block that generates its maximum value at the origin (x = 0, y = 0) and whose 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.
Example: The example file “DC Double Affinity feedback” uses Gaussian Dot as the main component of the compiled tree at the heart of the system.
Profile Shapes (renamed and expanded 6.0)
Formerly called Lozenge. This component provides a large number of shape primitives. Use the algorithm popup to
choose the shape. The parameter names may change with the shape and are self-explanatory. Most of the algorithms
create shapes that rise to a peak at the origin (the center of the canvas).
The original algorithm, “Lozenge”, is a simple four-sided pyramidal surface. As with Gaussian Dot, this component
reaches the maximum value at the origin (0,0) and has an output value of 0 beyone its base (where input X exceeds
Width (B) and Y goes beyond Height (C).) Lozenge and the other basic polygon algorithms can be used in many
of the same situations as Gaussian Dot. The Lozenge shape has frequently been used as a primitive in recursive
compiled trees. For instance, it can be used in place of the Gaussian Dot found in the example “DC Double Affinity
feedback”.
Profile Shapes are useful for 2D images to create decorative shapes or masks. The “Profile deco pattern” and “Profile textured flower” files are examples of decorative use.
ArtMatic Voyager. Many of these algorithms are especially useful for creating architectural objects for 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 3->2 Revolution & Sweeps and Profile Shapes can create thousands of
object shapes.
Example files: See the many examples in examples library. Look for the word “profile” in the title.
This Roman-style church makes use of several Profile Shapes instances.
- 34 -
COMPONENT REFERENCE: 2->1 Components
Using Profile Shapes
to
C r e at e 3 D O b j e c t s
There are three basic methods for creating 3D objects based on Profile Shapes: the intersection method, the 2D
sweep method, and the 3D sweep method.
Intersection Method
An object is created by intersecting two profile shapes that are set up on orthogonal sets of axes. In the tree below,
there are two Profile Shapes. One is on the xy plane (the oZ plane) and the other on the yz plane (oX plane). Explore
2->1 Logic Tools’ Min & Blend (intersection) algorithm as well as the Intersect with -abs(y) algorithm. You can intersect a Profile Shape with -abs(z)
to make it a finite shape
with a tree such as this
one
This slightly more complex tree provides additional flexibility and
provides color to the
intersecting profile shapes
Example file: The file Profile Intersection.vy uses the intersection of an octagon and a horseshoe arch.
2D Sweep Method
The sweep method takes a shape in the XY plane (vertical plane) and sweeps it along a 2D path in the XZ plane
(horizontal plane). The 3->2 Revolution & Sweeps component provides many paths, including a basic circular
sweep.
You can easily build custom paths by merging various sweeps or by using a Profile Shape connected to global inputs
x and z.
Example files. See PathBlend.vy animate a path created by blending an octagonal path with a pentagonal “N-Folded”
framed box. BooleanPath Building.vy creates a path by combining Profile Shapes with boolean operations. 3D Sweep Method
The 3D sweeps use a 3D path to sweep the shape. The 3D path can be created by combining to 2D paths in different
planes. Very complex objects and shapes can be created with this method though it can be more difficult to visualize
the result.
The CrossProfile D example creates a 3D path by treating a Profile Shape with 3->2 Parallel Projection. Path Z
Morph 31 and Path Profile z Morph34 demonstrate more useful 3D Sweep techniques.
Logic Path Morph 31 is another example of a complex 3D path fed to a single profile shape. The path is built by
morphing in y two different settings of a Logic Tools “Edged Intersection”. The “Edged Intersect” created the towers at the edges of the volume:
- 35 -
COMPONENT REFERENCE: 2->1 Components
Using negative values. 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.
Profile
algorithms
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.
Basic Regular Polygons: Lozenge (the original shape), Triangle, Rectangle, Pentagon, Hexagon, Octagon - the width
and height parameters stretch the space to create irregular polygons. The triangle through disc algorithms feature
these parameter options: growth up only, growth up & down, growth down. The options determine how changes in
height influence the shape.
Arches: Arcade, Disc, Gothic Arch, Persian Arch, Horseshoe Arch, Pointed Horseshoe Arch, Trefoil Arch. These
are useful for architectural design.
Arches illustrated: Arcade,Persian Arch,Trefoil Arch
Columns. A series of columns useful for architecture: Column concave, Column classic, Column greek iy-, Column
- 36 -
COMPONENT REFERENCE: 2->1 Components
Scifi iy-.
Various columns illustrated
Various Architectural Details
Stairs, Pointed Dome and saucer profiles
Various wall profiles
- 37 -
COMPONENT REFERENCE: 2->1 Components
Chinese roof, russian dome and framed box profiles
Various architectural detail algorithms:
• Stairs 4 iy• Stairs inf ixy• Finite and infinite stair patterns. Infinite stairs’ height sets the step height. The top of the staircase is at y=0. The
infinite version is often used for platforms on which constructions are built.
• Dome
• Pointed Dome
• Dome Russian
• Power Dome - useful for parabolic roofs and arches
• Roof A ix• Roof B ix• Saucer
• Wall classic
• Wall classic roof 30
• Wall classic roof 45
• Wall stones
• Chinese Roof & wall
• Framed Box
Parameter Options: Wall classic through Framed box feature the following parameter options: infinity in x-, default
(mirror x+), infinite in x- and yMath Utils # (New Algorithms)
A: Algorithm Selector
Formerly Math Utils. This is a math primitive for advanced users. This component performs the mathematical
operation determined by Parameter A. Parameter A should not be animated as it determines what operation this
component performs. When you move the parameter slider, the Tool Tips region displays the operation that corresponds to the slider value. Some of these functions have equivalent components with more parameters. The Math
Utils implementation of such functions is fastest and should be used where speed is important. (The algorithms with
#s greater than 14 were added in version 4.6.)
0:
1:
2:
3:
x-y
y-x
y*x
x/y. Warning : this generates infinity wheny is zero
- 38 -
COMPONENT REFERENCE: 2->1 Components
4: y/x. Warning : this generates infinity when x is zero
5: atan(y/x). Angle of x,y with OX in -0.5π + 0.5π
6: atan(x/y). Angle of x,y with OY in -0.5π + 0.5π
7: angle(x,y). atan(y/x) but scales the result to go from O-2π
8: dist(x,y). Euclidian distance
9: 1/dist(x,y). Inverse of euclidian distance, goes to infinity at zero
10: 0.5/(dist(x,y)+1/16). Inverse of euclidian distance but scaled so that it ranges 0-8
11: blend y on low. A procedural blend that blends y with x when x is low
12: blend y on high. A procedural blend that blends y with x when x is high
13: blend x*y on low. A procedural blend that blends x*y with x when x is low
14: blend x*y on high. A procedural blend that blends x*y with x when x is high
15: min( 4-|x|, 4-|y| ). A function that creates a pyramid whose sides vanish to infinity.
16: roofed min( 4-|x|, 4-|y| ). A function that creates a plateau with a pyramid base. This is a useful function for placing a particular element (such as a tree or a road) in ArtMatic Voyager.
17: positive mul. A fast procedural multiplication takes positive values only. The algorithm is MAX(x,O)*MAX(y,O)
18: min . A min function without smoothing that computes much faster than the minmax component.
19: max . A max function without smoothing that computes much faster than the minmax component.
The following algorithms are very fast operations that can be used like boolean operators
20: max+x . Algorithm MAX(x,y)+x
21:max-x. Algorithm MAX(x,y)-x
22:max-y. Algorithm MAX(x,y)-y
23: min+x. Algorithm MIN(x,y)+x
24: min+y. Algorithm MIN(x,y)+y
Added ArtMatic 5:
25: morph log (e^x + e^y). This is a morphing algorithm. Its equation is: log(exp(x) + exp(y)). The result is a smooth
blending of two functions when their values are close but works like a maximum function when the values are far
apart.
25: smooth max. A version of maximum with a fixed smoothing ratio that is useful in recursive/iterative compiled
trees. Unlike the normal maximum algorithm, smooth max adjusts the smoothing to the iteration level of compiled
trees in order to avoid small scale elements being smoothed too much. This is often used in recursive compiled trees
used to generate trees and vegetation for ArtMatic Voyager.
27: power x^y. Raise input value x to the power of input value y.
28: iteration scale x/y^i. This algorithm (see illustration below) is critical for creating iterative fractal-like structures,
including branching plants. Iteration Scale performs scaling is inverted with respect to the number of iterations
of the loop which contains it. It is useful for iterative fractals where space needs to inverse scaled with respect to
the number of iterations. It is especially useful for creating DFRM fields where the field amplitude needs to be
inverse-scaled with respect to the space. Most of the iterated DFRM fractals and iterative tree examples provided
with ArtMatic Voyager make use of this component. See the “iter tree” series of examples and the “Fractales 3D”
examples found in the ArtMatic Voyager 2.0 Examples folder.
29: x*x*log(x)/y
- 39 -
COMPONENT REFERENCE: 2->1 Components
Iteration Scale
The iteration scale algorithm is critical for creating iterated DFRM objects.
This tree shows the typical usage of Math Tools>Iteration Scale
The table below demonstrates how the use of iteration scale can be used to have elements (such
as spacing and size) change in relation to the number of iterations.
Iteration #
0
Example
2
3
- 40 -
COMPONENT REFERENCE: 2->1 Components
Iteration #
6
Example
Multiply (x+A)*(y+B)
A: Offset x B: Offset y
Multiply the inputs and send 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.
Multipy is useful for creating masks since multiplying by 0 has a result of zero.
Formula: (x+A)*(y+B)
Distance
A: Offset x B: Offset y C: Amplitude
Calculate the Euclidean distance. 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. Formula:
Distance Squared
Similar to the Distance function, but the square root is not computed. Hence, it runs twice as fast as the true classical
Distance. This is a very valuable primitive and can often be used in place of the Distance function where maximum
performance is required.
Elevation Shapes # (renamed 6.0)
A: Shape Type B: Radius C: Amplitude
Formerly Shapes #. This component can create a variety of basic shapes. It has many
uses and is very useful for creating terrains in ArtMatic Voyager. The algorithms popup
menu or Parameter A may be used to determine 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
- 41 -
COMPONENT REFERENCE: 2->1 Components
which can be useful when using it with ArtMatic Voyager.
Distance*(x + y)
A: Offset B: Amplitude
This component provides shadow-like effects, and its value approaches 0 the further one gets from the origin (0, 0).
Formula: B(x+y) (e-A(x2 + y2))
Radial
A: Frequency
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.
Min Max
A: Amplitude B: Min to Max C: Smoothing
MinMax can be used as a mixer to combine two surfaces (outputs of two independent components as shown in the
example). The two surfaces appear to be opaque unlike most of the other mixing components which tend to merge
the inputs. The apparent opacity is the result of the fact that MinMax is a procedural function that uses the minimum
and the maximum of the two incoming values rather than merging the values. When parameter B is at its minimum
value, the output is the minimum value of the two inputs. When the parameter slider is at its maximum value, the
component outputs the maximum of the two values. Other values of parameter B generate an interpolation of the
minimum and the maximum (at the midpoint it is the average of the two values). Parameter A is a multiplier which
is applied to the result. The Smoothing parameter controls the continuity of the transition between the two inputs.
Uses: Min<>Max tends to be used as a mixer since it selectively chooses values from one input or the other rather
than combining the values. Notice the difference between the two images below. Both images mix the output from
Grid with the output from Ripples.
Ex. 1: Note the ripples appear to be in front
of the grid.
Structure used
to create ex. 1.
Ex. 2: Image that results when Ax+By+C is
used in place of MIN/MAX. Note that the
images appear to be merged.
When this function is used as a surface
generator (i.e. when its input is a space), the
result tends to be edges and V-type contours
such as in the example at left.
Min + Max
Min + Max chooses between the incoming values. It is a procedural function that chooses either the minimum or the
maximum value of the two inputs, depending on the sign of the second input (y). When the second input is positive
- 42 -
COMPONENT REFERENCE: 2->1 Components
the maximum value is output. When the second input is negative, the minimum value is output. The component’s
icon is the image which results when the raw points of the plane are fed into the component. When the inputs are
two surfaces, you can get very interesting masking effects where the surfaces intersect. The effects are especially
interesting when the second input has both positive and negative values. Like MinMax, this component is usually
used to mix two independent surfaces rather than to generate a surface.
You can create a searchlight effect by
animating the Distance component’s offset
parameters.
In the example above, the Distance component’s amplitude parameter is set to -4 which results in a dome-like surface that approaches infinity at the center and turns negative at the edges. In the resulting image, notice how the
grid’s coloration is opposite inside and outside of the dome.
Logic Tools # (vastly updated and renamed)
Logic Tools provides a number of algorithms useful for combining surfaces and objects in a variety of complex and
interesting ways using a variety of logic operations. It is useful for both ArtMatic and ArtMatic Voyager elements. It
is especially useful for morphing and combining DFRM fields. When parameter B is less than 1, both inputs influence the shape. When Parameter B =1, the output is the strict operation (such as the union or intersection).
Algorithms:
• Max(x,x*A+y). This was the original Add Max algorithm. Returns the maximum of x and y+ (x*A) + B. You
can think of it as bending the right-hand input (y) to follow the left-hand input (x) before the Maximum of both is
returned. When parameter A (“x weight”) is zero, this component behaves as a simple maximum function. When
A (“x weight”) is 1, the component performs a simple addition. Parameter B provides an offset that increases the
elevation of y before the Maximum is taken.This function is especially useful for designing systems for ArtMatic
Voyager where it can be used to limit certain surface features (such as stone clusters) to certain elevations. Practically, it allows one component to be made sensitive to another component.
Stone clusters added to mountains using the straight Max function ( X weight set
to 0). Notice that they end abruptly.
Stone clusters added to mountains using Add Max with an ‘x weight’ of 0.8. Notice how the stone clusters slowly disappear.
The graph at left illustrates the function.
Example file: The example file MAXAdd curve Anim shows a cool graphic animation of a blend from MAX to ADD.
- 43 -
COMPONENT REFERENCE: 2->1 Components
• Max & Blend (union). This is a blend of Max(x,y) and Blend(x,y,a) where a is parameter A. Parameter B controls
the mixing of the Max and Blend values. When B is 1, the output is the strict Maximum of x and y. When B is 0,
the output is the Blend(x,y,a) output. The Blend output is not a strict interpolation of the x and y inputs. The value
of the x-input acts to limit the value to keep the output from going to infinity. This is useful for DFRM optimization in cases where the tree results in the distance estimate being too small (which makes rendering take too long).
For instance, blending two fields sometimes results in a field that approaches -infinity too slowly which can cause
ArtMatic Voyager to spend extra time to find the true object boundary. This happens when merging a sphere and
an infinite cylinder with a straight interpolate. When using Logic Tools, use the x-input for the finite shape and the
y-input for the shape that is infinite in one or more directions. See the Voyager example file Max & Blend Inf H
Tube.vy where an infinite hair tube is blended with a sphere.
• Min & Blend (intersection). This algorithm is equivalent to a blend between min(x,y) & blend (x,y,a). If parameter
B is 1, the result is min(x,y). With parameter B at 0, the result is a straight interpolation.
• Intersect with y+. This algo effectively cuts off the object where y is negative.
• Intersect with y-. This algorithm cuts off the object where y is positive.
• intersect with -abs(y). This algorithm essentially flattens the x-input object with the y-input. For example, a sphere
intersected with a horizontal plate will squashed into a disk.
• Reversed Max Abs (Manhattan dist). The Manhattan distance is defined as max( |x|,|y|).This component creates an
interesting intersection where one object cuts the other. It may require some adjustment of the object sizes as well
as parameters A and C.
Reversed Max Abs with a sphere in x and cube in y. The cube needs to be large enough
to intersect. If the sizes are too different, you may end up with only the x object or
nothing!
• Reversed Min Abs (contours).
Reversed Min Abs with a sphere and cube as inputs.
• Median. Median is defined as the average of the min and the max. When DFRM objects are the inputs, it is a blend
between the union and the intersection of the two objects.
Median
• Min(x,-y) & Blend (subtract y). This algorithm creates interesting combinations of the inputs. When used with
DFRM objects,, it removes part of one object and adds part of the other. This is equivalent to using a Min(-x,y) tile
- 44 -
COMPONENT REFERENCE: 2->1 Components
and a Blend (subtract x) tile but much faster.
Min(x,-y) & Blend (subtract y).
• Min(-x,y) & Blend (subtract x).
Min(-x,y) & Blend (subtract x)
• Repulsive Union. When used to combine DFRM objects, the effect is for the second input to repel the first input
at the point of intersection. Parameter A (repulsion) set the intensity of the repulsion. Parameter B (spread) sets the
size of the intersecting region. Smoothing smooths the union of the input fields before applying the morph.
Repulsive Union Illustrated
Input 1: Sphere
Input 2: Cube
Spread Min
Spread MID
Repulsion Min
Repulsion Mid
Repulsion Max
- 45 -
Spread Max
COMPONENT REFERENCE: 2->1 Components
• Ripple Union. Similar to Repulsive Union. Ripples are created where the objects intersect. Parameter B (Spread
%), sets the frequency and the size of the intersecting region. The maximum ripple effect is at the intersection. Parameter C (Smoothing) smooths the morphed object with a union of the input fields.
Ripple Union Illustrated
Input 1: Sphere
Spread Min
Spread MID
Spread Max
Input 2: Cube
Repulsion Min
Repulsion Mid
Repulsion Max
Repulsion Max with Max
Smoothing
• Sym Ripple Union.
• Ripple Subtract
• Framed Subtract. Subtract input B from A but leave a frame around the cut (where it transitions to negative values)
with the frame thickness determined by the Border Thickness parameter. The Border Spread parameter determines
the border width.
• Partial Subtract. Partially subtract B from A. This mostly subtracts B’s outline from A leaving a core with A’s
contour.
• Edged Subtract. Subtract B from A and create a border at the edges of the resulting volume. Parameter B, called
NE Level, controls the level of the non-edge border part of the created volume. At its maximum, it will leave just
- 46 -
COMPONENT REFERENCE: 2->1 Components
the edges.
Edged Intersect. Create an object at the intersection of A and B with an edge. Parameter B acts as the Non-Edge
Level control as in the previous algorithm..
Difference
A: Amplitude
Difference calculates the absolute value of the difference of the two inputs. This is the same as Photoshop’s difference mode.
Grid
A: Scale x B: Scale y C: Amplitude
This component generates a grid pattern when it is fed the points of the plane. 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.
Grids # (updated and renamed)
Formerly, Hexa Grid. This component generates grid-like patterns. The algorithm popup provides a number of grid
types. The underlying math now ensures that the frequency scaling matches the other tile components.(This was not
true prior to ArtMatic 6.0). The parameter options allow you to enable negative values as they are required when
creating DFRM objects.
Examples. See the Tiling Folder example “Tiles Sizes Match” to see how various tilings, mirror spaces and grids
can be used together.
Algorithms:
•
•
•
•
•
•
•
•
Unit square grid
Square 45º grid. The scaling matches Unit Square grid but has been rotated 45 degrees.
Unit Hexagons & triangles. The original Hexa Grid algorithm.
Hexgons & triangles grid
Triangles grid
Lozenges grid
Hexagons dual grid
Hexagons grid
Hexagons
A: Amplitude B: Phase C: Frequency
Hexagons is typically used as a surface generator which creates a lattice of hexagons. The amplitude parameter acts
as a contrast control while phase and frequency control the lattice’s offset and spacing. This component can also
yield interesting results when used as a mixer.
Hexa sines
A: Amplitude
This component is similar to Sin x + Sin y performed on a hexagonal grid.
Sin x + Sin y
A: Frequency B: Phase x C: Phase y
This component generates an egg-crate like surface when given undistorted space as its input. The frequency parameter controls the size of the surface’s ‘cells’ and the phase parameters shift the pattern vertically and horizontally.
- 47 -
COMPONENT REFERENCE: 2->1 Components
Formula: Sin x + Sin y
Sin x * Sin y
A: Amplitude B: Phase x C: Phase y
The output of Sin x * Sin y is similar to that of the sin x + sin y though it has more of a checkerboard effect on a raw
plane. Amplitude effects the steepness/color contour of the cell walls.
Formula: Sin x * Sin y
Circles
A: Frequency B: Size C: Power
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.
x + A Sin y
A: Amplitude B: Frequency
This component has a distortion effect and can have a wave or interference pattern-like effect when receiving the
output from two independent scalar functions.
Random cones
A: Amplitude B: Bubble size C: Frequency
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. This component involves fairly intensive calculations and can be a bit slow.
Star Field
A: Amplitude B: Phase C: Frequency
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.
Ripples
A: Ripples # B: Size C: Frequency
Ripples generates a pattern of tiled ripples when given a plane as the input. The ripples # parameter determines the
number of concentric rings per tile. The size parameter determines the basic shape of the ripples. The frequency
parameter determines the spacing of the ripple tiles.
Facet
A: Frequency B: Amplitude C: Phase
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.
- 48 -
COMPONENT REFERENCE: 2->1 Components
Techno
A: Frequency B: Phase C: Power
Techno recursively distributes differently-sized pyramids across the plane. The pyramids’ base sizes differ but all
have the same height. Frequency determines the size/spacing of the pyramids. Phase provides a horizontal offset.
Power influences the pyramid height/contrast. The effect is like an aerial photograph of pyramids or city blocks.
This component is generally used as a surface generator rather than as a mixer.
Example files: Many of the ArtMatic Pro sample files use this component. Search for ‘techno’ to find some notable
examples.
Tech Noise
A: Noise Pattern B: Amplitude C: Frequency
This noise component creates a variety of “techno” patterns that can be useful for creating decorative patterns and
also for designing ArtMatic Voyager cities. 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. Available patterns are: City Blocks, Mondrian, Signs, Techno Grid, Techno Maze, Techno, Sparse Rects, Techno Coral,
Building, Building B, Computer Dots, Street Network, Street Mask, Patchwork City C, Alien City A, Alien City B,
High Rise City, Random High Rise, Tech Lines, Tech Marks.
ArtMatic Texture
The Street Mask pattern can be used to impose the city
Simple ArtMatic Voyager landscape
structure on another component.
Street Network notes. 2->1 Tech Noise and 2->4 Tech Noise share patterns that create cities with the same street
network , All of the cities created by these components use the same street network. The street network and street
network mask patterns have the “pure” versions of the street network and can be used by advanced users to create
interesting cities. Street network provides a map of streets with sidewalks and buildings of various heights. The
street level values are well below zero, the sidewalks are at 0, and the buildings have elevations above 0. Street Mask
has positive values at street level and 0 for the city blocks.
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.
Pyramids
A: Amplitude B: Phase C: Frequency
Pyramids is a surface generation component very similar to Techno. The primary difference between the two is that
the pyramid height is proportional to the base size.
- 49 -
COMPONENT REFERENCE: 2->1 Components
Smooth Entrelas
A: Amplitude B: Phase C: Frequency
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.
Example files: “Bio Electronica” and “Entrelas z wipe” both use this component.
Circuitry
A: Amplitude B: Phase C: Frequency
This procedural component creates a randomized pattern that juxtaposes several predefined patterns. A typical pattern is shown at left.Example files: “Fractal Trek” uses this texture in a recursive
fractal voyage.
ZigZag
A: Amplitude B: Phase C: Frequency
This procedural component creates a randomized pattern that juxtaposes several predefined patterns. A typical pattern is shown at left.
Maze
A: Amplitude B: Style C: Frequency
Maze is a texture function that creates maze patterns. Parameter B (Style) determines the maze pattern.
Lightning
A: Amplitude B: Angle C: Offset
Lightning is a texture function that creates lightning-like patterns of intersecting lines. Lightning can
be used in ArtMatic Voyager to provide the structure of a river canyon system.
- 50 -
COMPONENT REFERENCE: 2->1 Components
Dynamo
A: Rotation B: Phase x C: Phase y
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.
Zebra noise
A: Amplitude B: Thickness C: Frequency
This component generates a zebra stripe pattern. The Amplitude influences the lines’ waviness. Thickness determines the lines’ thickness and frequency determines the stripe spacing.
Craters
A: Amplitude B: Phase C: Frequency
Craters is a texture function generally used to create realistic craters when creating planet-like objects. The example
files include many simulated moons whose surfaces are covered with craters.
Pict/Movie
A: Size B: Contrast C: Tiling
This component lets you insert a picture file or movie into an ArtMatic system. 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 center view button.)
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 2->1 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. There are several variations of the Pict/Movie component all of which are
covered in depth in the chapter Using Pictures and Movies.
Example Files: Many examples have been provided in the library.
Pict/Movie Sym Tiled
A: Size B: Contrast
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.
Blurred Pict/Movie
A: Size B: Contrast C: Blur
This variation of the Pict/Movie component creates a blurred version of the input movie/pict. This component is
usually used in systems along with a parallel unblurred Pict/Movie tile. By combining the blurred and straight
versions of the input source, beautiful halo, chrome and other effects can be created. For more information, see the
chapter Using Pictures and Movies.
Example files: “Fire chrome” & “Light halo” are great examples which demonstrate how to use this component.
- 51 -
COMPONENT REFERENCE: 2->1 Components
Random Squares
A: Scale X B: Scale Y C: Amplitude
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.
Random Noise
A: Amplitude B: Phase C: Frequency
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.
Low freq noise
A: Amplitude B: Frequency C: Phase
This is another flavor of random noise that is great for creating smoothly changing textures. The
output is weighted towards lower values.
Perlin noise
A: Amplitude B: Level C: Frequency
Perlin noise is another special flavor of 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.
Adaptive, Band-Limited Noise Functions
The next group of noise 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 deteremined by
the zoom level and the fractal iterations preference. By being adaptive, the functions can deliver maximum detail at
any zoom level. NOTE: With very high zoom levels, you may need to increase the Maximum Iterations for Fractals
setting in the Preferences dialog.
Multi Perlin Noise
A: Amplitude B: Octaves C: Frequency
This component creates rich, layered Perlin noise by adding ‘octaves’ of Perlin noise with each octave having twice
the frequency of the previous one. When the octaves parameter B is at its maximum (128 which is 27) there are seven “octaves” or layers of noise. 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).
Multi-Perlin
Multi-Perlin Noise with octaves set to 64.
noise with
octaves at the
minimum
- 52 -
COMPONENT REFERENCE: 2->1 Components
Multi Perlin Noise with 4 octaves (B = 16) as seen in ArtMatic and also ArtMatic Voyager.
Bump noise
A: Amplitude B: Phase C: Frequency
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.
Fractal Noise
A: Amplitude B: Phase C: Frequency D: Roughness
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) added in ArtMatic 6.
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.
MultiFractal Noise (Updated 6.0)
A: Amplitude B: Phase C: Frequency D: Roughness
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) added in
ArtMatic 6.
Ridged Fractal Noise
A: Amplitude B: Smoothing C: Frequency
This component is especially useful for creating terrain textured with ridges. This fractal function was designed by
Ken Musgrave and is a good approximation of ridged mountains where the fractal dimension is smoother in valleys
than elsewhere. This noise function generates positive values only. Ridged Fractal noise composed of 2D Ridged
- 53 -
COMPONENT REFERENCE: 2->1 Components
Perlin noise (1-abs(n)).
Normal perlin noise profile Ridged perlin noise profile
The smoothing parameter determines the roughness of the ridged texture as demonstrated in the following illustrations:
Landscape created with maximum smoothing.
The same landscape with smoothing set to the minimum value.
Mountain Ranges
A: Amplitude B: Roughness C: Frequency
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 Multifractal Noise for high frequency content. The result is a rich natural
terrain that is more realistic than pure Ridged Fractal Noise.
Fractal noises # (updated)
A: Amplitude B: Phase C: Frequency D: Roughness
Formerly Crystal Noise. This component supplies a number of fractal and terrain textures.
Algorithms: Crystal Noise (original algorithm), Orthoquintic noise, Orthoquintic alveolic noise, Orthoquintic MF
Noise, Fibrous Noise A, Fibrous Noise B, Fibrous MF Noise, River world MF noise
The orthoquintic noise algorithms use Quintic interpolated random noise and its derivative. The fibrous noise series
uses cubic interpolated random noise and its derivative. It is hard to describe. River world MF noise provides some
interesting river shapes that make it useful for designing ArtMatic Voyager terrains.
The Crystal Noise algorithm (the original) has sharp edges and is useful both as a surface/texture generator (i.e.
when the input is space) or as a mixer. Follow this component with Derivative to bring out the sharp edges. This
component is a good primitive for mountains or torn paper or granite-like textures. (Tech. note: this function sums
several non-continuous 2D random noise functions using triangular lattice linear interpolation). This function only
generates values above 0. Example: See “Crystal Noise z wipe” for a great use of this noise function to create a torn
paper type effect.
- 54 -
COMPONENT REFERENCE: 2->1 Components
Crystal Noise used to mix a Grid and Ripples
Crystal Noise used in a simplified version of the “Crystal Noise z wipe” example.
Notice that the noise provides the ‘holes’ in the picture of the U&I logo
As seen in ArtMatic
Crystal Noise with an amplitude of 7.3 as seen in ArtMatic Voyager
When creating terrains for ArtMatic Voyager, Crystal Noise is often used with a displacement component above it
when sharp changes of slope are desired.
Eroded Fractal
A: Amplitude B: Erosion Level C: Frequency
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 at left is an
image of an Eroded Fractal terrain as seen in ArtMatic Voyager.
Sparse Fractal Rocks
A: Amplitude B: Spareseness C: Frequency
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.
Sparsely spaced fractal rocks Less sparsely spaced rocks.
- 55 -
COMPONENT REFERENCE: 2->1 Components
Stone Clusters
A: Amplitude B: Phase C: Frequency
Clusters of stones with varying stone sizes and amount. This component is great for creating clusters of variously-sized stones for ArtMatic Voyager.
Lunar Rocks
A: Amplitude B: Phase C: Frequency
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.
Bubble Rocks
A: Amplitude B: Phase C: Frequency
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.
Stratified Rocks
A: Amplitude B: Phase C: Frequency
A skewed and quasi-orthogonal fractal noise function great for creating stratified ArtMatic Voyager terrains.
- 56 -
COMPONENT REFERENCE: 2->1 Components
Ridged Noise
A: Amplitude B: Octaves C: Frequency
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. Each successive octave is at a higher frequency with a lower amplitude.
As seen in ArtMatic
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:
As seen in ArtMatic
Ridged Noise with about octaves=128 and negative amplitude
Cellular
A: Amplitude B: Phase C: Frequency
This component creates a Voronoi cellular 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:
Bubbles
A: Amplitude B: Bubble size C: Frequency
Bubbles is almost the inverse of Random cones. It generates a surface of randomly placed spherical holes. A negative
amplitude value turns the holes into conical bumps. This component’s calculations are faster than random cones.
Bubble Texture as seen in ArtMatic Voyager when amplitude is negative
Fractal Lines
A: Amplitude B: Phase C: Frequency
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.
- 57 -
COMPONENT REFERENCE: 2->1 Components
Open Compiled Tree
A: Scale B: Iterations
Choose this component to use a 2->1 compiled tree. Compiled trees are groups of tiles that can be used in place of
single tiles as a kind of macro or subroutine. Compiled Trees and their parameters are covered in detail in the Compiled Trees chapter of this manual.
- 58 -
2->2 Components: 2D Vector Functions
These functions are often used to distort or remap space. Remapping and distorting space causes the output of any components below the distortion to be warped and distorted.
A good way to see what effect these functions have on a system is
to use a basic structure where a 2D Vector function distorts a picture (in this case an image of the U&I logo on a grid).
Undistorted system
Skew distorted system
Some of these components can also act as two parallel 1D filters.
An essential in-depth discussion of function categories is found in
the Getting Deeper chapter and is recommended reading for everyone.
Skew
A: Skew Angle B: Skew Amount C: Scale
Skew skews the incoming space. The skew angle parameter determines the angle of the skewing.
Skew amount influences the amount of skewing, and scale zooms the space.
Scale Ax, By
A: Scale x B: Scale y
This simple primitive scales the two inputs independently. The scale parameters have a greater range than the similar Scale and Offset function. Note that the x output is solely a function off the x input, and the y output is solely a
function of the y input, Hence, this component can be used as either a space transform function OR as two parallel
1D filters. When used as a space transform, this component acts as a magnification function.
Left output: A* x
Right output: B * x
Scale and Offset
A: Scale B: Offset x C: Offset y
The Scale component simply scales the incoming space (by multiplying the x and y coordinates by the same factor)
and allows it to be offset horizontally ( the Offset x parameter) and/or vertically (the Offset y parameter). Note that a
scale value of -1 inverts the space. Since the x output is a function of the x input and is not influenced by the y input,
this component can be used as two parallel 1D filters.
Left output: (A * x) + B Right output: (A * x) + C
Rotate A
A: Angle B: Center x C: Center y
Rotate space about a point. The angle parameter is the angle of rotation. center x and center y set the point about
which the space is rotated. The default center is 0,0. If the canvas has been shifted left or right, you may want to
assign the center parameters to the values of the canvas center, if possible, when animating using this component.
Tip: When this component is added to a system using the Insert popup menu’s Insert Global Rotation command, the
center parameters are automatically set to the system’s center values (as displayed in the Camera Path dialog).
- 59 -
COMPONENT REFERENCE: 2->2 Components
Normalise (new)
This is a mathematical primitive that normalizes the input coordinates. This component is useful for those with a
deep understanding of CGI computation. If you aren’t sure what this means, you probably don’t need this component.
x + A sin y, y + A sin x
A: Amplitude B: Frequency
Distort space using sine waves. When the amplitude is 0, space is not distorted. A great variety of space distortions
and patterns can be generated by adjusting the amplitude and frequency as demonstrated by the following pictures.
When this component precedes 2->1 Ax+By+C, the effect is an egg crate effect as shown below:
Left (x) output equation: x + A sin y
Right (y) output equation: y + A sin x
Waves
A: Frequency B: Amplitude x C: Amplitude y
This component bends space giving it a “waved” aspect. The distortion is created using the absolute
value of the sine function. Frequency determines the spacing of the undulations. The amplitude
parameters determine the amount of horizontal and distortion.
Sin warp
A: Amplitude B: Frequency
This component is very similar to the x*A sin y/y*A sin x component and bends space with waves or an eggcrate-like
effect.
Orthogonal Mirror Tiles
A: Scale B: Scale Y
The input space is mirrored both vertically and horizontally and then tiled which makes it ideal for
creating tiled wallpaper or kaleidoscope type effects. (For creating individual tiles for export, the
Mirrors 4 component may be more appropriate.) Parameter A (Scale) is applied both horizontally
and vertically. Parameter B applies only vertically.
- 60 -
COMPONENT REFERENCE: 2->2 Components
Sin x, sin y
A: Amplitude B: Frequency
This component tiles space by applying the sine function to the incoming values. The function’s
output always falls in the range of -1 to 1. This is a great way to create tiles and other repetitive
patterns and textures.
The output of this function is both periodic and continuous, thus it is often used for sound design.
Hexagonal Sin
A: Scale
Like Sin x, sin y, this component tiles space. In this case, space is tiled using a combination of sin and hexagonal
transforms. The output of this function is both periodic and continuous, thus it is often used for sound design.
Hexagonal Mirrors
A: Scale
This component tiles space into hexagonal tiles with 120 degree rotational symmetry. The resulting
space is periodic but not continuous. So, it is to generally avoided for sound design or systems intended for ArtMatic Voyager.
Mirrors N Tiles # (updated and renamed)
Renamed from Hexagonal tiles. This component provides a collection of periodic and symmetrical tilings using
several different rotational foldings. In ArtMatic Voyager, these may be useful for color textures but due to discontinuities may not be appropriate for terrains.
Algorithms:
• Unit Threefold Mirrors. Threefold Mirrors was the original Hexagonal Tiles implementation. This algo creates a
space of repeated hexagonal tiles. Each tile is a repetition of the space surrounding the origin of the incoming space.
This is a great primitive for creating skin-like textures. Amplitude is the scale of the space within each tile while
frequency controls the size of the tiles. . The axis of symmetry is vertical instead of horizontal for all the other algorithms. Example files: The “Snake Skin” files provided typical examples. Unlike the other algorithms, the image
is not centered on the axis of symmetry
• Threefold Mirrors 60
• Fourfold Mirrors 45
• Fivefold Mirrors skewed 72
• Sixfold Mirrors 60
• Sixfold Mirrors 45
• Heightfold Mirrors
• Heightfold Mirrors 45
• Ninefold Mirrors 60
• Tenfold Mirrors 45
• Tenfold Mirrors skewed 36
• Tenfold Mirrors skewed 72
• Twelvefold Mirrors 60
• Twelvefold Mirrors 45
• Sixteenfold Mirrors
• Sixteenfold Mirrors 45
- 61 -
COMPONENT REFERENCE: 2->2 Components
•
•
•
•
•
Twentyfold Mirrors 45
Square & triangles mirrors
Hexagons, squares & triangles mirror
Decagons & pentagons mirror
Pentagonal crystal mirror
60 indicates that the lattice points are spaced at 60° in a triangular lattice. 45 indicates that lattices point are spaced
at 45° in a rectangular lattice. “skewed 36” indicates a skewed lattice with a ratio of tan(36°) between x & y.
“skewed 72” indicates a skewed lattice with a ratio of tan(72°) between x & y.
The phase parameter moves the y coordinate.
The last four algorithms provide mirror tilings of several polygons. The pentagonal crystal mirror is especially interesting as tiling with regular pentagons is impossible. This algorithm offers a quasi-crystal semi-regular solution
that is aesthetically quite pleasing.
Pentagonal crystal mirror applied to the U&I Software logo.
Decagons & pentagons mirror is an algorithm reminiscent of tilings found in Islamic art.
The “Decagons & pentagons mirror” space applied to our logo.
Examples. See the tiling example files.
- 62 -
COMPONENT REFERENCE: 2->2 Components
Orthogonal Tiles # (updated and renamed)
Formerly Tile and Displace, this component provides several methods for tiling space. The parameters are algorithm
dependent. Frequency sets the tile size and leaves the coordinates of each tile unchanged and centered at 0. The
Scale parameter scales the space in the tiles with 1 being no change. The rectangle algorithms allows independent
setting of the x and y tile frequency.
Displacement. Some algorithms feature a displacment parameter which creates non-repetitive tiling by applying
different displacements for the tiles. When displacement is non-zero, the tiline is non-repetitive.
Algorithms
•
•
•
•
•
Unit Square Tiles
Square Tiles 45,
Rectangle Tiles,
Square Tiles Displaced,
Zoom Tiles/Pi displaced
Tip: To create complex symmetry, follow this component with the Mirrors 4 component.
Warning : The output is highly discontinuous and is to be avoided in systems destined for ArtMatic Voyager.
Pixel prism
A: Displacement B: Scale C: Frequency
Pixel Prism rearranges space by randomly breaking up the incoming space into little squares of uniform size. The
effect is puzzle-like. To best visualize it, use the Movie or pict component after it as in the images below. With displacement at 0 and scale at 0, there is no re-arrangement of the incoming space though there may be tiling (depending
on the setting of the frequency parameter which determines the size of the squares). Warning : The output is highly
discontinuous and is to be avoided in systems destined for ArtMatic Voyager.
Tip: this component can yield particularly interesting results when used with the distance shaders.
Pixel Prism with Displacement set low (left) and high (right)
Crystallize
A: Amplitude B: Frequency C: Phase
This component deforms space in a painterly way that makes it great for creating stylization effects
for video processing. The image at left demonstrates its effect on the U&I Software logo.
Warning : The output is highly discontinuous and is to be avoided in systems destined for ArtMatic
Voyager.
- 63 -
COMPONENT REFERENCE: 2->2 Components
Disc Tiling
A: Smooth Edges B: Offset x C: Offset y
Warp space with an Escher-like tiling of space into a disc-shaped enclosed space. This is a great primitive for creating decorative figures. Tip: Try inserting the Disk Mirror component just before Disc Tiling.
Structure of
An image created by the
This is the image that re-
the file Chi-
system shown at left.
sults when the Disc Tiling
nese Fractal
Notice how Disc Tiling
component is removed
Sin z Plate
encapsulates the space.
from the structure.
Serpiensky tiles
A: Amplitude B: Offset C: Frequency
Serpiensky tiles is an implementation of a classic fractal algorithm that starts with a triangle and recursively fills
space with smaller copies of itself as shown in the component’s icon. This component is sensitive to the Maximum
Iterations for Fractals preference.
Ripples
A: Frequency B: Amplitude C: Phase
This component distorts space with concentric circles. Amplitude provides the amount of distortion.
With an amplitude of 0, there is no distortion. Frequency determines the spacing of the ripples. For
a realistic effect you can use the phase to animate outward ripples.
Split & Move
A: Angle B: Offset x C: Offset y
Splits the incoming space (plane) in two and moves each side in opposite directions. Infinity is generated in the
space between the split planes so that the output of this component can be used as a mask for wipe effects. See the
example Split&Move Wipe for a basic use.
Mirror
A: Rotation B: Offset x C: Offset y
This space transform creates a mirror of the input space. The Rotation
parameter allows the axis of mirroring to be rotated which allows for interesting patterns when this component is used in a looped tree (as shown
to the left).
- 64 -
COMPONENT REFERENCE: 2->2 Components
Mirrors 3
A: Scale B: Offset x C: Offset y
Mirror space into three parts with a 120 degree rotational symmetry. Use this and the other “mirror”
components for kaleidoscopic effects. Scale scales the incoming space and the offset parameters
provide horizontal and vertical offsets of the incoming space.
Mirrors 4
A: Scale B: Offset x C: Offset y
This component creates a 4-way mirroring of the incoming space which is symmetrical about the x and y axes.
Left output equation: Absolute value of x
Right output equation: Absolute value of y
N-Fold Mirrors # (updated and renamed).
A: Scale B: Offset x C: Offset y
Formerly:Mirrors 6. This component provides a number of different mirroring algorithms.
Parameters options are available for all folding symmetry orientation options.
Algorithms:
• Skewed 6 Mirrors (legacy). This algorithm was the previously used algorithm and has been left for legacy and compatibility with older versions though it is mathematically incorrect. It creates a kaleidoscopic mirroring of space
about three axes that are rotated 120 degrees apart.
• Threefold Mirrors
• Fourfold Mirrors
• Fivefold Mirrors
• Sixfold Mirrors (default)
• Heightfold Mirrors
• Ninefold Mirrors
• Tenfold Mirrors
• Twelvefold Mirrors
• 45° Mirrors Branch N (updated)
A: Branch # B: Offset x C: Offset y
This component mirrors space as in the other “mirror” tiles but provides parametric control of the
number of mirrors. The Branch # parameter allows you to achieve from 3 to 18 rotational symmetries. Unlike the other mirror functions, the axis symmetry is made seamless (continuous) which
allows it to be used with the Derivative component. The offset parameters are the horizontal and
vertical offsets of the incoming space. Example files: Bio Electronica
Parameter options provide a number of different symmetries. When inward is chosen, the orientation matches the
one used by 3->3 3D Mirrors and Rotates. Previously, inward orientation was always used.
- 65 -
COMPONENT REFERENCE: 2->2 Components
•
•
•
•
Orient outward (x-,y-)
Orient inward (x-,y+)
Orient outward (x+,y-)
Orient inward (x+,y+) . This was the behavior in previous versions.
Radial star
A: Outer phase B: Narrowness C: Amplitude
This component distorts space with radial undulates. Animate the outer phase parameter for nice explosion effects.
Disk Mirror
A: Disk Size
Disk Mirror provides a circular mirroring of the incoming space. This is another component that can
be used to constrain space to prevent it from reaching infinity. The Disk Size parameter controls the
size of the region that is mirrored. The image at left shows the result of placing the Disk Mirror
component at the top of the example system.
Distance Mirror
A: Amplitude B: Mirror C: Distance
This component inwardly mirrors distance beyond a certain radius and hence is another component
that can be used for avoiding infinities. This is useful for both cleaning up systems that are noisy as
they approach infinity and for closing shapes. Values beyond the limits of the bounding circle are
mapped to zero.
Complex inverse
A: Scale
Complex inverse inverts space using a complex number transformation so that infinity becomes 0 and 0 becomes
infinity. The transformation divides x and y by distance.
Complex Moebius
A: Angle B: Scale C: Imaginary
Complex Moebius is an implementation of the Moebius transform. It is a space transform that creates an interesting complex inversion of the input space. When used in
an iterative (looped) system the result is fascinating geometries that sometimes have
several attractors. See the 2->5 Components chapter for examples of other Moebius
transforms.
Complex Map
A: Real B: Imaginary
This component treats the x,y inputs as the real and imaginary parts of a complex number. As with
Complex inverse, infinity becomes 0 and 0 becomes infinity. Four iterations of a recursive complex
number equation are used to determine the output.
Complex Map 2
A: Real B: Imaginary
This component is similar to Complex Map but uses a different equation which is a complex polynomial with a fixed
number of iterations.
- 66 -
COMPONENT REFERENCE: 2->2 Components
Complex waves
A: Scale B: Offset
This component warps the incoming space by applying a low frequency sine wave transform.
Ring Space
A: Offset x B: Offset y C: Warp
This component warps space about several attractors. As with many of the complex number-based components, this
component can be used to avoid infinities. The presence of the three attractors makes this component terrific for
creating flower-like shapes.
Polar Space
A: Polar Scale B: Distance C: Scale
Use this component to interpret x and y as polar coordinates where x is the angle and y is distance.
Orbiters
A: Rotation B: Offset C: Level
This is a complex component that re-arranges space into discrete, irregularly-shaped self-contained
universes. It is like having little planet/universes each with its own coordinate system. The easiest
way to see how this component re-arranges space is to follow it with the Movie or pict component
as in the picture shown at left.
Twirl
A: Scale B: Angle
Twirl distorts space with a whirlpool pattern.
Eric advises that you twirl everywhere, but you should avoid driving after doing so.
Multi twirls
A: Frequency B: Phase C: Twirl
Multi twirls distorts space with randomly placed whirlpools. This is a great component for distorting
pictures especially when creating animation. This component can take a long time to render.
Tech Displace
A: Displacement B: Phase C: Frequency
A displacement map with a sparse geometric texture.
- 67 -
COMPONENT REFERENCE: 2->2 Components
Tech Quantize
A: Displacement B: Phase C: Frequency
A quantizing function great for creating mosaic effects. It uses a random arrangement of 45-degree
orthogonal patterns to quantize the input.
Warning : The output is highly discontinuous and is to be avoided in systems destined for ArtMatic
Voyager.
Random noise
A: Amplitude B: Phase
This component provides continuous random distortions of space which can be subtle or extreme, depending on
the amplitude setting.
Low Freq Random
A: Amplitude B: Frequency C: Phase
See the notes about the scalar version of this component.
Perlin Random
A: Amplitude B: Phase C: Frequency
A Perlin noise-based component that combines the output of two uncorrelated Perlin noise functions for each output
to displace the input values. The Amplitude parameter controls the amount of displacement of the incoming values.
Adaptive, Band-Limited Noise Functions
The next group of noise functions have adaptive resolution and are band-limited to reduce high-frequency noise.
These functions are recommended for designing systems for use in ArtMatic Voyager. The number of iterations
and resolution of the functions are determined by the camera’s zoom level in addition to the preference for fractal
iterations. By being adaptive, the functions can deliver maximum detail at any zoom level.
Multi Perlin Random
A: Amplitude B: Octaves C: Frequency
This displacement function uses a series of Perlin noise functions where the frequency is doubled for
each element in the series.An Octaves value of 128 represents seven octaves of noise (27). Amplitude
controls the amount of displacement of the input values. Unlike the other fractal components that
add noise up to the individual pixel limit, Multi Perlin Random’s has an adjustable limit.
A cone seen in ArtMatic Voyager before and after Multi Perlin Random displacement.
2D Turbulence
A: Amplitude B: Scale C: Phase
This is a 2D fractal displacement function whose Amplitude parameter controls the amount of displacement of the
input values. This is a somewhat ‘structured’ noise that is sensitive to the Max iterations for fractals preference. This
component is great for creating turbulence, fire, marble and clouds. See the notes for the scalar version of this com- 68 -
COMPONENT REFERENCE: 2->2 Components
ponent. This component was formerly called Fractal Noise and Turbulence 2D.
2D Time Turbulence (Updated 6.0)
A: Amplitude B: Feedback C: Frequency
A fractal-based component where time causes upward distortion (phase shift). This function is unusual in that it is sensitive to the flow of time -- even with its parameters locked. It is a great primitive for creating flow and smoke effects for animation and video processing. Amplitude controls the
amount of displacement of the input values. The Feedback parameter adds additional frequencies
of distortion. In ArtMatic 6, a fourth parameter, Pace, was added to control the speed of the time-induced animation.
Multi Fractal Displace
A: Amplitude B: Smoothness C: Frequency
A 2D fractal displacement noise created by summing vector-valued Perlin noise functions of varying fractal dimension (roughness). “Multi-Fractal” describes fractals with varying fractal dimension (a measure of the surface
roughness).
A Multi-Fractal displaced cone seen in ArtMatic Voyager
Multi Fractal displace creates rich and natural textures – especially when used in ArtMatic Voyager. Amplitude controls the amount of displacement of the input values. Smoothness controls the roughness of the displacement texture.
Ridged Fractal Displace
A: Amplitude B: Phase C: Frequency
A multi-fractal based on a “ridged” version of the Perlin noise function as discussed in the 2D Scalar (2->1) components chapter. Amplitude controls the amount of displacement of the input values.
Ridged fractal displaced cone seen in ArtMatic Voyager
Chaos Displace A
A: Amplitude B: Phase C: Frequency
A composite multi-fractal displacement function based on a cubic-clipped Perlin noise function.
- 69 -
COMPONENT REFERENCE: 2->2 Components
Chaos Displace B
A: Amplitude B: Phase C: Frequency
A composite multi-fractal displacement function based on an algorithm similar the 2->1 Bubble Rock component.
Random Fractal Space
A: Amplitude B: Phase C: Frequency
This noise function creates a structured noise that is similar to that created by Turbulence 2D. Unlike
the other noise functions, Random Fractal Space generates truly random output (rather than adding
randomized offsets to the incoming values) which results in the new coordinates being truly random.
Place this component before a Grid to create veined textures, or place it before any other surface
generator to create beautiful random textures.
Crystal Displace
A: Amplitude B: Phase C: Frequency
A fractal displacement function based on a triangular lattice random linear noise. Crystal Displace is
discontinuous and will produce sharp edges when used in ArtMatic Voyager.
Directional Random
A: Amplitude B: Direction C: Phase
This component distorts space directionally so that you can distort the system either vertically or horizontally or a
combination of the two. The direction of the distortion is provided by the direction parameter. When direction is 2 or
-2, space is distorted horizontally. When it is set to 0, the distortion is purely horizontal. In-between values, provide
both vertical and horizontal distortion.
Bubble Space
A: Amplitude B: Bubble size C: Frequency
As with the Orbiters component, bubbles are created each of which is an enclosed space. Each bubble has 0 at its
center, and each bubble is surrounded by 0. This component is terrific for creating non-repeating textures and patterns.
Facet Space
A: Scale B: Delta size C: Frequency
Create a multitude of irregularly-spaced tiles of the incoming space. This creates 3D-like repetitions
of the image created by the components that follow it as in the image at left in which Facet Space is
used before a movie/pict component.
Scale determines the scaling applied to the incoming space. Delta size determines the range of siz- 70 -
COMPONENT REFERENCE: 2->2 Components
es into which the space is tiled. With a Delta Size of 0, all the tiles are the same size. Large values provide a great
variation of sizes. Frequency determines the tile spacing.
Facet Space Mirrors
A: Scale B: Delta Size C: Frequency
This component randomizes the incoming space and outputs a space with warped facets/
tiles. The transitions between the facets is smooth which makes this a great tool for creating natural semi-random textures. Prior to version 2.53, this component was called Facet
Space. See the example file: “Monster’s skins”.
Facet Space Rotate
A: Delta Angle B: Delta Size C: Frequency
Similar to the Facet Space component but each cell is randomly rotated. The Delta Angle
parameter controls the amount of rotation.
Spots Displace
A: Displacement B: Phase C: Frequency
A displacement function comprised of randomly placed and sized spots.
Open Compiled Tree
A: Blend B: Recursion
Choose this component to use a 2->2 compiled tree. Compiled trees are groups of tiles that can be used
in place of single tiles as a kind of macro or subroutine. The Blend parameter determines whether the
compiled tree uses the incoming space for its input values (when Blend is at its maximum--which is the
default) or the undistorted space or an interpolation of the values. The Recursion parameter lets you feed
the output of the compiled tree back to itself to create your own fractals. Normally, recursion should be
set to 0 as recursion is only meaningful with compiled trees designed to be recursive. Compiled Trees and
their parameters are covered in detail in the Compiled Trees chapter of this manual.
- 71 -
2->3 Components
These components perform a variety of functions depending on how they are used in the structure tree. Many of
these components are RGB color textures. Some of them are mixers. Some of these components translate 2D to 3D
space or create 3D objects (spheres, cubes, rooms and the like) NOTE: ArtMatic’s internal RGB color space goes
from (0,0,0) (black) to (8,8,8) (white). Qll color calculations are in floating point.
An essential in-depth discussion of function categories is found in the Getting Deeper chapter and is recommended
reading for everyone.
3D zset
A: z value
Use this component to create a third coordinate (whose value is determined by parameter A) that can be passed on to
3D functions or used as a controller value. The incoming x and y values are passed unchanged through the leftmost
outputs. Parameter A’s value is sent out the rightmost outlet. Animating this parameter is a great way to control solid
textures such as 3D noise functions.
Use this function at the top of the system if you want to use 3->3 components near the top of the tree but do not want
to use the system’s third global input (time) which is incremented with every frame.
3D Axonometric
A: Scale x B: Scale y
Use this component to create a third coordinate whose value is related to the incoming x,y values. Unlike 3D zset
the third output (the z value) is not a constant value but calculated from the x and y values. The scale parameters are
multiplied by the x and y inputs before passing them out. The outputs are calculated using the following formulas:
Left output = Ax Middle output = By Right output = (Ax + By)/2
Spherical
A: Radius B: Offset x C: Offset y
Spherical is a space transform function that creates a 3D space/object by projecting the incoming
space onto a half-sphere. The effect is similar to the image that results from holding a mirrored ball
over a picture. The image at left shows the bending of the XY space applied to the logo grid image.
The radius parameter controls the size of the half-sphere used for the projection. The smaller the
radius is, the greater the resulting space distortion. This is a great component for radiant and supernova-type effects. Example files: “SphericalWipe”, “Spherical Noise Wipe”, “SphericalStainedGlass”
3D plane
A: Banking x B: Plane offset C: z Slope
Create a 3D plane which can be banked and tilted. Like all 3D object components, the area outside the object is
mapped to infinity (which is painted with the depth cueing color). The components which follow the plane component provide the surface’s texture. Banking x controls the horizontal tilt, Plane offset provides an altitude offset, and
z Slope controls the forward/back tilt.
- 72 -
COMPONENT REFERENCE: 2->3 Components
3D sphere
A: Offset x B: Offset y C: Offset z
Create a sphere which can be moved along the x, y and/or z axes. The surface texture is created by the components
which follow this component. Tip: Rotation can be simulated by using a noise component after the sphere and animating the noise component’s phase.
3D ellipsoid
A: Radius B: Vertical skew C: Offset z
3D ellipse primitive.
3D tube
A: Offset x B: Offset y C: Radius
Create a 3D tunnel whose radius and offset can be modified. Example Files: Search for “tube” to find the many examples which use this component.
3D cube
A: Angle xy B: Angle zx C: Offset z
Create a cube which can be rotated in space. Example Files: Search for “cube” to find the many examples which use
this component.
3D box
A: size y B: size zx C: offset z
A useful 3D object primitive. The size y parameter controls the size of the box top. The size zx parameter controls
the box length. The offset z parameter controls the box offset along the z axis.
3D room
A: Offset z B: Angle zx C: Room size
Create a 3D room. The z offset controls the distance to the back of the room. The angle zx controls the angle with
which the rear walls are joined. The room size controls the size of the virtual room. The room has a finite size. At the
maximum offset, you can see the room from the outside.
3D parametric face
A: Angle xy B: Angle zx C: Offset z
Simple 3D-object which is like a single face of a cube. The coordinates are parametric so the textures moves with
the object. Use this object to perform 3D rotation of your movies and pictures.
Example files: “Rotating face”.
3D param. cube
A: Angle xy B: Angle zx C: Offset z
Create a cube whose texture ‘sticks to it’. The non-parametric 3D objects move under the texture while a
parametric object’s covering texture moves with the object.
Example files: “Parametric cube”.
- 73 -
COMPONENT REFERENCE: 2->3 Components
3D parametric room
A: Offset z B: Angle zx C: Room size
Create a room whose surface texture sticks to it. (The non-parametric version moves ‘under’ the texture.) Unlike the
non-parametric version, this room has infinite walls. So, you can’t leave the room.
Example files: “Parametric room”. Note how the depth cueing in the example is controlled via a loose 1D filter connect to the room’s z output.
Packed depth sort
This component mixes two 3D objects into a single set of 3D outputs.
The inputs should be the packed outputs of 3D objects as shown in the structure to the
left (which is a simple modification of the 3D Sphere and Plane item in the Structures
popup menu).
NOTE: This component should always receive its input from Pack components (that receive their input from 3D
object components). The algorithm is such that for each set of points received, the set with the lowest value of z
wins; in other words, the coordinates closest to the viewer win.
Looper
A: Iterations z B: Count Multiplier
Perform a loop by feeding the Looper’s left two outputs back into the component that feeds the looper. Loopers
are covered in-depth in the Compiled Trees and Iteration chapter of the reference manual -- which also contains a
tutorial on how to use this component.
Perlin noise + derivative (new)
This component sends out Perlin noise from the left output with the true partial derivative (fdx, fdy) sent out the
middle and right outputs respectively.
Examples: 2D Perlin DV Contours is a 2D example. 2D Perlin DV Sphere.vy is a 3D version.
Technical note: The derivative can be used for improved distance estimation to the function’s zero crossing. A good
distance estimation provides the correct contour rendering and good convergence for DFRM objects. For proper
distance estimation use F(v)/(length(1,dx,dy)) where length is the distance estimation.
RGB Shaders Family
The RGB shaders provide RGB color and gradient-to-RGB functions.
Often they map the X (left) input to a gradient position and the Y (right) input to luminosity. In the example images,
the X input is being fed with a basic linear ramp and the Y input is fed by Perlin random noise.
RGB plain color
A: Red B: Green C: Blue
Generate a constant RGB color (or three constant values) determined solely by parameters A, B and C. The input
values are completely ignored. The color is strictly a function of the parameter values and is the same for every
- 74 -
COMPONENT REFERENCE: 2->3 Components
incoming value. This is useful for creating solid color backgrounds or surfaces.
Tip/Trick: Advanced users can use this component to generate three independent constant values which can be useful for a number of non-color manipulation applications.
Example file: “Cube& Solid Color”.
Shaded plain color
A: red B: green C: blue
Another useful RGB-based shader. The A, B and C parameters (red, green and blue respectively)
define a target color. The left-inputís value (the x-value) determines whether the output value is the
target color (when the value is greater than 0) or its complement (when its value is less than 0).
When the value is near 0, the luminosity of the color is reduced. (Hence, an x-value of 0 generates
black.)
The right-input value (the y-value) determines the luminosity (brightness) of the output color. Large values of y
generate a shade of the color that approaches white.
RGB color shade
A: Hue B: Saturation C: Luminance Pan x<->y
RGB Color Shade provides color shading by using the inputs to control the luminance of the generated color. The color (hue) is provided by parameter A, Hue; parameter B, Saturation, determines the
maximum color saturation. The luminance (brightness) is determined by one or both input values.
Parameter C, Luminance Pan, determines whether a point’s brightness is determined by both input
values or just one of them. When the parameter is at its minimum, only the left input is used; when
the parameter is at its maximum setting, only the right input is used.
Use this component to create subtle shadings of a single hue, such as when creating clouds, mist, or earth textures.
This component can take input from either a space or two individual inputs.
Example files: “Compiled Trees & Recursion: Advanced Compiled Examples:Planet with life Sunrise”. This component is used in the file’s subtrees to provide color for the space clouds, the star, and the planet’s cloud cover.
RGB main gradient
A: Scale x B: Scale y
Create RGB- color output using the colors of the active ArtMatic gradient. The X and Y input values
are multiplied by their respective scale parameters and added together. The resulting sum is mapped
to a position on the active gradient. This handy component lets you mix ArtMatic gradient-based
colors with RGB-based components.
Just as with the 2->1 Ax + By + C, you can use either a 2D space (a component with two outputs) as
an input or two independent surfaces. When the input is two surfaces, the scale parameters provide a mix control.
Example file “Entrelas z wipe”.
Shaded main gradient
A: Gradient scale B: Luminance scale C: Gradient offset
Create shaded RGB-color output using the colors of the current ArtMatic gradient. 3D shading and
lighting effects can be easily created with this shader, especially when the second input is fed by the
Derivative or 2D Derivative component. The first input selects the color and the second input controls
the lighting/shading.
- 75 -
COMPONENT REFERENCE: 2->3 Components
Gradient scale determines the spacing/scale of the gradient. Luminance scale determines to what extent the y-values
influence brightness and is similar to RGB color shade’s Light/Hue variance parameter. Gradient offset adds an offset
to the x-value before picking the color from the gradient.
Tip: Set the Luminance scale parameter to something other than 0 to achieve effects similar to Artmatic’s global
shading. This technique is particularly effective when the 2D Derivative component feeds this input.
Tip: It is often useful to feed this component’s inputs from two parallel 1D filters that are connected to the same
single-output parent. Learn more about this technique in the Getting Deeper chapter of this manual.
Example file: “Abstract Beast”. This example file is discussed in detail in the Getting Deeper chapter of this manual.
Bezier Main Gradient
A: Input Range B: Offset C: Output Range
This component is similar to the RGB Main Gradient component but it uses bezier curves rather than straight linear
interpolation to map input values to the gradient colors. By using bezier curves to interpolate from the gradient to
RGB values, the output values are ArtMatic Voyager friendly since each output curve has a continuous derivative
(RGB Main Gradient can have discontinuities).
ARTMATIC VOYAGER NOTES: Because the output values are Voyager friendly, this component can be very useful for creating surfaces as each of the outputs can be treated as a parallel filter. Advanced users will find it useful
for creating rich topographies. See the example files found in the folder Gradient/Bezier Filter. See the file Gradient
filter world.am3d for a great example. See the file Gradient filter curve and play with the gradient colors to see how
the curves change. When used as an elevation function in Voyager a linear slope from 0 to the input range will have
the same contour as the curve shape.
The image demonstrates the filter curves derived from the given gradient.
As a consequence of the color math added in ArtMatic Pro 3.5, components like RGB main gradient can be used
to implement 3 parallel filters for surface sculpting. Essentially, this component separates the Red, Green and Blue
content of the gradient and outputs them as three independent curves as shown by the image above. Notice the three
curves in the image: red, green and blue. Compare them to the gradient and notice that the red curve mirrors the red
content of the gradient, the blue curve mirrors the blue content, etc.
It is a very powerful component for ArtMatic Voyager world-design as you can implement 3 different shape filters
at once and blend them afterwards. (See the example file Gradient filter world.am3d for an example.) Parameters A,B
C are suited for generic filter/curve design where A controls input range and C controls output range.
Indexed Gradient
A: Gradient Scale X B: Luminance Scale Y C: Gradient Index
This component allows a gradient other than the ‘active’ gradient to be used. The behavior is the same as Shaded
Main Gradient BUT parameter C (Gradient Index) selects the gradient to use from the gradients available in the
Gradient popup. A Gradient Index of 0 selects the first gradient in the popup and the maximum index selects the last
gradient in the library.
Warning : When exporting systems for use in VTrack or ArtMatic Voyager, this component may return different
- 76 -
COMPONENT REFERENCE: 2->3 Components
colors unless you make sure that the other application uses the same gradient library. Use the Gradient Editor to
open or export gradient libraries.
Y Indexed Gradient
A: Scale B: Gradient Index Mod %
This component is a color shader that maps the x-input to a color of the gradient selected by the y-input. This component is similar to RGB Main Gradient except that the y-input selects the gradient to be used.
The Y-Indexed Gradient component allows a different gradient to be
used by each iteration of a looped system when the iteration number is
connected to the y-input of Y-Indexed Gradient.
Scale is a scaling factor applied to the x-input value. Setting the parameter high makes the component very sensitive to value changes. The y-value picks the gradient from which the color is picked. The current gradient (the one
visible above the canvas) is gradient 0. The second gradient in the palette is gradient 1. Gradient Index Mod % determines the mapping of y-input to gradient number. When it is at its maximum, integer y-values (0, 1, 2, etc.) pick
the color from the corresponding gradient in the library. I.e. 0 picks a color from gradient 0 (the current gradient),1
picks a color from gradient 1 (the second one in the library, etc. If the y-value is non-integer, the component blends
the adjacent gradients. For instance, a y-value of 0.5 results in ArtMatic choosing a color that is a 50% blend of the
color from gradient 0 and the corresponding position of gradient 1.
This simple system is excellent for exploring this component. Create this tree for yourself and explore
how y-input values determine the color. To do so, click on the A1 glyph to invoke the Global Input
Matrix dialog. In the dialog, click in the A1 field and either type in values or click and drag to explore
the gradients selected by the different different values. Explore how the response changes with different values for Parameter B. As a further experiment, insert components above the Y Indexed Gradient
component and explore the colors created and how parameters A and B interact.
Gradients used for exam-
Image created by the
Image created by the
Image created by the
ples
example system when the
example system when the
example system when
y-input value is 0. The
y-input value is 1. All the
the y-input value is 0.5.
colors are drawn from
colors are chosen from the Non-integer values result
gradient 0 which is the
second gradient.
library’s first gradient.
in colors that are a blend
of the colors from gradient 0 and gradient 1.
RGB color gradient
A: Angle Red B: Angle Green C: Angle Blue
Create RGB-color output by projecting RGB color-complements across an axis defined by the three angle parame- 77 -
COMPONENT REFERENCE: 2->3 Components
ters. A wide variety of vibrant color and lighting effects can be achieved with this component. This is similar to the
RGB radial hues component with the addition that it allows you to set up a custom color wheel.
Example files: “Techno stained glass”, “RGB Mixed synth”
RGB linear hues
A: Hue Rotation B: Saturation C: Frequency
Color the image by using the x input value to define the pixel’s hue. If the y input value is negative then the inverse
hue is used.
Example files: “Neuroweb Lights”, “Differential system”. In “Neuroweb Lights” this component’s output is sent to
a 3->3 shading function so that it acts like a space distortion function.
RGB radial hues
A: Hue Rotation B: Saturation
Color the image by choosing colors from a classic color wheel (shown in the component’s icon). The two inputs are
treated as an x/y coordinate pair. The angular position of the input point (the value pair) determines the hue. Parameter A rotates the color wheel and thus changes the color which corresponds to a particular angle. The Saturation parameter determines the luminance (brightness) of the colors. This component is frequently used to create vibrantly
colored surfaces. When this component is used as the color shader, it is as if the original undistorted space (the flat
plane) is a sheet of paper with the color wheel printed on it, and the system’s space distortions and remapping are
really distortions and remapping of the sheet of paper with the color wheel on it. The more chaotic the distortions,
the less like a color wheel the image will appear.
RGB Concentric hues
A: Hue Rotation B: Saturation C: Frequency
Shade the image with a narrow adjustable range of hues that vary with the distance from the origin. The luminosity
decreases in inverse proportion to the point’s distance from the origin (0,0). Parameter A defines the ‘base hue’ used
for shading, and Parameter B controls the color saturation. Parameter C determines the spacing of the hue variations. Luminosity becomes lower as the distance from zero increases (and then starts increasing again). Example
file: “Monster’s skins”
Max to Gradient
A: AmplitudeX B: AmplitudeY
This component mixes two incoming surfaces (fx and fy: the X and Y inputs respectively) by considering each
pixel (coordinate) and taking either the left or right input (whichever has the higher value) and coloring the output
by using the left side of the gradient to color the pixels taken from the X input and using the right side of the gradient to color the pixels taken from the Y input. The Amplitude parameter determines the range of colors taken from
the current gradient. With an amplitude of 0, the result is a constant color for each area. ArtMatic Voyager tip: This
component is often used in ArtMatic Voyager systems to create colors for a surface based on the maximum values
of the two input functions -- similar to the role served by the 2->1 Min<->Max component. With it, each “winner”
will have its own color.
- 78 -
COMPONENT REFERENCE: 2->3 Components
At left: the gradient used
In the example, the X input (fx) is provided by a Grid
and the Y input (the right input) is provided by Ripples.
Where the Grid produces higher values than the Ripples,
colors from the left side of the gradient are used. Where
the values of the Ripples are higher, colors from the right
side of the grid are used.
in this example.
RGB Pict/Movie
A: Size B: Contrast C: Tiling
This is the true color version of the Pict/Movie component. For more information about using pictures and movies
as input sources, see the chapter Using Pictures and Movies.
RGB Pict/Movie Sym Mirror
A: Size B: Contrast
This variant of the color pict/movie component creates mirrored tiles of the picture when the picture
is zoomed out. For more information about using pictures and movies as input sources, see the chapter Using Pictures and Movies.
Pict/Movie Overlay
A: Size B: TileX C: TileY
A variation of the basic pict/movie component that provides independent control of horizontal and
vertical tiling. Infinity is generated beyond the picture boundaries. This makes it simple to overlay
the output and control the background color (the depth-cueing color). Example file: Strip SparkMagma Zoom.
RGB Texture Shaders
The RGB Texture shaders are a group of components that
are used to color a space with RGB-based color. Except
where noted, these components should receive a space as
input rather than inputs from independent surfaces. These
RGB components are the RGB (true color) equivalents of
the 2->1 surface/texture functions used in gradient-based
systems. In both cases, the components generate a single
color-value based on the incoming points (coordinate
pairs). In a gradient-based system, there is a single output
which is mapped to a color of the current gradient. In the 2->3 RGB shaders, the three output values (which we call
an RGB triplet) together define a single RGB color. RGB components are generally used in the lower part of a tree
that terminates with RGB output (three outputs). The shader need not be the last component since you might follow
them with further color manipulation.
The nature of these shaders is such that they not only provide color but may also provide the illusion of space
manipulation in addition to providing color. This is particularly noticeable when manipulating a noise function’s
frequency parameter. In the example shown above, the only difference between the images is the setting of the frequency parameter.
- 79 -
COMPONENT REFERENCE: 2->3 Components
RGB MultiPerlin Random
A: Amplitude B: Octaves C: Frequency
Sums three 2D Perlin noise functions for each RGB channel with doubled frequencies for each added octave (parameter B).
The Perlin noise function which is normally balanced (outputs both negative and positive values) is
scaled and offset so that only positive values are generated. When the Amplitude is zero, this component produces a uniform 50% (neutral) gray. Negative amplitude values invert the colors so that
color-complements are generated. Amplitude can be seen as a saturation or color contrast control.
RGB Random Fractal (Updated)
A: Amplitude B: Phase C: Frequency D: Roughness
Randomly-generated 2D color texture which is sensitive to the setting of the Max. Iterations for
Fractals preference. The amplitude controls the saturation. A great texture for vibrant color textures.
Roughness added in version 6.0.
RGB MultiFractal
A: Amplitude B: Phase C: Frequency
This component is a 2D Multi-Fractal RGB noise component. This can be viewed as 3 independent Multi-Fractal
functions for each of the RGB channels. The output values are scaled and offset so that only positive values are
generated. When the amplitude is zero, the output is a uniform 50% gray. The Amplitude can be seen as a saturation
or color contrast control.
Lunar Rocks
A: Amplitude B: Phase C: Frequency
Lunar Rocks is a composite 2D color texture providing a color texture reminiscent of random rocky material. The
underlying algorithm is similar to the 2->1 Lunar Rocks component. This primitive is useful for creating natural-looking mineral shading -- especially when used in ArtMatic Voyager.
Lunar Rocks color texture mapped onto the Lunar Rocks surface as seen in ArtMatic Voyager
Color Bubbles
A: Amplitude B: Phase C: Frequency
Color the 2D space with randomly-sized and colored bubbles/facets.
- 80 -
COMPONENT REFERENCE: 2->3 Components
String noise
A: Amplitude B: Hues C: Frequency
Color the 2D space with random colored ‘strings’.
Techno Boxes
A: angle B: center x C: center y
Techno boxes is a decorative RGB shader that generally used to provide surface texture.
3D Color Pyramids
A: Amplitude B: Phase C: Frequency
Color the space with randomly-sized and colored pyramids.
RGB Grass
A: Amplitude B: Skew Angle C: Frequency
RGB Grass is a 2D color texture which evokes - in an impressionistic way - grass seen from afar. This primitive was
added primarily for use in ArtMatic Voyager where it is slope dependent (grass tends to appear where the terrain
is flat). Within ArtMatic Pro, the “slope values” are derived from the global X input values (since they would be
otherwise undefined).
RGB grass as seen in ArtMatic Voyager
RGB Foliage
A: Contrast B: Hue Offset C: Frequency
RGB foliage is a 2D color texture that impressionistically evokes foliage as seen from afar. The hues offset parameter
slides from summer green shades to autumn red shades.
RGB foliage used to texture an ArtMatic Voyager scene
- 81 -
COMPONENT REFERENCE: 2->3 Components
Remember that it is easy to further change the hues with Colorize and other similar components.
RGB soft random hues
A: Hue Rotation B: Saturation C: Frequency
Color the incoming space with random modulations of a narrow range of hues. Naturalistic effects
are achieved with a low value for the saturation parameter. At the minimum saturation, only a single
hue is left. Hue rotation determines the base color for the variations. Saturation determines the average brightness of the resulting colors. Frequency determines the distortion density. Example file: See
“Pink turbulent marble” to see a range of this component’s possibilities.
Packed Mixers Family
The group of components whose names include ‘packed’ is used for mixing packed streams – usually from RGB
components or branches. When infinity is encountered in one of the inputs, it is treated as transparent by these mixing functions. These functions can accept both packed and unpacked inputs.
Packed RGB crossfade
A: Interpolate
Mix two RGB color streams into a single image. When the parameter slider is all the way to the left, only the left
input’s image is visible (with one caveat noted below). When the slider is to the right, only the right input’s image
is visible (with one caveat). When the parameter is between the maximum and minimum values, a mix of the two
images is created.
There is a situation in which portions of both images are visible even though the Interpolate parameter is at its extremes. If either input stream has a 3D object, then any points that have the value infinity (which means that they are
outside the object’s boundaries) will be transparent regardless of Interpolate’s value. This allows you to have opaque
3D objects which appear against a background created by another RGB color stream.
Usage note: The inputs should come from Pack components that are connected to components whose
outputs are RGB colors. This component is used by the RGB 2 Channels system found in the structures menu.
Example files: “Cube & Pict” is just one of many of the example files that use this component.
Packed RGB multiply
A: Amount B: Offset
Filter one color stream (image) with another by multiplying the corresponding RGB values of the incoming streams.
Amount determines the strength of the filtering. Offset mixes in some of the left input’s image so that in conjunction
with the Amount parameter, one can have very fine control over the filter effect.
RGB Math: Every RGB color is made up of three numbers which determine the amount of red, green and blue that
make up a pixel’s color. When doing multiplication, ArtMatic treats color values as ranging from 0 to 8. Unless all
pixels are at maximum brightness, multiplication tends to reduce an image’s brightness.
Packed RGB add
A: Level in1 B: Level in2
Mix two images (RGB color streams) by adding the values of the merged streams’ pixels. The two parameters control the relative contribution of the two images to the final mix.
- 82 -
COMPONENT REFERENCE: 2->3 Components
Packed RGB Max (Updated)
Returns the maximum RGB value for each of the packed inputs. It needs to be fed by packed inputs. A new parameter, Feather, was added in ArtMatic 5.0 to smooth discontinuities
Packed RGB min (new)
This new packed mixer returns the minimum of (input 1 * parameter A) and (input 2 * parameter B). This component can also be used to mix two 3D spaces. If the inputs are RGBA, transparent regions are shaded lighter.
Open compiled tree
A: Scale B: Iterations
Choose this component to use a 2->3 compiled tree. Compiled trees are groups of tiles that can be used in place of
single tiles as a kind of macro or subroutine. Compiled Trees are covered in more detail in the Compiled Trees chapter
of this manual.
- 83 -
2->4 Components
About 2->4 Components
There are three primary types of 2->4 components: RGBA color shaders (many of which are implementations of
2->3 RGB color shaders), RGBA packed mixers that mix two RGBA streams, and the composite XYza functions
that create interesting tiled spaces + value + alpha mask (these are illustrated later in this chapter in some detail).
This tree demonstrates two types of 2->4 tiles. The second row of tiles features 2->4
components used as color shaders (Interlaced Grid and RGBa Pict/Movie). The bottom-most tile mixes two packed streams together and generates RGB+Alpha. Note how
the alpha mask of the Interlaced Grid is used so that the logo picture shows through the
spaces in the grid.
XYza tiles take a space as input. The output can be interpreted as a tiled space + a value + an alpha
mask that outlines the tiles.
XYza Functions
The components whose names start ‘XYza’ make up an interesting family of components that defy simple categorization. They are composite components useful for creating interesting tiled patterns. They can be thought of as
space transforms that output a couple of extra values that are useful for displacement and shading effects further
down the tree.
XYza outputs
XY output. The x and y outputs make up a tiled space transform (and can be used on
their own as such). Each tile is a portion of the received space. Compare the orientation
of the tile contents (the logos) in this image with the image at the bottom of the table. In
this image, the orientation of the logo is the same in all tiles.
z output.In most cases, the z value (the third output) is a random value that is uniform
inside each tiled space as a result each tile’s color is uniform in the pictue to the left. z
can be thought of as either just a value or as third spatial co-ordinate. It is generally used
to influence the shading or displacement of the tiles.
a output.The fourth output is called ‘a’ since it is generally treated as an alpha mask. The
alpha mask fades to black at the tile edges and is white at the tile center (which makes
it useful for highlights)
Putting it all together. This simple tree demonstrates typical usage of XYza outputs. The
XY outputs are passed to a color shader (a pict/movie component) via Z Rotate. The z
output is sent to the Z Rotate tile’s third input and the result is each tile having a different rotation. The a output is used to provide shading by delineating the tile outlines.
- 84 -
REFERENCE: 2->4 Components
In this example, the z output is sent to both Z Rotate and the 2->3 RGB Main Gradient
component, and so it influences both tile color and rotation.
Other interpretations. It is also possible to interpet the components’ output as a 3D space (where each tile has a uniform z co-ordinate/height) + alpha mask.
Sometimes it is useful to multiply the z and a outputs together. The z output is discontinuous since its value is uniform throughout each tile and, as a result, jumps from tile to tile. The ‘a’ output, on the other hand, fades to zero at
the tile edges. By multiplying the two together, the edge discontinuities are removed. This technique is often useful
when designing trees for use with ArtMatic Voyager.
The image at the left uses the ‘z’ output alone for the elevation map. Note the random heights and that each “tile” has a constant height with a sheer dropoff.
The image at right multiplies the z channel with the alpha channel to avoid the discontinuties. The alpha mask has a peak at the center. You could use a 1->1 filter after the alpha mask to remove the peaks while keeping the smooth edge transitions.
Example files. This family of tiles is capable of creating a large variety of effects. Be sure to explore the provided
example files (they have XYza in their names) to see them in action.
XYza Regular Tiles # (Renamed and Vastly Changed in 6.0)
Renamed from XYZA Tiles. This component provides many different tiling algorithms, and like the other XYza
components, the output is a a space transform from the two leftmost outputs, a randomized z value from the third
output and an alpha channel that delineates the tiles. Color Regular Tiles shares the same tiling algorithms but outputs RGB+Alpha rather than XYza output.
While only 3 regular tilings are geometrically possible with one regular polygon (square, triangle and hexagonal
tiling), by relaxing the regularity of the tiling many other tilings are possible. The Cairo tiling, for example, which
has been used since antiquity is especially interesting with its pentagonal angles in the 18º version.
Tile rotation is available (via parameter D) for some algorithms that changes the tiling pattern and tile shape. Such
algorithms have an asterisk (*) in their names.
When mirror appears in an algorithm name, it means the coordinates are using mirror symmetries on the tile edges
when sent from the XYza version.
- 85 -
REFERENCE: 2->4 Components
The
•
•
•
•
•
•
•
•
•
•
•
•
•
•
algorithms
:
Rectangular Tiling
Unit Square Tiling
Square Tiling 45°
Triangles 2 Tiling
Triangles 6 Tiling
Lozenges Tiling
Triangles mirror Tiling
Hexagonal Tiling
Cairo 18° Tiling. http://en.wikipedia.org/wiki/Cairo_pentagonal_tiling
Cairo mirror Tiling
Square mirror Tiling 45°
Octagonal mirror Tiling 45°
Decagonal Triangles Tiling
PolyCairo Tiling
XYza Semiregular Tiles #
This component implements many interesting tilings that make use of two or more polygons. While the algorithms
do not include all possible tiling, they include the most interesting ones. Several different foldings are provided for
the beautiful Islamic star patterns.
For most algorithms, parameter A is Scale and scales the output space. However, for some algorithms, parameter A
is Tile Spread. Frequency, parameter B, sets the tiling frequency (the size of the tiles).
Islamic sixteenfold algorithm (file: MultiShaded Tiles Islamic 16)
The z-output can be used when combining multiple tiling components to create complex blends. The Tiling Advanced & Composites example provide some interesting ideas. The possibilities are endless.
Algorithms:
• Square & triangles
• Square & triangles mirror
• Hexagons & triangles
- 86 -
REFERENCE: 2->4 Components
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Hexagons, squares & triangles
Hexagons, squares & triangles mirror
Squares & triangles B mirror
Decagons & pentagons mirror
Islamic sixfold A
Islamic sixfold B
Islamic heigthfold
Islamic heigthfold 45°
Islamic ninefold
Islamic tenfold A
Islamic tenfold B
Islamic twelvefold A (hexa)
Islamic twelvefold B (hexa)
Islamic twelvefold C (45°)
Islamic sixteenfold
Pentagonal cristal mirror
XYza Voronoi Tiles # (expanded and Renamed)
Renamed from XYza Facet Space and expanded with many new algorithms. This provides many interesting space
tilings.
Example: voronoi twirl
Algorithms:
• Random facets. The original Facet Space algorithm. This component tiles space into irregular facets that has an
almost skin-like pattern.
• Voronoi A
• Voronoi B
• Voronoi C
• Voronoi D
• Voronoi E
• Voronoi twirl
• Voronoi cristal 45
• Voronoi cristal 90
- 87 -
REFERENCE: 2->4 Components
• Voronoi cristal 120
• Voronoi penta cristal
XYza Tiled disks # (updated)
A: Amplitude B: Frequency
This component tiles space into adjacent circular disks. The first parameter controls the disk size. Some cool decorative effects based on disks are possible with these.
algorithms
:
• Packed hexa disks. The original algorithm
• Overlapping disks 45 . Overlapping disks in a 45° tiling
• Overlapping disks 60 . Overlapping disks in 60° (hexagonal) tile structure
XYza jitter disks
A: Scale B: Jitter Amount C: Freq
This component creates overlapping tiles whose overlap is determined by the Jitter Amount parameter (B). When
Jitter Amount is 0, the pattern is the same as XYza Tiled disks (i.e. tiles are non-overlapping). When Jitter Amount
is at its maximum, there appear to be overlapping layers of disks.
XYZa Polar Tile
A: Size B: Tile # C: Phase
This component creates a tiled polar remapping of space where the tiles get small the closer when gets to the Origin
(0,0).
XYza Quantizer #(renamed and expanded)
A: Z Amp B: Mask shape C: Freq
Renamed from Quantizer Spot. There are several algorithms that provide different mask shapes. For all algorithms
except Circles, parameter B sets the mask level. Unlike most of the other XYZa components, this component
quantizes the input space rather and does not create tiles that repeat the same portion of space over and over. This
component is great for creating pixellation effects.
The size of the created ‘spots’ is determined by the Frequency parameter. When the
frequency is low, the quantization creates large spots (resulting in coarse pixellation ).
Small spotis are created when the Frequency is high. Algorithm shown: Mask: Circles.
Example files: Q Random Series and Q Shaded Octodots B.
Algorithms
• Mask : circles. Thge original algorithm.
• Mask : squares
• Mask : lozenges
• Mask : pentagons
• Mask : hexagons
• Mask : octagons
- 88 -
REFERENCE: 2->4 Components
XYza Sparse Spot
A: Scale B: Spareseness C: Freq
This component maps the incoming space into a random arrangement of square tiles. Some tiles repeat randomized
portions of the incoming space and some tiles have the same xy values for each pixel of the tile. The Sparseness
parameter determines the ratio of constant to non-constant tiles. The alpha mask is a pattern of spots the correspond
with the square tiles.
The space transform creates a pattern of
The alpha mask is a pattern of shaded spots
The mask applied to the output of the space
interspersed tiles
that correspond to the tiles.
transform
XYza Tiled Spot
A: Scale B: Mask Shape C: Frequency
This component behaves the same as XYza Tiles except that the mask is made up of disks that coincide with the tiles
rather than rectangles. The size of the disks is controlled by the Mask Shape parameter.
(XYza) Apollonian Gasket
A: Size B: Offset x C: Offset y
This component remaps the incoming space into an arrangement of circular tiles that fills space with non-overlapping circles of smaller and smaller size using the Appollonian Gasket algorithm. Unlike the other XYza components, this component’s z values are not always uniform within each created tile. The Apollonian Gasket is a
very interesting pattern well-known to fractal-lovers and mathematicians. Learn more about it at http://mathworld.
wolfram.com/ApollonianGasket.html
Space transform applied to a grid
Result when Z is fed to Z Rotate & Scale
Close-up of a portion of the z output
mapped with a gradient.
XYza Escher Disk
A: Disk # B: Curvature C: Rotation
This component creates an Escher-like remapping of the incoming space into a disk composed of disks. The Z output is not randomized; rather, it is a series of facetted tiles that can be used as a mask. The edge of each tile is black
and the center white (when drawn with a black-to-white gradient) just like the alpha mask output of the other XYza
components. The A output is a disk that encloses the outermost disk created by the XY outputs. In many cases, the
Z or A output might not be used.
- 89 -
REFERENCE: 2->4 Components
XY output applied to U&I Logo
Z output
A output
XYza Patterns # (renamed and expanded)
Renamed from Tek Pyramids. This component provides many interesting irregular tilings and patterns. Most of the
patterns are arrangements of various sized blocks.
3D applications. Some of the algorithms are especially interesting for 3D architecture in ArtMatic Voyager where
the z value can be used to apply different textures to different arts of a 3D object or construction. The z value (the
index passed from the z output) for some patterns defines roof and ground zones. This allows you to use this component to select from different color textures when used with 4->4 Packed Index (w) Mixer.
The z-output of this component is very useful for controlling the mix of a number of textures especially when used
with the 4->4 Packed Index (w) Mixer. The z-output range is -2 to 3. There are several different patterns used when
generating the z-value. Generally, those patterns that have a ‘roof’ zone set z to -1 for the roof and -2 for the ground.
Phase parameter. Some patterns are 3D derived from 3D textures with the phase parameter sliding the slice along
the z-axis to reveal pattern variations. Otherwise, the phase offsets the pattern along the x axis.
Smoothness. The smoothness parameter determines edge rounding.
Algorithms:
• Random Pyramids. The legacy pattern.
• Random blocks. A mix of several indexes that vary randomly in randomly placed blocks.
- 90 -
REFERENCE: 2->4 Components
• Mixed wall pattern. A pattern with thin vertical separation bands and larger horizontal bands
• Stones wall pattern
stone wall pattern used in a penta crystal 2D space (File: Subway PentaCristal tiles)
The next algorithms combine various patterns according to elevation (the fourth output value). Bauhaus Building a simple geometric design suitable for modern buildings. Bahaus has a roof zone (-1) but no ground and is infinite
where y<0. So, it can easily be used for towers.
• Pattern blocks B
• Pattern blocks C
• Zones blocks A. Zones Blocks A provides a handy means to have different ground, wall and roof textures with a
decorative band in-between as shown in the example below.
- 91 -
REFERENCE: 2->4 Components
Zones Block A Example (file: Allee ZB_A.vy)
• Zones blocks B
• Zones blocks C
• Zones blocks D
Above: Zones Blocks C for the decorative patterning on the building. (File: Decorated Door B)
• Zones: Western house 2L. Two level house texture with windows. Roof zone uses index -1 , ground zone uses
index -2
• Zones: Bricks wall house 3L. Three level brick house texture with windows and doors. The windows are using
- 92 -
REFERENCE: 2->4 Components
index 3 with an a (the fourth output) value generally below zero. Since it uses an alpha value below 0, you can use
4->4 RGB*Alpha with the parameter option “Use depth cue color for alpha-” to color the windows.
• Zones: Chinese house
• Zones: Arcades stones 1L
• Zones: Arcades stones 2L
Tuscan castle using “Arcades stones 2L” for the wall texture (File:34 uvid volumes tuscan castel.vy )
Zones: Arcades mixed
• Zones: Roman 1L
- 93 -
Simple
REFERENCE: 2->4 Components
Mosque using “Zones: Roman 1L”
More example can be found in the DFRM Architecture folder (ArtMatic Voyager). Examples include Test BlockTexture and the Allee ZB series. 2D examples can be find in the Pattern # series.
Color Shape Primitives
Color Polygon N
A: Sides B: Radius C: Color Cycle
This component creates a color polygon whose color is determined by the Color Cycle parameter. The alpha mask
fades to 0 at the polygon edges and has its maximum value at the polygon center. The number of sides is determined
by Parameter A.
Color Circle
A: Amplitude B: Radius C: Color Cycle
This component is an RGB shader that creates a circle and circular alpha mask. When the Amplitude (parameter
A) is greater than 0, the circle is in color and the background is black. When the Amplitude is less than 0, the circle is black and the background is in color. The output is continuous. So, there is a smooth transition at the circle
boundary--although it may only be visible if zoomed far in. The amplitude influences the distance over which the
transition is made. When the absolute value of the amplitude is small, the area over which the transition occurs is
large. When the absolute value of amplitude is large, the transition occurs over a small distance, and the circle will
appear to be two-toned.
A = -8
A = -0.013
A = 0.30
A=8
Color Line
A: Rotation B: Size C: Color Cycle
This component is a color shader that creates a rectangle whose size is determined by parameter B.
Color Neon Line
A: Rotation B: Size C: Color Cycle
This component is similar to color line but has diffuse edges that give a 3D or glow-like appearance.
Gaussian Dot
A: Amplitude B: Radius C: Color Cycle
This component is an RGB+Alpha version of the 2->1 Gaussian Dot. It creats a color circle with diffuse edges and
a corresponding mask. When the output is passed to ArtMatic Voyager, the result is a colored mound.
RGBa half plane
A: Rotation B: Offset C: Color Cycle
This color shading component is similar to the 1->4 version but maps space to a half-plane rather than mapping a
single value.
- 94 -
REFERENCE: 2->4 Components
Voyager City Utilities
These functions are useful for creating ArtMatic Voyager cities and for creating interesting techno graphics.
City Maps # (xziy)
A: Pattern B: Amplitude C: Frequency
ArtMatic Voyager example xyzi SFMIX.
Voyager elevation.
This is a component dedicated to creating cities in ArtMatic Voyager. The
outputs are interpreted differently than most other components and are
intended to be used with components specially-designed for creating ArtMatic Voyager cities. The first two outputs (here called x and z) are passed
through unchanged and are the ground co-ordinates for the city structures.
The third output (i) is a texture index (value: -2 to +128) and is designed
to be used by special components (currently 4->4 City Textures and 4->2
City Ambience) to select a particular pattern from the city textures bank
shared by the components. Negative values of i select street textures and
values 0 and greater select buildings. The fourth output (y) is ArtMatic
Feed the output of this component to 4->4 City Textures to create cities (in ArtMatic Voyager) and to
4->2 City Ambient and Reflect to create reflections and window lighting. A simple tree to create an
ArtMatic Voyager city is shown at left.
City Soft.
Pattern determines the city layout. The values are: City A Sharp, City A Soft, City B Sharp, City B
Soft, City C Sharp, City C Soft, Alien City Sharp, Alien City Soft, High Rise City Sharp, High Rise
Tech Noise #
A: Pattern B: Amplitude C: Frequency D: Color Variance
RGB+Alpha color texture whose pattern is selected by parameter A. This component is useful for both decorative
textures and RGB+Elevation maps for ArtMatic Voyager. There is a sharp and smooth version of most patterns.
Use the smooth versions when creating systems for use in Voyager since the sharp versions have discontinuities
that can cause aliasing problems. The street marks setting for parameter A provides markings found on streets and
passage ways and is useful in building composite city textures. A partial list of the patterns provided by Parameter
A: Square Grid, Square Edge Grid, Building A, Building B, City, Techno Maze, Computer Room, Street Marks,
Ground Marks.
Parameter D. Color Variance. At zero only a single color is used.
The city at left was created with the
tree shown above. Above right: the
image as seen in ArtMatic.
- 95 -
REFERENCE: 2->4 Components
Color Textures and Patterns
RGBa Pict/Movie
A: Size B: Contrast C: Tiling
This RGB+Alpha color shader is identical to the 2->3 version of the component except that it accesses the input
picture’s (or movie’s) alpha channel if there is one. This component only needs to be used if the input pict/movie
has an alpha channel.For a general guide to Pict/Movie components, see the Using Pictures and Movies chapter of
the reference manual.
RGBa Blurred Pict/Movie (new)
A color version of the 2->1 Blurred Pict/Movie component. The source image is loaded into an internal buffer and
blurred. The loading time increases with the size of the image. Very, very large-sized images may take a long time to
load since ArtMatic applies a high-quality blur algorithm and blurring is by nature a cpu-intensive task. (As a point
of reference a 5120 * 4800 pixel image loaded quite quickly on a dual-core 2.4 GHz MacBook Pro while a 10,000
by 10,000 pixel image loaded fine but took many minutes to load).
Mondrian
A: Amplitude B: Color Cycle C: Frequency
RGB+Alpha color shader that creates a pattern of random blocks reminiscent of the works of Piet Mondrian. The
alpha mask is black everywhere that the pattern is black and uses intermediate shades where the RGB is non-black.
City Blocks
A: Amplitude B: Color Cycle C: Frequency
RGB+Alpha color shader that creates a pattern of colored blocks against
a black background. When used as the basis of a 4-output tree that supplies RGB+Elevation to ArtMatic Voyager, the result is a terrain that
looks like a stylized city with buildings of various heights.
City Blocks as seen in
As seen in ArtMatic
ArtMatic
Voyager
Orthogonal Maze
A: Amplitude B: Color Cycle C: Freq.
This component creates a color texture that resembles a maze where all the paths connect at 90 degree angles. The
alpha channel outlines the maze contour.
Hexagonal Maze
A: Amplitude B: Color Cycle C: Freq.
This component creates a maze-like texture with a hexagonal geometry.
Light LED Array
A: Amplitude B: Style C: Freq.
The color texture resembles an array of LED lights. The alpha channel is essentially a grayscale representation of
the LED array. The Style parameter determines the visual style of the array. At some settings the array is sparse and
LEDs are uniform; at other settings, the spacing is more dense with some variability in LED shading and shape.
- 96 -
REFERENCE: 2->4 Components
Random Sticks
A: Orientation B: Color Style C: Freq.
Color texture that resembles a random assortment of colored toothpicks – i.e. short-line segments. The Orientation
parameter determines whether the sticks all have the same orientation or if they are randomly rotated.
Slanted Disk Noise
A: Amp. B: Disk Orientation C: Freq.
Color texture that resembles a random assortment of color disks whose angular orientation is determined by the
Disk Orientation parameter.
Random Polygons A
Params:A: Amplitude B: Color Cycle C: Freq.
Color texture made up of randomly sized and oriented polygons. This version of the texture is dominated by arrangements that are oriented at right angles
Random Polygons B
A: Amplitude B: Color Cycle C: Freq.
Color texture made up of randomly sized and oriented polygons. This version of the texture is less dominated by
right angles than version A.
Triangle Random Mesh
A: Amp. B: Color Variance C: Freq.
Mesh-like color texture made up of triangles of varied size and shape.
Random Circles
A: Amp. B: Color Variance C: Freq.
An arrangement of randomly-sized and shaded circles.
Color Stars
A: Amp. B: Color variation C: Freq.
Color texture that resembles a star field.
Random Domes
A: Amp. B: Dome Shape C: Freq.
An arrangement of randomly-shaped and colored ‘domes’. Dome Shape can be used to flatten the dome tops.
Time R-patchwork
A: Amp. B: Sharpness C: Freq.
Patchwork color texture that is automatically animated by time even with all parameters locked. The
pattern is a patchwork of irregular rectangles organized into rectangular patches. When animated,
the rectangles within each patch scroll . The Sharpness parameter influences both the lines that delineate the rectangles and the contrast of the alpha channel. When Sharpness is low, the channels
that separate the patches are wider than when Sharpness is set higher. When used in ArtMatic Voyager, the rectangles have flat tops and rounded edges when the sharpness is low and beveled tops
when sharpness is high. The colors are derived from the current gradient.
- 97 -
REFERENCE: 2->4 Components
Fractal Shaded Clouds
A: Amp. B: Shadow Offset C: Freq.
Color texture primarily provided for use with ArtMatic Voyager for RGB Clouds. The alpha channel provides a
mask that Voyager uses to blend the ArtMatic clouds with Voyager’s sky color. The Shadow Offset influences the
direction of the shadowing on the clouds’ undersurface. It has a range of 0-1 and is an offset added to both the sky
color and the virtual shadows created by the clouds. When the value is 0, the shadows are vertical and at 1 the sun
seems to be coming from the top left. Use a rotation tile at the top of the system is you need to orient the light differently.
Interlaced Grid
A: Rotation B: Color Cycle C: Freq,
This component creates an RGB interlaced grid. The alpha channel provides enhanced 3D texturing when the RGB
Alpha Bump color shader is used. The alpha channel also makes the grid spaces transparent.
Color Regular Tiles # (Vastly updated and renamed)
Renamed from Color Tiles, this component provides a number of tiling methods based on a single polygon (regular
or irregular). It provides a means to create an amazing variety of tile patterns. The output is RGBA where the alpha
channel delineates the tile borders. The alpha channel provides 3D contours when the RGB Bump shader is used.
The tiles are delineated by black borders.
There are three parameter options that determine the color shading: use procedural color cycle, use main gradient,
use indexed gradient.
When Indexed Gradient is selected, parameter B determines the gradient that is used. When it is chosen, you can
also edit the gradient by editing the Gradient Edit icon that appears below the parameter sliders.
The meaning of parameters A and B are dependent on the selected parameter option and determine how the tiles are
colored. Parameters C and D determine Frequency and a parameter such as Size or Rotation that is determined by
the algorithm.
Rotation. Changing the rotation of algorithms
marked by * results in a change of the tile shape
which allows the creation of dramatic tilings not
possible with other apps.
Alpha and Contour. (Left) The image as seen with
the RGB Multi shader which ignores the alpha
channel. (Right) The alpha channel provides 3D
contours when used with the 3D Bump Color Shader.
2->4 XYza Regular Tiles is a sibling component that performs the same tiling but outputs a space transform, randomized index and alpa channel that can be used when you do not want to output color directly.
See 2->4 XYza Regular Tiles for a list of the available algorithms. Note that those algorithms with mirror in the
name may appear the same as the unmirrored algorithm in the color version -- whereas in the XYza version the
- 98 -
REFERENCE: 2->4 Components
mirroring is obvious. See illustration in the section Color Semiregular Tiles.
Color Semiregular Tiles #
This is the color implementation of the tiling algorithms found in XYza Semiregular TIles. See the 2->4 Color
Regular tiles for information about the color mapping and parameter options. See XYza Semiregular Tiles for more
information about the algorithms and space transform.
Those algorithms with mirror in the name may appear the same as the unmirrored algorithm in the color version
whereas in the XYza version the mirroring is obvious.
Semiregular tiles. Algorithm: Squares & Triangles (plain)
Semiregular tiles. Algorithm: Squares & Triangles (mirror)
Color Semiregular
Color Triangle Tiles (updated)
Color Semiregular tiles
mixed with XYza tiles
XYZa Tiles output
A: Color Cycle B: Phase C: Freq.
Color texture made up of colored triangles. The alpha channel provides a bevel effect to the tile tops when the RGB
alpha bump color shader is used.
The parameter options determine the color shading: use procedural color cycle, use main gradient, use indexed
gradient.
When Indexed Gradient is selected, parameter B determines the gradient that is used. When it is chosen, you can
also edit the gradient by editing the Gradient Edit icon that appears below the parameter sliders.
Color Hexagonal Tiles
A: Color Cycle B: Phase C: Freq.
Color texture made up of colored hexagons. The alpha channel provides a bevel effect to the tile tops when the
RGB alpha bump color shader is used.
The parameter options determine the color shading: use procedural color cycle, use main gradient, use indexed
gradient.
Roof and wall patterns # (new)
This component provides a set of 2D textures reminiscent of tiled walls and roofs that are useful for wall and roof
textures in ArtMatic Voyager or for 2D decorative design. The colors are subject to random variation. The Color
- 99 -
REFERENCE: 2->4 Components
Variance parameter modulates the variation amount. Three parameter options are provided that determine the color
mapping: use procedural color cycle, use main gradient, use indexed gradient.
Algorithms:
Roof Tubular
Roof Alternate
Multifractal Noise
Roof 45º
Wall Bricks
A: Amp. B: Roughness C: Freq.
RGB+Alpha version of this great noise function. The alpha channel is an independent multi-fractal noise similar to
the 2->1 MultiFractal noise. (Essentially, this component that combines the 2->3 MultiFractal Noise with a 2->1
MultiFractal Noise.
Sparse MultiFractal
A: Amplitude B: Roughness C: Freq.
This version of MultiFractal Noise has a sparse distribution of the texture’s colors.
Ridged Noise
A: Amplitude B: Roughness  C: Freq.
This is a gray and tan fractal noise function that creates lovely textures and is very useful in ArtMatic Voyager where
it creates lovely desert /volcanic surfaces and coloration.
Fractal Facets
This RGB+Alpha component creates a color texture of muted grays and an alpha channel whose contours are something like a lunar surface that has smooth areas pocked with craters and faceted ridgelines.
Dunes
Parameters:A: Amplitude B: Amount C: Frequency
As the name implies, this component provides sand dune coloration and surface contours when used in ArtMatic
Voyager. Amplitude governs the dune height and Amount governs the distribution and contours of the dunes.
Lunar Granite Noise
A: Amp. B: Roughness C: Freq.
This is another lunar-like color texture that creates a lunar-like surface without the smooth regions found in FractalFacets.
Rocks
A: Amplitude B: Amount C: Frequency
Color texture+elevation component useful for creating rocky surfaces in ArtMatic Voyager. This component is especially useful in Voyager’s combination mode for adding rocky areas to built-in planets.
- 100 -
REFERENCE: 2->4 Components
Lichen Rocks
A: Amplitude B: Amount C: Frequency
Color texture+elevation component that creates the appearance of lichen-covered rocks when used in ArtMatic
Voyager.
Pebbles
A: Amplitude B: Roughness C: Frequency
Realistic color texture+elevation component that imitates multi-colored quartz pebbles. This component is great for
adding pebbles to the seashore in ArtMatic Voyager.
Dome Rock
A: Amplitude B: Amount C: Frequency
Color texture+elevation component that creates a rocky landscape with boulders whose surfaces are rounded.
Fractal Curves
A: Amplitude B: Amount C: Frequency
The RGB output is a lovely color fractal noise and the alpha channel resembles a meandering river system’s contours. The Amount parameter adds yellow-green and purple areas to the color texture.
Earth Cracks
A: Amplitude B: Amount C: Frequency
Color texture+elevation component that creates a terrain of cracked earth. The Amount parameter influences the
steepness of the cracks as well as the size of the “dry river beds” found in the terrain.
Vein Network
A: Amplitude B: Roughness C: Frequency
Color-texture that resembles a veined leaf. The alpha channels matches the leaf’s veins and provides 3D texture
when used with the RGB Alpha Bump color shader.
2->4 Packed Mixers
These components mix packed streams. Use these mixers when one or both of the inputs has an alpha channel.
Packed Alpha Mixer Considerations
Starting wih ArtMatic 5.0 some changes were made to how Packed Alpha mixers work when receiving inputs that
are not RGBA: such as occasions when scalar inputs are used (non-packed inputs) or when a 3->1 Pack component
is the input rather than 4->1 Pack. In general, Infinity is transmitted out where all the input values are infinite. Scalar input values are treated as surfaces shaded with gray levels according to height. 3->1 packed inputs are given a
default alpha/height value except for Packed Add where it is set to 0.
Packed Crossfade
A: Interpolate
Mix the two inputs by blending them. The Interpolate parameter determines the balance between the two inputs.
Packed Add (Updated 5.0)
A: Level A B: Level B
This components mixes the two inputs by adding the the RGB and alpha values of the inputs independently. Param- 101 -
REFERENCE: 2->4 Components
eter B, which controls the second input’s level, has a range from -2 to +2. When it has a negative value, the result
is subtraction of Input B’s pixels from Input A’s.
Starting with ArtMatic 5, this component no longer limits values to 0 and over. Negative colors can be interesting
for special effects (such a negative lights). If you need to clamp values to 0 and over, use any of the following: 4->4
Contrast & Offset, 4->4 Color Shift, 4->4 Smooth Floor, or 3->3 RGB Contrast.
The RGB output formula is: (Input A RGB * Level A) + (Input B RGB * Level B)
The alpha output formula is (Input A Alpha * Level A) + (Input B Alpha * Level B)
Packed Max
A: Level Balance B: Follow in1 C: Feather %
This components mixes the two inputs by comparing the alpha channel (the fourth input) of both inputs and taking
the pixels from the stream whose alpha channel has the larges value. Level Balance is multiplied with input one’s
alpha channel. Feather softens the boundary edges.
Packed Logic # (Renamed and Vastly Expanded)
Formerly, Packed Alpha Min. Packed Logic provides a variety of ways to blend two RGBA streams or two colored
DFRM distance fields (where object color is in the first three inputs and the distance field is in the fourth input). It
is similar to 2->1 Logic tools but is useful for combining colored objects.
The Logic Sphere Teeth example from the 24 Color Logic folder is a good example to study. It combines several
primitive shapes using a few 2->4 Packed Logic components to create this complex shape.
For the examples below, two shapes are used:
- 102 -
REFERENCE: 2->4 Components
A: yellow sphere
B: blue cube
Tree used for the example
Parameters:
A: Feather. This controls the blending at the intersection of shape A and shape B. With no feathering, the
algorithm is followed strictly and there can be very abrupt transitions. Increasing the feathering smooths
the intersections.
Feather = 0
Feather = 2 (the maximum)
B: Follow A. This controls the blending of shape A and shape B. When Follow A is 0, the blending is
done strictly according to the selected algorithm. As the value of parameter B increases, the influence of
shape A increases.
Feather =0; Follow = 0
Follow = 0.5 (Feather 0)
Follow = 1.0
Notice that with Follow at 1.0 that the shape is Shape A but the color is from Shape B
C: Mix Color A OR Repulsion/Ripples. The meaning of parameter C depends on the selected algorithm.
When using this component, you can mouse over the slider to see which meaning the parameter has.
When the meaning is Mix Color A it controls the color blending. This allows you to give preference to
shape A’s colors even if Shape B’s shape happens to dominate.
Mix Color A = 0 [Alg: Min]
Mix Color A = 1 [Alg: Min]
- 103 -
REFERENCE: 2->4 Components
When the Repulsive Union is the algorithm, parameter C controls the Repulsion strength.
Repulsion = 0
Repulsion = 1 [B=0.5]
Ripples. When Ripples Union is used parameter C also influences the rippling at the object intersection
Repulsion/Ripples = 0
algorithms
Repulsion/Ripples = 1 [B=0.5]
:
• Intersection (min)
Feather = 0
• Union (max)
Feather = 0
Feather: max; B=0
Feather: max; B=.8
Feather: max
• Subtraction (Min(x,-y))
Subtract shape B from shape A. The Colors of the subtracted part are set to field B’s. Subtraction can be
use to dig a hole on a shape. Logical operations (the sign) are preserved when chaining the output of this
component. As a result, subtracting from a subtracted object can yield a positive area.
- 104 -
REFERENCE: 2->4 Components
Feather = 0
Feather: 0.7
• Framed Subtract
Feather = 0; Border spread
Border spread .05 Feather:
Border thickness < 0 allows
.05
0.215
A’s color to appear inside
Subtract input B from input A framing the border of the intersection with positive values using the colors of input
B. Parameter B controls the mixing of A’s and B’s colors. Notice that the inner color here is a mixture of A’s yellow
and B’s blue. Parameters: A-Feather; B-Mix Color;C-Border Thickness,D-Border Spread.
ARCHITECTURAL APPLICATIONS
This component is particularly useful designing architectural features such as windows and doors. Unlike the
“edged” algorithms, the border texture comes entirely from input B.
The tower windows here were cut using Framed Subtract algorithm (File: Roman R Tower textured)
- 105 -
REFERENCE: 2->4 Components
Tower System
Windows System
• Repulsive Union
A=.011, B=.7, C=0
• Repulsive Subtract
A=.011, B=.7, C=Max
A=0, B=0, C=0
• Ripple Union
A=0, B=0, C=0.4
A=.4, B=.2, C=0
• Ripple Subtract
A=.4, B=.2, C=0
A=.4, B=.2, C=0
A=.4, B=.2, C=0
S-Ripple Union - symmetrical ripple Union
A=.4, B=.2, C=0
A=.4, B=.2, C=0
S-Ripple Subtract - symmetrical ripple subtraction.
- 106 -
Tower - Windows with Framed
Subtract
REFERENCE: 2->4 Components
A=.4, B=.2, C=0
A=.4, B=.2, C=0
• Partial Subtract
Partially subtract B from A leaving a hole in A with the inner color coming from input B. When designing DFRM
objects Partial Subtract is useful for embossing, cutting windows, carving and texturing.
Partial subtract allows a border around the cut to be provided by the depth-cue color (the first auxiliary color). The
parameters are: Feather (A), Thickness (B), Border Thickness (C), Border Spread (D).
All parameters at their minimum
The Thickness parameter (B)
determines the thickness of
the hole cut by input B
Border Spread (param D) determines how far the depth
cueing color (red, here)
spreads into the border
There are complex interactions between the parameters
that makes a large number of
objects possible from one pair
of inputs
Tower System
Windows System
• Edged Intersect
- 107 -
The Border Thickness (C) is
the thickness of the region
around the cut. It is shaded
with the depth-cueing color
which is red in this example
Tower - Windows with Partial
Subtract. Depth cue color:
yellow. Large thickness.
REFERENCE: 2->4 Components
Create a solid from the intersection of inputs A and B with a border whose color is defined by the depth cue color.
A:0; B:0; C:0.1; D: -.0025
NE Level at Max
This Venitian tower uses Edged Intersect for the main blocks and Partial Subtract for the windows . (File: Venitian edged tower.vy
• Edged Subtract
Subtract B from A with a decorative border at the edges. The edges are colored with the depth cue color. NE Level
modulates how much of the non-edge part of the solid is visible. When NE Level is at the maximum, only the edge
areas are visible. The edge contours are dependent on the contours of the input fields.
Parameters: Feather (A), Mix Color (B), Border Thickness (C), NE Level (D).
A:0; B:0; C:.007; D: -.0025
NE Level at the maximum
• Edged Union- / Edged Union+
These related algorithms create edges at the union of two objects. Edged Union - removes the edges from the volume and Edged Union + adds edges. The color of the edge is the depth cue color
Edged Union -
Edged Union +
- 108 -
REFERENCE: 2->4 Components
Packed Alpha Math # (expanded and Renamed)
Formerly, Packed Alpha Mul. Several algorithms were added to make this a much more powerful way to blend
RGBA images.
Parameters. For all algorithms, parameter A is the color blending control. The meanings of parameters B and C vary
with the algorithm.
RGBA channel A
RGBA channel B
Algorithms
Multiply Alpha & Blend colors - this was the algorithm used in earlier versions of ArtMatic. The alpha channels are
multiplied and the colors of the two channels blended (interpolated). Parameter B = Alpha A offset. Parameter C =
Alpha B offset.
Default params.
RGB Alpha shader
Default params.
RGB Multi shader
Param B at min.
RGB Multi shader
Param B at max.
RGB Multi shader
Multiply All - Does a strict multiply off both the alpha channels and the RGB channels. Parameter B = Scale Alpha.
Parameter C is unused.
Default params.
RGB Alpha shader
Param B at max.
RGB Alpha shader
Default params.
RGB Multi shader
Blend Alphas & Colors - blend the alpha and RGB channels with different amounts. Parameter A controls the color blending while parameter B controls the alpha blending. This is useful for mixing RGBA channels and also for
blending color DFRM channels. It allows you to add bumps (for example) from one channel while keeping the color
from the the other channel (unlike the normal Packed Alpha Blend component).
- 109 -
REFERENCE: 2->4 Components
A=0 ; B=1
RGB Alpha shader
A=.5 ; B = .5
RGB Alpha shader
Blue Sphere
Distorted Cube
A=.5 ; B = 1
RGB Alpha shader
Color from sphere. Color from cube.
Shape from cube. Shape sphere.
Add Alphas & Multiply Colors - parameter A controls the blending of color A with the result of multiplied colors
of the two RGB channels. Parameter B scales the Alpha channel of the first input. Parameter C scales the Alpha
channel of the second input and the two are added together. Output alpha = (Alpha A * B) + (Alpha B * C)
This component is useful for blending both RGBA images and color DFRM objects
A=0 ; B=1 ; C = 1
RGB Alpha shader
A= 0 ; B = 1; C = .5 A, B and C = 1
RGB Alpha shader RGB Alpha shader
Packed Alpha Blend
A: Feather B: Add in 1 C: Flatten in 2
Blend input B with input A treating A as the background image. Input B’s transparency is determined by its alpha
mask value. For instance, where input B’s alpha mask is 0, its image will be invisible (because it is completely
transparent). Feather% scales the Input B alpha mask values.
Packed Alpha Compose (Updated)
A: Feather A B: Feather B C: Backgr. Color
This component provides two algorithms for compositing two RGBA streams.
- 110 -
REFERENCE: 2->4 Components
Examples: Packed Alpha compose
Algorithms:
• Compose over color. A & B composited over a colored background. This was the original algorithm. Blend the
two inputs treating the alpha channels as transparency. The background color defined by parameter C shows through
where the inputs are transparent. Feather A and Feather B control the feathering of the left input (A) and right input
(B) with respect to their alpha masks. A large feathering value reduces hard mask edges by blurring the transition
from transparent to opaque.
• Max Compose. Adds B over A using Maximum for the alpha channels and alpha blending for the RGB channels.
This mode is now the default and is well-suited for 2D graphics compositing.
- 111 -
2->5 Components
2->5 components are unique in that they act in many ways like a composite function that combines two functions
with independent outputs (a space transform and a color texture generator) in one tile. When the input is a 2D space,
the left two outputs are a space transform and the right three outputs are an RGB output texture. In many cases, you
will use only the left two outputs or the rightmost outputs. Many examples have been supplied in the 25 Examples
folder. When a 2->5 component is the bottom component of a tree its three right outputs are used for RGB output
and the left two outputs are ignored.
Tips for Exploring
Trees like the ones shown at the left are invaluable for exploring the 2->5 components. The difference between theses trees
is the component fed by the 2->5 component’s space transform
(its left two outputs). The choice of component (Interlaced
Grid, RGBa Pict/Movie, or RGB Circle) can reveal different
properties of the 2->5 component feeding it. The Interlaced
Grid component is particularly useful for visualizing the space
transformation and is used in many of the illustrations in this
chapter. The circle and picture components tend to reveal aesthetic possibilities not obvious when the grid is used. Use the
bottom component in the tree (Packed RGB Crossfade) to control the mix of the component’s color texture and the image
created by the space transform’s branch.
Polar Space
A: Radial Steps B: Radial Phase C: Phase
Space transform. Polar transform of the input space. Polar transforms turn
straight lines into curves and circles as demonstrated by the remapping of the
Grid. RGB texture. A circular mapping of the current gradient uninfluenced by
the component parameters.
Space transform
RGB output
A: Radial Steps. The number of axes of symmetry.
B: Radial Phase. Rotation of the output space.
C: Phase. This parameter shifts the input space to or away from the center.
Rotate N
A: Rotation Steps B: Phase C: Scale
Space transform. Kaleidoscopic space transform that takes a wedge of the incoming space and repeats it by rotating it around the center. The number of
wedges created is determined by parameter A. RGB texture. Wedges colored
by the active gradient. Rotation Steps. The number of axes of symmetry. This
influences both the color texture and the space transform.
- 112 -
REFERENCE: 2->5 Components
Mirror
A: Rotation B: Offset X C: Offset Y
Space transform. Mirrors the incoming space about an axis whose rotation is
controlled by parameter A. RGB texture. Mirrored color wheel drawn from the
current gradient and mirrored with the same rotation as the space transform. A
line is drawn with the first auxiliary color at the center of the mirror.
Space transform
RGB output
Mirror N
A: Symmetries B: Offset x C: Offset y
Space transform. Mirror the incoming space with N number of axes of symmetry
for kaleidoscopic effects. RGB texture. Mirrored color wheel drawn from the
current gradient and mirrored with the same rotation as the space transform. A
line is drawn with the first auxiliary color for each axis.
Space transform
RGB output
Outer Mirror N
Space transform
RGB output
A: Rotation B: Offset x C: Mirrors number
Space transform. This component mirrors the incoming space outwards with the
number of symmetries determined by the Mirrors Number parameter. Parameters A and B allow a rotation and offset to be applied before the mirroring
is performed. The result is like a kaleidoscope on steroids. Be sure to explore
how rotation, offset and the mirrors number interact. RGB texture. Wedges of
color taken from the current gradient. The number of wedges is determined by
parameter A.
Tiles
Space transform
A: Scale B: Frequency C:Scale Y
RGB output
Outputs mixed
Space Transform. Tile the incoming space into a matrix of rectangular tiles. RGB texture. An arrangement of identically-sized
rectangular tiles filled with colors from the current gradient
and highlighted by the first auxiliary color. Scale Y adjusts the
tile height without affecting the width. Use this parameter to
create non-square tiling.
Hexa Mirror Tiles
A: Scale B: Frequency C: Phase
Space transform. Tile space into kaleidoscope-like arrangements of hexagonally-symmetric hexagonal tiles. RGB texture. Colored hexagonal tiles filled with
colors taken from the current gradient and outlined with the first auxiliary color.
- 113 -
REFERENCE: 2->5 Components
Mirror Tiles
A: Scale B: Frequency C: Scale Y
Space transform. Tile the space into identical mirrored tiles. This performs the
same operation as the 2->2 Orthogonal Mirro Tiles component. RGB texture.
An arrangement of identically-sized rectangular tiles that are filled with colors
from the current gradient and highlighted by the first auxiliary color. Scale Y
adjusts the tile height without affecting the width. Use this parameter to create
non-square tiling.
Spiral Polar Tile
Grid transform
Line transform
A: Size B: Tile # C: Phase
Pict transform
RGB output
Apollonian Tiles
Space transform. Encapsulates the incoming
space in tiles arranged in an infinite inward
spiral. RGB texture. Circles colored by the
active gradient that co-incide with the space
transform’s tiles. The images at left demonstrate the transform applied to a grid, a neon
line and pict.
A: Radius B: Offset X C: Offset Y
Space transform. Remap the incoming space into an arrangement of circular tiles
that tries to fill space with non-overlapping circles of smaller and smaller size
using the Appollonian Gasket algorithm. RGB texture. Circles colored with the
colors of the current gradient and first auxiliary color are presented in a pattern
that co-incides with the space transform’s tiles.
Space transform
RGB output
Disk Inversion
A: Inversion Radius B: Offset X C: Offset Y
Space transform. Inward mirroring of the space using a disk-based inversion.
RGB texture. A red disk outlined with the first auxiliary color. The leftmost image demonstrates the space transform applied to a grid. The rightmost image
demonstrates the RGB output.
Outer Disk Mirror
A: Inversion Radius B: Offset x C: Offset y
Space transform. Disk-based mirror that reflects the inner-portion of the space
outwards. RGB texture. A green disk outlined with the first auxiliary color.
Space transform
RGB output
- 114 -
REFERENCE: 2->5 Components
Soddy Inversions
A: Radius B: Offset x C: Offset y
Space transform. A two-dimensional implementation of Soddy’s Hexlet to invert
and mirror the incoming space. Two tangent circles are drawn and the space is
mirrored inwardly. Then a chain of circles is created by drawing tangentially-touching circles inside the outer circles. The space is mirrored inwardly into
each new circle. The Soddy Hexlet has many interesting properties.
Find out more about Soddy’s Hexlet by doing a web search or visiting mathworld.com. RGB texture. The pattern
displayed in the illustration. The first and second auxiliary colors are used for the upper and lower regions.
0 Soddy Inversions
A: Radius B: Offset x C: Offset y
Space transform. This is a another transform based on Soddy’s Hexlet. RGB
texture. The pattern displayed in the illustration below. The first and second
auxiliary colors are used for the left and right regions.
Inversion Ring
A: Radius B: Tile # C: Offset y
Space transform. Mirror the incoming space into a ring of circular tiles arranged
in a ring. RGB texture. Circles of pre-determined color are drawn to correspond
with the tiles.
Disk Modulo X
A: Inversion Radius B: Offset x C: Offset y
Space transform. The space is mirrored into a row of disks whose radius is determined by parameter A. RGB texture. Colored disks that correspond to the space
transform’s tiles are drawn with the colors of the gradient and outlined with the
first auxiliary color.
Polar Spiral Band
A: Radial Steps # B: Radial Phase C: Phase
Space transform. Warp the incoming space with a spiral transformation. RGB
texture. A lovely spiral pattern that uses the current gradient’s colors and is outlined with the first auxiliary color
Space transform
RGB output
A: Radial Steps #. This parameter determines how tightly the spiral is wound.
B: Radial Phase. Rotational offset of the spiral.
C: Phase. Offset applied to the incoming space.
- 115 -
REFERENCE: 2->5 Components
Escher Disk Tile
A: Disk Number B: Rotation C: Rotation
Space transform. Like the 2->2 Disc Tiling, this component warps space with
an Escher-like tiling. This is a great primitive for creating decorative figures.
RGB texture. The decoratiive pattern shown below whose colors are pre-programmed. Disk Number determines the number of tiles. Parameter B determine
the rotation of the the center and ‘even’ tiles. Parameter C determines the odd
tiles’ rotation.
Random Twirls
A: Amplitude B: Phase C: Frequency
Space transform. Divides the incoming space into evenly spaced circular regions
and applies a randomized twirld distortion to each region . RGB texture. The
decoratiive pattern shown below whose colors are pre-programmed. The circles
correspond to the circular regions to which the twirling is applied.
Multi-Perlin Random
A: Amplitude B: Octaves C: Frequency
Space transform. Multi perlin noise. RGB texture. Color texture shown below.
The texture is influenced by the Amplitude, Octaves and Frequency parameters.
B: Octaves determines how rough or smooth the noise appears.
Disk Fractal Lab
A: Algorithm # B: Tiles C: Parameter %
This component provides access to 25 different disk fractal algorithms. In many cases, the color texture will be
used on its own. Explore this component on your own. An entire chapter could be created documenting the 25
algorithms that it encapsulates. The output from a few of the algorithms is demonstrated below. Space transform.
This component can perform any of 25 different space transforms all of which have both fractal and disk-shaped
aspects. The actual transform is determined by the Algorithm # parameter. Explore each of the algorithms and see
how parameters B and C influence the image. RGB texture. A color texture/pattern related to the algorithm chosen
with parameter A. Many of the algorithms use hard-coded colors while others make use of the current gradient. In
some cases the first auxiliary color is also used.
Parameters:
A: Algorithm #. This parameter determines the actual algorithm used by the space transform and color texture. The
parameter’s values are discrete integer values and not meant to be animated since parameter changes result in discontinuous output.
B: Tiles. Each of the algorithms tiles space within the disk-shaped area in which the transform is active. This parameter determines the number of tiles.
C: Parameter %. Each algorithm makes use of parameter C in a different way. Explore the algorithms and how this
parameter affects each one.
- 116 -
REFERENCE: 2->5 Components
Algorithm #
Space transform
RGB output
Algorithm #
#0
#1
Tiles: 3
Tiles: 3
Color from
gradient
#2
#3
Tiles: 3
Tiles: 3
Color from gra-
Color from gra-
dient and first
dient and first
auxiliary color
auxiliary color
#4
#11
Tiles: 4
Tiles: 4
#12
#18
Tiles: 4
Tiles: 4
- 117 -
REFERENCE: 2->5 Components
Fractal Polar Tile
A: Size B: Tile C: Phase
This component transforms space with a recursive polar transform that recursively fills space with disk-shaped tiles
of the incoming space. The transformed space is further divided into tiles mirrored about a rotational axis. Space
transform. See description above. RGB texture. A pattern of disks that correspond to the tiles created by the space
transform. The color is derived from the current gradient.
A: Size. (Not currently implemented)
B: Tile. The number of tiles to mirror. The tiles are mirrored about a central axis;
so, the total number of tiles is B*2.
C: Phase. Due to the nature of this algorithm, phase acts like a zoom control.
Kleinian Group Fractal
A: Size B: Tile Rotation C: Recursion
Kleinian Groups are a special kind of complex number fractal related to Moebius transformations
and involve matrix computation. The mathematics is quite complex, but the result is simply amazing. When the Rotation parameter is animated, the result is an interesting wobble when you are
zoomed into the fractal. Space transform. Transforms the space using one type of Kleinian group.
RGB texture. A pattern of disks that correspond to the tiles created by the space transform. The color
is derived from the current gradient and first and second auxiliary colors.
Space transform
A: RGB texture
B: created by
C: created by
D: created by
generated by this
increasing A’s
zooming out from
increasing C’s
component.
recursion level
keyframe A
recursion level.
Tile Rotation. When zoomed in, the system appears to wobble when rotated with Tile Rotation parameter.
Recursion. Increasing the level of recursion results in the space being filled in with this fascinating fractal transform.
When zoomed in, there are spiral patterns to be discovered not apparent when zoomed far out. Notice the details
added when the Recursion parameter is increased.
Fractal Ring
Space transform
RGB output
A: Radius B: Tile # C: Recursion
The interaction between this component’s parameters is complex and must be explored to be understood. A wide variety of
patterns can be created simply by adjusting the component’s
parameters. Space transform: Fractal inversion. The interaction of the parameters can create fascinating fractal inversions.
RGB texture. A pattern of disks that correspond to the tiles
created by the space transform. The color is derived from the
current gradient and first auxiliary color.
- 118 -
REFERENCE: 2->5 Components
Moebius Disk
A: Circle Size % B: K Rotate C: K Tiles
This is a disk-based form of Moebius transformation that creates an interesting
enclosed fractal-tiling of space. Space transform. A disk-based Moebius Transformation to the incoming space that unfolds about two attractors. RGB texture.
A pattern of disks that correspond to the tiles created by the space transform.
The color is derived from the current gradient.
Space transform
RGB output
A grid transformed by Moebius disk as seen when zoomed far out (left) and
zoomed far in (right). Notice that this component encloses the space in a finite
(though complex) region.
Examples of simple images created with this component.
The interaction between the parameters is quite complex and should be explored while zoomed in a moderate
amount. Manipulation of the K Rotate and K Tiles parameters reveals attractors and fascinating convolutions of the
inner space as shown in the following images.
The only difference in the images in this table are the settings of the K Rotate and K Tiles parameters. The images are the raw RGB
output of this component.
Moebius Balls
A: Ball Size B: K Rotate C: K Scale
This is another component based on Moebius transformations. A series of encapsulated spaces is created that unfolds around two attractors. Complex arrangements of these Moebius
Balls can be created by adjusting the K Rotate and K Scale parameters (parameters B and C).
Space transform: The incoming space is arrangement into a patter of self-contained balls. The
arrangement unfolds in a complex fashion about two attractors. RGB texture: A pattern of
disks that correspond to the space transform’s tiles. The color is derived from the active gradient.
Adjustments of parameters B & C
can create a vast array of patterns
even when all other parameters are
constant.
- 119 -
REFERENCE: 2->5 Components
Space transform
RGB output
Disk Inversion Spiral
Space transform
RGB output
A: Rotation B: Scale C: Recursion
Simple example
Space transform. A spiral arrangement of self-contained spaces
that are complex fractal disk inversions. . RGB texture. A pattern
of disks that correspond to the tiles created. The color is derived
from the current gradient. The first auxiliary color is used to
outline the disks. Rotation controls the tightness of the spiral.
Recursion is the number of disks in the spiral.
Moebius Inversions
A: Real Part B: Imaginary Part  C: Recursion
Space transform. This is another Moebius Transformation that creates stunning
recursive fractal inversions of the incoming space. RGB texture. A color texture whose pattern is like that created by the space transform. The colors are
pre-programmed. Adjustments to this component’s three parameters can create
a stunning variety of patterns
Random Disk Packing
A:  Radius B: Offset x C:  Offset y
Space transform. A recursive, fractal random tiling of space. The tiles are randomly placed and sized. Each tile is
a complete recursive disk inversion. The space between tiles is filled with smaller tiles -- all of which are disk inversions. RGB texture. A pattern of disks that correspond to the tiles created by the space transform. The color is
derived from the current gradient and first and second auxiliary colors.
A grid fed by the space transform seen at three different
RGB output
zoom levels. The zoom level of the images increases from
left to right. The right most
- 120 -
3->1 Components: 3D Scalar (Space/Field) Functions
These components provide a number of different functions: 3D surfaces/textures, mixers for blending surfaces,
basic fractals. 3->1 components also include some important DFRM primitives for creating 3D objects in ArtMatic
Voyager. Some of these components have a related 2D components. For detailed explanations of those functions,
see the 2D descriptions.
Coordinate Notes. In the descriptions below, x, y and z refer to the components’ first, second and third inputs. They
are not necessarily x,y,z spatial coordinates since that depends entirely on the components which are feeding the
inputs.
Math Primitives and mixers
Ax + By + Cz
A: Scale X B: Scale Y C: Scale Z
This component provides a weighted mix of the inputs. The three scale parameters act like ‘level’ controls which
determine how much of each input is present in the output. An input is essentially ignored if the corresponding scale
parameter is set to 0. Formula: Ax + By + Cz
(Ax + By + Cz)/Norm
A: Scale X B: Scale Y C: Scale Z
This component can be used as mixing function and a 3D shading function. It will contain the space by virtue of
dividing the output by the distance which forces the output to approach zero as x, y, and z approach infinity.
Formula:
Math Utils (Expanded and renamed)
Replaces the old 3->1 Distance. This component provides many useful ways of blending/compositing 3 branches
and provides a number of valuable math primitives for advanced users.
- 121 -
COMPONENT REFERENCE: 3->1 Components
Input shapes
used for the
examples
Average
Average. Example 2
Distance
z Interpolate unclipped
Norm
Algorithms:
• Distance. The strict Euclidian distance or length function sqrt(x^2+y^2+z^2). This was the algorithm used in ArtMatic 5.0 and earlier when it was called Distance.
• A * dist(x,y,z) + B. Scaled distance. Parameter A scales the distance and parameter B provides an offset
• A * dist(x,y,z)^2 + B. Scaled squared distance. Parameter A scales the distance squared. Parameter B is an offset
added to the result.
• Norm: A/(dist(x,y,z)+B). Scaled 1/ distance.
• Average. Returns the strict Average of the three inputs when A=1 and B=0: (x+y+z)/3. Parameter A is amplitude,
and B is offset.
• z Cubic Interpolate clipped. A cubic interpolation of the three inputs where the z input is scaled and offset.
• z Interpolate unclipped. Cubic interpolation of the inputs where the z input is scaled and an offset is added to the
interpolated value.
(x:y) * z
A: Balance x y B: Balance z
This component mixes the x and y inputs by interpolating between them and uses the z input as a multiplier. This is
a great way to animate a transition from one image to another using the z input as an intermediate distortion factor.
The z input acts as a control value.
- 122 -
COMPONENT REFERENCE: 3->1 Components
x*y + z
A: Amplitude x*y B: Amplitude z
This component is useful as both a mixer and as a basic mathematical building block for implementing specific
equations. As a mixer, it is useful for cases where you want to filter two images together (i.e. using one as a mask)
and mix another unmasked image with them. Example file: “Burning Logo RGB”. Notice that the x-input to the
function provides the flames. The y-input is a picture of the U& I logo which acts as a mask, and the z input adds a
color version of logo. Formula: A(x * y) + B(z)
x * y * z
A: Scale
Math primitive that creates a complex mix/filtering of the three inputs filter each other. Formula: A(x * y * z)
MinMax
A: Amplitude B: Min to Max C: Smoothing
This is essentially the same as the 2D scalar version of this component but with the minimum and maximum of
three inputs being computed. See the description of the 2D version for more information. The Smoothing parameter
(added in version 2.5) controls the continuity of the transition between the inputs. When it is set to 0, the function
behaves as it did in earlier ArtMatic versions.
Logic Tools # (expanded and renamed)
Formerly called Maximum. This component provides a number of algorithms for combining several streams (usually DFRM objects) in complex ways. For instance, it can be used to combine/intersect, three DFRM fields (objects)
to create complex shapes. 3->4 Packed z Morph provides similar functions for packed streams (for mixing several
colored objects). See also: 2->1 Logic Tools # and 2->4 Packed Logic # for illustrations of Logic transforms similar
to those provided by 3->1 Logic Tools
Algorithms:
• Maximum (union). The maximum of the three inputs. (Equivalent of boolean OR.)
• Minimum (intersection). The minimum of the three inputs. (Equivalent of boolean AND.)
• Reversed Max Abs (Manhattan Dist). (max(|x|,|y|,|z|)). When the input is raw 3D space (global inputs XYZ), the
result is a DFRM cube whose edges can be rounded by the smoothing parameter. Interesting DFRM solids can be
made by feed the output of 3D Spaces through this algorithm.
• Min Abs (min((|x|,|y|,|z|)).
• Reversed Min Abs (contours). This can turn any DFRM solid into a hollow object. See example file Logic Object
VecAdd.vy.
• Median (min(x,y,z)+max(x,y,z))/2.
• Union xy & Intersect z. This algorithm provides the intersection between z and the union of x and y.
• Intersect yz & Union x. This algorithm provides the union of x and the intersection of y and z.
• Max(Min(|x|, |y|),z). Returns the maximum of z and min (|x|, |y|). The result is always ≥ 0 and needs to be inverted
for DFRM. See 31 Logic MaxMin Contours for an example. If the y and z inputs are the same surface, the result is
a combination of the x and y inputs with x also being carved out from y from the inside. See the example 31 Logic
Contours to observe the difference between this algorithm and Reversed Min Abs.
• Choose x if z+ or y if z-. This algorithm provides a switch. The sign of the z-input determines whether the x or the y
input is passed through as the output. It is the ArtMatic equivalent of an if..then..else statement. Where z is greater
than 0, the x-input value is sent out. Where z is less than 0, the y input is sent out. See the Logic 2D ArtMatic example files.
- 123 -
COMPONENT REFERENCE: 3->1 Components
• Morph x to y in z . Useful algorithm for blending 3D paths or volumes using a weighted max.
• Morph x to y to x in z . Useful algorithm for blending 3D paths or volumes using a weighted max.
Blending Components
z blend
A: Amplitude
This component mixes the x and y inputs using the z-input as an alpha channel/mask.
Blend by alt (z)
A: Altitude fx B: Altitude fy C: Range
This component mixes the X and Y inputs using the Z input to control the blending. Feed this tile with the output
of 2 surfaces that you want to blend under the control of a third. When the Z values are within the range specified
by Altitude fx and the Range parameter, the X surface is selected. When the Z values are within the range specified
by Altitude fy and the Range parameter, the Y surface is selected. Everywhere else, the Z surface itself appears. The
Range parameter determines the range of values to be replaced--Altitude fx and Altitude fy specify the range’s center,
and Range specifies the range width. The X input always appears at lower altitudes than the Y input. Parameter B
must be larger than parameter A for the X input to appear.
This table illustrates the component’s behavior. A Grid (X) is mixed with Circles (Y) under the control of a noise
component (Z). Where Z has low values (dark shades), the grid appears. Where Z has high values (bright shades),
the circles appear. The Z input -- the component that controls the blend -- is Multi Perlin Noise
B: The output of
C: The output of
D: The output of
E: B, C and D
the Grid by itself
the Circles compo-
the Multi Perlin
blended together
nent by itself
Noise component
using Blend by Alt
by itself
This component is a very powerful component when designing terrains for ArtMatic Voyager as it allows complex
composite terrains to be made by combining two disparate terrains under the control of another.
In this example, the lower texture (input x) is the Cellular noise component and
the higher texture (input y) is Sparse Fractal Rocks.
Displace by alt (z)
A: Altitude fx B: Altitude fy C: Range
This component is similar to Blend by Alt. Rather than mix the X and Y inputs (left and middle) according to the
contours of the third input, this component selectively adds the values from the left and middle inputs to the values
in the third input.
- 124 -
COMPONENT REFERENCE: 3->1 Components
For example, take a system that has Cellular Noise as the left (X)
input, Sparse Fractal Rocks as the second input, and a noise function
to blend them. The features provided by the x and y inputs (Cellular
Noise and Sparse Fractal Rocks) are added to the terrain provided by
the third input. In essence, this component adds the X input to the Z
input at low elevation and adds the Y input to the Z input at higher
elevations with parameters A and B (in combination with parameter C) determining where the transitions occur.
Random Mix
A: Amount B: Phase C: Frequency
This component randomly mixes the three input surfaces. This component is especially useful for creating composite images or surfaces (for use with ArtMatic Voyager) that randomly mix elements from its inputs. When Amount
is 0, the output is provided entirely by the left input. The order of the inputs is significant. The dominant surface
should be the left input.
When creating systems for use with ArtMatic Voyager, this simplifies the task of creating rich varied topographies.
In this example, input x (the left input) is Multi Perlin Noise, input y (the middle
input) is Cellular Noise and input z (the right input) is Sparse Fractal Rocks.
Radial Displaces # (new 5.0)
This component creates radial displacements that provide interesting surface features to 3D objects (primarily those
that will be rendered from ArtMatic Voyager), especially vegetation. This component provides quite a few different
algorithms for very different effects.
Radial displacement can take a shape like the one on the left (a sphere merged with a cone) and add interesting
surface detailing
- 125 -
COMPONENT REFERENCE: 3->1 Components
The displacements radiate outwards from a vertically-oriented cylinder. To use Radial Displace with DFRM objects,
add the output of Radial Displace to the object’s output value as shown in the example tree. For the math-minded:
Radial Displace creates displacement of the angle/distance/y-axis with a displacement vector pointed towards an
outward x/z cylinder.
The examples shown were created from this structure tree. Group A creates the “cone/sphere”
shape by combining two 3->1 Density Shapes (a cone and a sphere) with 2->1 Math Tools set
to Max as the mixer. The 3D Offset tile is used to control the position of the sphere on the
cone. The tile labeled B is the Radial Displace component. The tile labeled C is used to add
the Radial Displacement to the object (density shape).
Parameters: A: Algorithm, B: Phase, C: Frequency
Algorithms. The table below illustrates all of the algorithms by applying them to a merged cone & sphere. The renders were done with ArtMatic Voyager. See the ArtMatic Voyager example file 2.0 examples/DFRM Life & Plants/
Components Demo/RadialDisplaces Demo.vy to see examples of all the algorithms. Advancing the time slider will
advance
you
through
the
algorithms.
Cone and sphere with no displacement.
0. Y-Segmented
1. Fibrous Segmented
2. Petales
- 126 -
COMPONENT REFERENCE: 3->1 Components
3. Radial Sines
4. Sparse Spikes
5. Upward spikes
6. Saw and Spikes
7. Bumps A
8. Bumps B
9. Random
10. Spherical Spikes
- 127 -
COMPONENT REFERENCE: 3->1 Components
11. Spherical Spikes+
12. Spherical Bumps A
13. Spherical Bumps B
14. Spherical Bumps C
15. Spherical Random
Z Sin shader
A: Amplitude B: Z scale C: Contrast
This component can generate complex shading/banding where the shading is controlled by the z input.
Basic Formula: sin(x + y + B z) (The basic equation is further modulated by the amplitude and contrast parameters.)
Z Circles
A: Frequency B: Contrast C: Altitude
This periodic component has a pointillation, pixellation or dither-type effect and only works well with some sorts of
systems. If the first two inputs define a spatial position, the z value will effectively control the amount of pixellation.
- 128 -
COMPONENT REFERENCE: 3->1 Components
Z Bubbles
A: Scale B: Contrast C: Phase
This function distorts space with superimposed cylinders/bubbles. The interaction between the inputs can be quite
complex. Animating the phase parameter can create fascinating mixing, morphing of the inputs and the distortion
bubbles.
Facet pers(pective)
A: Frequency B: Z Scale C: Contrast
This component generates a mosaic pattern with a perspective effect imposed by the z-input.
3D Grid
A: Amplitude B: Phase C: Frequency
This function creates a true 3D Grid (constructed of interlocking walls) when the inputs are a 3D space (as opposed
to inputs from three independent branches). To get a sense of this as a 3D function, place it after the 3D Room (2>3) component and manipulate the room’s offset z parameter which moves the room’s back wall. (The “3-to-1 3D
Explorer” example file has been set up to explore the 3-to-1 true 3D functions). This component can also be used as
a mixer to mix the output of independent branches with interesting effect.
3D Sin x + Sin y + Sin z
A: Amplitude B: Phase C: Frequency
This periodic component tends to create dimpled textures. It can be used either as a mixer or as a 3D texture generator.
Note: The number of parameters for this component changed in ArtMatic Pro 2.5. As a result of this change, the
keyframes of files made with earlier versions of ArtMatic Pro will need to be manually adjusted.
3D Sin x * Sin y * Sin z
A: Amplitude B: Phase C: Frequency
This periodic component tends to create dimpled or egg-crate like textures. It can be used either as a mixer or as a
3D texture generator.
Note: The number of parameters for this component have changed in ArtMatic Pro 2.5. As a result of this change,
the keyframes of files made with earlier versions of ArtMatic Pro will need to be manually adjusted.
3D techno noise
A: Amplitude B: Phase C: Frequency
True 3D version of the 2D Techno Noise component.
3D Bubble & Skins # (Expanded and renamed)
Renamed from 3D Bubbles. This component now has 13 different textures well-suited for skinlike textures. This
was originally just a 3D version of 2->1 Bubbles, but it has been expanded with a wealth of algorithms.
- 129 -
COMPONENT REFERENCE: 3->1 Components
Algorithms:
0-Bubble 3D
1-Smooth Bubble Skin
2-Fish Skin A
3-Fish Skin B
4-Fish Skin C
5-Reptile Skin A
6-Reptile Skin B
7-Reptile Skin C
8-Reptile Skin D
9-Reptilian Hexa Scales
10-Alien Skin A
11--Alien Skin B
12-Alien Skin C
3D spots
A: Amplitude B: Phase C: Frequency
3D texture reminiscent of a star field.
- 130 -
COMPONENT REFERENCE: 3->1 Components
3D cellular
A: Amplitude B: Phase C: Freq
.
3D DF Noises # (New in 5.0; Expanded 6.)
This component provides a variety of 3D noise that can be blended with a density field object (DFRM object). The
output range is infinite so it needs to be intersected or blended with a finite object to bound it. 3D Density Noise (depending on how it is used) can add texture to a surface (as seen in the Textured Torus examples below) or transform
a primitive shape like a sphere into something much more interesting. Typically, 3D Density Noise’s output will
be combined with the output of a density field object using a component like 2->1 Ax+By+C or 2->1 Interpolate.
Some helpful example files are provided with ArtMatic Voyager:
• Textured Torus . A basic example that shows all the noise types (by moving the time slider in Voyager). See Voyager’s 2.0 Examples/DFRM Objects/Basic Objects/Textured torus.vy
• Desert Psychic 3D . This example interpolates a sphere with the Jitter Spheres noise to create a sphere cluster. It
demonstrates how you can transform one object into quite a different object. See Voyager’s 2.0 examples/DFRM
Objects/Basic Objects/desert psychic 3D JS.vy
•
Parameters: A: Algorithm, B: Scale, C: Amplitude
Algorithms:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Cylindre 3d grid #
Rect 3d grid #
Diamond 3d grid #
Sphere 3d grid #
Spheroid noise #
Cuboid noise #
Jitter Spheres #
Random Boxes #
Lines Network #
Random Plates #
Random Polygons #
Saw x #
Saw y #
Saw z #
Saw xy #
Saw xz#
Blocks Random A
Vertical Sparse Blocks #
City Blocks #
City Sparse Blocks #
Desert Psychic Examples (3D Density Noise)
- 131 -
COMPONENT REFERENCE: 3->1 Components
This structure tree demonstrates how 3D Density noise can be used to transform a simple
shape into something much more complex. This tree interpolates a Density Shape with Density Noise to create a new shape (or cluster of shapes). This is the ArtMatic tree used to create
the object cluster in the Desert Psychic 3D example system. It is used for the examples that
follow. In all cases below, the 3D Density Shape is a sphere.
Shape: Sphere.
Density Noise algorithm: Jitter Spheres.
Shape: Sphere.
Density Noise algorithm: Cylinder 3D Grid
Shape: Sphere.
Shape: Sphere.
Density Noise algorithm: Cylinder 3D Grid. The Density noise algorithm: Random Polygons.
only difference between the object in the previous
image and this one is the setting of the interpolation parameter.
- 132 -
COMPONENT REFERENCE: 3->1 Components
Algorithms Illustrated (3D Density Noise) Textured Torus Example
The tree used to create the examples below is from the Textured Torus.vy
example file provided with ArtMatic Voyager. In the example file, move
the time slider to see each of the algorithms demonstrated. Group A provides the Density Noise (which is warped using cylindrical projection.
Group B provides the basic shape which is a combination of a torus and
a rounded tube (both are 3D Density Shape algorithms). The Density
Noise is added to the object using the 2->1 Ax + By + C component.
0 - Cylindre 3D Grid
1 - Rect 3D Grid
2 - Diamond 3D Grid
3 - Sphere 3D Grid
- 133 -
COMPONENT REFERENCE: 3->1 Components
4 - Spheroid Noise
5 - Cuboid Noise
6 - Jitter Spheres
7 - Random Boxes
8 - Lines Network
9 - Random Plates
10 - Random Polygons
- 134 -
COMPONENT REFERENCE: 3->1 Components
3D DF Shapes A # (new in 5.0)
Renamed in ArtMatic 6, this component is the most widely used component for creating DFRM-based objects for
ArtMatic Voyager. It provides a wide variety of basic 3D objects selected by the algorithm which can also be set
with parameter slider A. It is primarily used for creating 3D objects rendered in ArtMatic Voyager but they can
be used for native ArtMatic images, too. In general, the fields have 0 as the center value (which defines the object
surface in Voyager). The value goes to -infinity when moving far away from the object. The field is positive inside
the object and indicates the distance to the surface. For MUCH more about DFRM objects, see the DFRM guide.
Updated in ArtMatic 6 to allow parameter C to control the branch length for elevant algorithms. Parameter D provides height control for some algorithms and branch thinning for the branch primitives. Ring (torus) uses parameter
D to control the ring radius.
See the ArtMatic Voyager example “3D Shapes Dimensions.vy” to see all the primitive shapes with their normal
orientations and size.
Parameters:
• (A) Algorithm. Selects the shape
• (B) Radius - the object size. An undistorted,unscaled sphere of radius 1 (the unit sphere) has a radius of 20 meters
in ArtMatic Voyager.
• (C) Amp (amplitude), Z Depth or Branch Length. Parameter C provides the Amplitude for most algorithms. For
branch algorithms it controls branch length and provides Z depth for some other algorithms (such as Frame xy).
When the parameter is amplitude, the value is normally either 1 or -1. -1 creates a negated field which is very useful
when using boolean operations (such as min) to create a hole in another field as shown below. The algorithms from
plate xz to hollow tube use the amplitude to control the z dimension (depth).
• D (varies with algorithm).
Complex shapes can be made from simple combinations of primitive Density Shapes. In this example, a cylinder
cuts a hole in a cube by setting the cylinder’s amplitude to -1 and setting MinMax to minimum mode. See the
DFRM Guide for more information.
- 135 -
COMPONENT REFERENCE: 3->1 Components
Sphere
a sphere of radius B.
Column
an infinite upright cylinder of radius
B in the y axis
Tube x axis
an infinite upright cylinder of radius
B in the x axis
Tube z axis
an infinite upright cylinder of radius
B in the z axis
- 136 -
COMPONENT REFERENCE: 3->1 Components
Ring (xz) plane axis
a horizontally-oriented (oriented in
the xz plane) torus (donut shape)
Ring (zy) plane axis
Ring (xy) plane axis
Saucer xz
a flattened sphere
- 137 -
COMPONENT REFERENCE: 3->1 Components
Cone
an infinite cone. Radius (parameter B)
changes the slope
Pyramid
an infinite pyramid. Radius changes
the slope
Cube
a cube
Smooth Cube
a smooth-edged cube
- 138 -
COMPONENT REFERENCE: 3->1 Components
Cylindre
A cylinder whose height is finite above
0 but infinite where y < 0
Obelix
a truncated rectangular prism (box
shape) that is finite where y > 0 and
infinite where y < 0
Arch y
an arch-topped rectangular prism
(box shape) that is finite where y > 0
and infinite where y < 0
Rounded tube y
A cylinder with a rounded top that is
finite where y > 0 and infinite where
y<0
- 139 -
COMPONENT REFERENCE: 3->1 Components
Spheres cluster xz
A collection of spheres on the xz plane
(horizontally-oriented). This is a nice
starting point for groups of rocks or
asteroids
Spheres Cluster
A cluster of spheres. This is a nice
starting point for flying rocks or asteroids
Column Cluster xz
- 140 -
COMPONENT REFERENCE: 3->1 Components
Cubes Cluster xz
Cubes cluster
Plate xz
a horizontally-oriented flattened box
Panel xy
a vertically oriented flattened box.
Amplitude (parameter C) controls the
depth
- 141 -
COMPONENT REFERENCE: 3->1 Components
Frame xy
a vertically-oriented rectangular
frame shape. The frame edges are
squares and Radius controls the
object size. Amplitude controls the
depth.
Hollow Tube z
a hollow horizontally-oriented cylinder oriented along the z-axis. The size
is Radius*8. Amplitude (parameter C)
controls the depth in the z direction
Leave y
A vertically-oriented leaf shape. A
useful primitive for designing vegetation
Grass y
A vertically-oriented shape reminiscent of a blade of grass. This is a useful primitive for building objects, but
for creating “real” grass the built-in
3->4 Color Grass Field component is
computationally-more efficient than
building grass from primitives.
- 142 -
COMPONENT REFERENCE: 3->1 Components
Branch Smooth
The branch series is essentially a collection of smooth-topped cones (with
a steep slop) with a variety of useful
textures.
A branch shape with a smooth surface.
Branch B
A branch shape with a textured surface
Spiky Branch
A branch shape with a spiky textured
surface
Cactus Branch
- 143 -
COMPONENT REFERENCE: 3->1 Components
Twirl Bumped Branch
3D DF Shapes B# (new)
This component provides useful 3D object primitives that are especially useful for creature design. The rotation
parameter options can rotate the whole shape (with the exception of the the first two shape algorithms) and/or limit
the shape to one side of the axis. Parameter notes. The parameters vary by algorithm. For most of the algorithms,
parameter A controls the thickness/radius, parameter B the smoothing, and parameter C the spread (the object’s
growth). Parameter D provides period control for the hairy tube algorithms.
Algorithms:
• xyz axis tubes. 3 intersecting tubes aligned along the x, y, and z axes
• star axis tubes. Intersecting tubes radiating from a central point every 45 degrees. This algorithm is useful for
tentacles, some invertebrates, and microorganisms.
• 5 tubes. another good starting point for tentacles. Spread controls angle of the tubes.
• 4 tubes. a useful primitive for creating vertebrate legs. See the OLife examples.
• 6 tubes. useful for insectoid legs.
• 8 tubes. useful for arachnoid and arthropod legs.
• capsule. elongated-sphere/capsule shape. Spread sets the length.
• triangle horizontal. useful for wings and fins. see creature examples.
• triangle vertical. useful for wings and fins. see creature examples
• boxoid. box shape with control over edge rounding.
• ovoid. ovoid primitive. Useful for fish bodies.
• discoid. rounded-edge disc. Suitable for dorsal fins and crests.
• helicoidal plane. A spiraled plane that is infinite along the main axis. Spread determines the spacing of the spirals
• helicoidal plane 2. Two interleaved spiraled planes.
• helicoidal torus. A torus in an helicoidal space. An infinite coil.
• helicoidal torus 2. Two interleaved and interphased toruses in the same helicoidal space. The primitive is infinite
in the main axis.
• helicoidal exp. A spring where the coils become increasingly and exponentially more narrow on the main axis.
• helicoidal box. A spring with ribbon-like windings whose cross-section is rectangular .
• cone exp. A finite cone. Parameters: A. Thickness. B: Bending. C: Spread.
• finite tube. A finite tube with rounded ends. Spread % (parameter C) sets the tube length.
Hairy Tubes. These are cylinders with protruding hairs, spike or bumps. They have an advantage over
other techniques that create protrusions because they do not distort space. Methods of creating protru- 144 -
COMPONENT REFERENCE: 3->1 Components
sions via space distortion may destabilize the underlining distance fields which can result in artifacts or
overlong render times. The Hairy Tubes are infinite shapes intended to be blended with finite shapes to
make the cylinders finite. Examples: Max & Blend Inf H tube.vy demonstrates several possibilities for
these primitives. Parameters: A: Radial Frequency - number of spikes. B: Smoothing - controls the size of the spikes’
base. At 0, the spikes are uniformly thin. C: Spread % - the spike length. D: Axis Frequency - the distance between the rings of spikes. Together, Spread and Smoothing can be used to change the character
of the protrusions allowing you to create spikes, hairs or bumps.
• hairy tube 90. An infinite cylinder with radially-oriented spikes that stick straight out from the cylinder.
• hairy tube 60. Similar to hairy tube 90 except that the spikes stick out at a 60 degree angle from the cylinder.
• crested Tube. An infinite tube with a protruding sawtooth-shaped crest. Parameters: A - Radial Freq. B - Smoothing. C - Spread. D - Axis Freq.
• infinite hairy tube. This tube has infinitely long hairs whose angle is controlled by the spread parameter.
• conic capsule. An egg-shaped capsule with a rounded conical top (when oriented in y) and round bottom. This
shape is useful for plant and animal parts. Parameters: A-Thickness. B-Slope. C-Spread.
Parameter
•
•
•
•
•
•
•
•
options
:
orientation x
orientation y
half x+
half y+
half z+
half xhalf yhalf z- 145 -
COMPONENT REFERENCE: 3->1 Components
Maps and Fields
Random pers(pective)
A: Perspective B: Level C: Phase
This component provides smooth random distortions of the x and y inputs and uses the z input as a
distance/perspective controller. If the z-input is fed by the Ax + By + C component, you will get a
horizon-like effect.
Tip: To create an animatable planet/surface, use the distance component to feed the z input. Animating the phase parameter will provide surface undulations that resemble planet rotation. The image at
left was created with the file Random Perspective which is found in the Doc. Example Files folder.
Turbulent pers(pective)
A: Perspective B: Level C: Phase
This component is similar to Random Pers but uses turbulent noise rather than a random noise-type algorithm for
generating its texture. This component works well for planet surfaces.
Techno pers(pective)
A: Perspective B: Amplitude C: Phase
This component is similar to Random Pers and Turbulent Pers but uses the techno texture. See the description of the
2D scalar techno component for more information about the techno texture.
Fractal Map
A: Real B: Imaginary C: Z displace
Fractal map is a complex number-based recursive fractal where the x and y inputs are treated as the real and imaginary parts of a complex number. The Z displace parameter is used to modulate parameter A in such a way that you
can effectively modulate the “granularity” of the fractal with the z-input. The z -input can be used to explore changes in the fractal’s degree of chaos. In some ranges, the fractal behaves in an orderly fashion while in others it can
appear quite chaotic. This component is sensitive to the Max iterations for fractals parameter.
Mandelbrot set
A: Scale B: Z distortion C: Contrast
This component is the classic Mandelbrot set. You can create interesting variations by feeding the output of a 2D
space distortion function into the leftmost inputs of this component. The scale parameter acts as a zoom control.
The z distortion parameter warps the resulting image, and the contrast parameter adjusts the color contours of the
resulting output. This component is sensitive to the Max iterations for fractals parameter.
Julia sets
A: Real B: Imaginary C: Z displace
This component generates a Julia set. For the classic Julia Set (as shown in the component’s icon), set parameter
C to 0. When parameter C is anything other than 0, the z input is used to modulate the “granularity” of the fractal.
The A and B parameters are multipliers applied to the x and y inputs respectively. This component is sensitive to the
Max iterations for fractals parameter.
Tip: Due to the limited output range of this component, the logarithm-based shaders often work best.
- 146 -
COMPONENT REFERENCE: 3->1 Components
Ferro magnet model
A: Real seed B: Imaginary seed C: Z displace
This is a complex fractal based on the magnetic field equations. The A and B parameters are multipliers for the x
and y inputs. The Z displace parameter works similarly to the Fractal Map’s and Julia Set’s Z displace parameters.
This component is sensitive to the Max iterations for fractals parameter.
3D Noise Functions
The next group of components is comprised of true 3D noise/texture functions. Noise functions are great for providing textures to cover the surfaces of objects as well as for creating standalone textures and images. Generally,
these are used towards the bottom of branches to provide texture for 3D objects. A simple example file (“3-to-1 3D
Explorer”) has been provided to make it easy to explore these fascinating functions. To see the 3D effect, adjust
parameters for the example’s Room tile and notice how the texture of the back wall changes.
TIP: When exploring, make sure to explore what happens when you use the Derivative function as the final component as this will bring out the texture of the noise functions. You can also use the Geographic CLUT shader which
automatically includes the derivative calculation to shade the surface.
Those components with a sienna-colored icon feature adaptive resolution and band-limiting.
Z Fractal Lines
A: Amplitude B: Phase C: Frequency
This is a variation of 2D fractal noise. The z input provides an offset that modulates the noise. For more about fractal
noise, see the description of the 2D version. (Renamed from Fractal Lines in version 4.0).
z Basalt Rocks
A: Amplitude B: Phase C: Frequency
This is a rocky fractal noise whose third input controls the roughness and amplitude/altitude of the output. This
component is great for creating igneous, basalt rocks in systems designed for use with ArtMatic Voyager. When
used with Voyager-destined systems, the Frequency should be low or very low values (below 0.25).
The rock contours are controlled by the third (Z) input. Try inserting various 1D filters on the Z input and see how
you can influence this texture’s ‘geology’.
In this example, the component that provides the Z input steadily increases -- thus
the surface roughness increases with the altitude.
Z Ridged Fractal Noise
A: Amplitude B: Phase C: Frequency
This component is similar to the 2D Scalar version with the addition of the Z input modulating both the surface
roughness and amplitude.
In this example, the value of the Z input increases steadily from left to right.
- 147 -
COMPONENT REFERENCE: 3->1 Components
Z Stone Clusters
A: Amplitude B: Phase C: Frequency
Essentially the same as the 2D Scalar version of this component with the addition of providing control (via the third
input) of the stone size and placement. If you connect the third input to a component that generates terrain, the rocks
will loosely follow the terrain’s contours as shown in the image below. The Z input modulates the number of stones
in a periodic fashion while the size of the stones has a linear randomized relationship to the Z value.
The Z input has a steadily increasing value from left to right. Notice
that the size of the stones increases steadily while the number of
stones changes periodically. If the Z (third) input is connected to the
component that provides the main surface, the stone clusters will
follow the terrain contours as shown in the following landscape below.
3D Random
A: Amplitude B: Phase C: Frequency
This component generates a 3D random space distortion and is related to the 2D random noise component. Great
for granite-like textures!
3D Perlin Noise
A: Amplitude B: Phase C: Frequency
Returns a single 3D Perlin noise function
Adaptive, Band-Limited Noise Functions
The next group of noise functions have adaptive resolution and are band-limited to reduce high-frequency noise.
These functions are recommended for designing systems for use in ArtMatic Voyager. The number of iterations and
resolution of the functions are determined by both the camera’s zoom level and the preference for fractal iterations.
By being adaptive, the functions can deliver maximum detail at any zoom level.
Note : With very high zoom levels, you may need to increase the Maximum Iterations for Fractals preference.
3D Multi Perlin Noise
A: Amplitude B: Octaves C: Frequency
This component sums a series of 3D Perlin noise functions with the frequency doubling for each function in the
series. The maximum value for the Octaves parameter is 128 (27) and provides seven ‘octaves’. This component
allows very fine control of the frequency content. It is especially useful when used with very low frequency values
to create surfaces or large scale modulations for ArtMatic Voyager.
3D Multi Perlin noise with 4 octaves as seen in ArtMatic & ArtMatic Voyager. The
Z input is provided by a cone.
- 148 -
COMPONENT REFERENCE: 3->1 Components
3D Fractal noise
A: Amplitude B: Phase C: Frequency
Three-input fractal noise algorithm. This component, as are all the fractal based components, is sensitive to the
Maximum Iterations for Fractals preference. See the description of the 2D version for more information.
3D Multi Fractal Noise
A: Amplitude B: Phase C: Frequency
A 3D fractal noise created by summing 3D Perlin noise functions with varying fractal dimension (roughness).
“Multi-Fractal” indicates that the fractal dimension (a measure of the surface roughness) changes randomly over
the surface. As you can see below, the apparent roughness is not uniform as it is with the Fractal Noise component.
The view in ArtMatic (left) and ArtMatic Voyager (right)
3D Cubic MultiFractal
A: Amplitude B: Phase C: Frequency
A 3D multi-fractal created by filtering the output of Perlin noise functions through a cubic ceiling function.
The view in ArtMatic (left) and ArtMatic Voyager (right)
3D Ridged Fractal
A: Amplitude B: Phase C: Frequency
A multi-fractal noise function composed of ridged 3D Perlin noise (1-abs(n)). This fractal function was designed by
Ken Musgrave and is a good approximation of ridged mountains. The fractal dimension is smoothest in the valleys.
This function only generates values greater than 0.
The view in ArtMatic (left) and ArtMatic Voyager (right)
3D Terrains # (new)
This is a new component with various surfaces that are especially useful for ArtMatic Voyager terrain design. Examples: see the 31TGeoGraphic series of examples.
Algorithms:
• V Valley Mountains
• Eroded Terrain
• Erosion System - this can be used as a filter or added to various surfaces to simulate erosion patterns by using it in an
ArtMatic file that is used for blending using Combination mode.
- 149 -
COMPONENT REFERENCE: 3->1 Components
V Valley Mountains
Eroded Terrain
Erosion System
3D Textures# (updated and renamed)
Formerly called 3D Fractal Strings, this component now provides 18 different perlin-based textures suited for a
wide range of uses. These are useful for both 3D and 2D graphics
Algorithms:
• Fractal Strings (the original algorithm). A 3D multi-fractal composed of highly filtered Perlin noise that appears
like randomly curved lines .
• Caustics
• Fibrous noise
• Perlin waves
• Interferon
• Perlin wood
• Coraloid
• Stripoid 15
• Stripoid 45
• AbsPerlin sum
• AbsPerlin min
• AbsPerlin spikes
• Alveoloid
• R-Mesh linear
• R-Mesh insect wing
• R-Mesh Alveoli
• Barkoid 90
• Barkoid 45
3D Fractal Strings Algorithm. The view in ArtMatic (left) and ArtMatic Voyager
(right)
3D Lunar Rocks
A: Amplitude B: Phase C: Frequency
Multi-fractal noise with added sparse bumps clusters reminiscent of lunar soil. The texture has varying degrees of
roughness.
The view in ArtMatic (left) and ArtMatic Voyager (right)
- 150 -
COMPONENT REFERENCE: 3->1 Components
3D Bubble Rocks
A: Amplitude B: Phase C: Frequency
Multi-fractal noise with round bump clusters. Fine details tend to appear at the lower elevations of this texture’s
larger scale elements -- whose higher elevations tend to be smooth.
The view in ArtMatic (left) and ArtMatic Voyager (right)
3D Stratified Noise
A: Amplitude B: Distortion C: Frequency
A simple approximation of perturbed geological layers (a texture used widely in Bryce). The distortion parameter
controls the texture’s vertical displacement. Example file: “Solid Strata Time Room” shows how the 3D stratified
noise intersects a Room. Note how the y and z coordinates are modulated by time to create a constantly moving
texture.
3D Crystal Noise
A: Amplitude B: Phase C: Frequency
3D version of the 2D Crystal Noise component. This is a structured fractal-based noise based on random noise
subjected to triangular lattice linear interpolation. Crystal noise features sharp ridges and is often used along with a
2->2 fractal displacement. This function only generates values greater than 0.
The view in ArtMatic (left) and ArtMatic Voyager (right)
3D Fractal Stucco
A: Amplitude B: Phase C: Frequency
A variation of the fractal noise algorithm that generates a stucco-like texture.
The view in ArtMatic (left) and ArtMatic Voyager (right)
See also the Shining Stucco Gelatin example file. Note that the Power function provides a metallic effect.
3D Fractal Puffy Clouds
A: Amplitude B: Phase C: Frequency
A 3D multi fractal noise with phase feedback, capturing the twirling turbulence of clouds. In the example below, the
component is used for both the cloud layer and the terrain in ArtMatic Voyager.
- 151 -
COMPONENT REFERENCE: 3->1 Components
3D Altocumulus clouds
A: Amplitude B: Banding C: Freq.
3D texture shader designed for creating cloud layers for ArtMatic Voyager where they yield mid-level layered altocumulus clouds. This component is great for creating mackerel skies with rhythmic banding. Banding controls the
amount of banding. When it is 0, the cloud distribution is strictly random.
As seen in ArtMatic
In AM Voyager, Banding = 0
Banding = 1.0
3D fractal lines
A: Amplitude B: Phase C: Frequency
3D fractal-based texture made of randomly intersecting curving veins. Great for marble and other veined textures.
This is a structured fractal-based noise and is sensitive to the Max. Iterations for Fractals preference. Increasing the
iterations, increases the detail. When used in ArtMatic Voyager terrains, the effect is of a network of faults/cracks.
3D Random lines
A: Amplitude B: Phase C: Frequency
Similar to fractal lines but composed of randomly intersecting straight lines. Great for fibrous and geological textures. This is a structured fractal-based noise and is sensitive to the Max. Iterations for Fractals preference. Increasing
the iterations, increases the detail.
3D Fractal Silex Noise
A: Amplitude B: Roughness C: Freq.
This 3D texture/shader is useful for creating both elevation maps and color textures
for ArtMatic Voyager. Both the elevation map and color texture are provided by the
tree shown above.
3d fractal bubbles
A: Amplitude B: Roughness C: Freq.
- 152 -
COMPONENT REFERENCE: 3->1 Components
Miscellany
Pack(x,y,z)
Use this component to pack the output of 3 output functions into a single packet which can be passed to packed functions. The output of this function should only be passed to components that expect packed input. It is only useful for
packing RGB streams or 3D coordinates for use with “packed” functions.
Open Compiled Tree
A: Scale B: Iterations
Choose this component to use a 3->1 compiled tree. Compiled Trees and their parameters are covered in detail in the
Compiled Trees chapter of this manual.
- 153 -
3->2 Components: 3D Vector Functions
Many of these components are 2D space transforms that use a third input (called ‘z’) to control the transformation
amount. Some 3->2 Components, such as Spherical Projection, transform 3D to 2D space. There are a number of
specialized components useful for ArtMatic Voyager creations such for creating DFRM objects (3D objects rendered by ArtMatic Voyager) and window reflections.
Most of the 3->2 components are 3D vector functions that warp or distort space. By convention, we refer to the third
TIP! You can create interesting dis- input to these components as z, but you should keep in mind
tortion effects for movie processing that for many of these components the “z” input is not interby connecting the Z-input to a shape preted as a spatial coordinate. The z input often acts as a conwhich moves during the animation. The trol input that influences the transformation though in some
system shown at left can be used to cre- cases it may act as a third spatial coordinate for components
that transform 3D space into 2D space.
ate a sweeping band of distortion.
Most of the components that start with “Z”, use the Z-input to
control the amount of the effect (such as rotation amount or distortion amount). Many of the noise functions use the
Z-input to control the phase or the noise pattern. When using such components, the Z-input can be used to animate
the noise by time by connecting it to the global Z or W inputs.
z Scale and Offset
A: Displace X B: Displace Y C: Z Scale
This component distorts the x and y inputs by scaling and offsetting the incoming values before passing them
through to the left and right outputs respectively. The z input controls the amount of scaling. The A and B parameters
control the x and y displacement and the C parameter scales the influence of the z input.
z Scale & Offset is often used with iterative trees where the iteration value is passed to the z input to scale the space
by a different amount for each iteration. It can also be used whenever you need scaling controlled by another component. Note that non-constant z values will distort the space rather than just scaling it.
z Displace
A: Displace X B: Displace Y C: Amplitude
This component uses the z input to displace the x and y inputs independently according to the displace X and displace
Y parameters. It differs from z Scale and Offset in that the value of z is added to x and y values rather than multiplying
them. It has a skew effect on a simple plane.
Tip: you may use z Displace whenever you need the displacement amount to be controlled by another component
or by an iteration value.
z Multiply x*z, y*z
Scale the x and y inputs using the third (z) input to control the scaling. This is also a basic mathematical building
block for creating systems from your own mathematical formulas. Tip: When used at the top of the system, this
component can be used to create time-controlled (rather than parameter-controlled) zooms. Because larger values of
x, y and z make objects farther away, an increasing value of z makes objects appear smaller. To use this component
to zoom in, insert a 1D A/x filter before the third input as shown in the example file “z Multiply Zoom”.
- 154 -
COMPONENT REFERENCE: 3->2 Components
Left output = x * z
Right output = y * z
z Weighted Multiply
A: z phase x B: z phase y C: Amplitude
This component multiplies the x and y inputs by the z input which can create complex interactions of the inputs. The
amplitude determines the z input’s influence. There is no influence when it is 0. The A and B parameters are offsets
added to z before multiplying the x and y inputs. As with z Multiply, this component can be used to scale the x and
y inputs under the control of another component.
Left output: (C * (z + A) * x)
Right output: (C * (z + B) * y)
The name of this component was changed in version 2.5. In earlier versions, it was called z Multiply. The new z
Multiply provides parameter-less multiplication.
z
Divide, x/z, y/z
This component is a useful math primitive and space distortion function. If a constant value is fed to the z input, the
result is simple scaling of the space received by the x and y components. But if you send anything more interesting,
you get very interesting disturbances of space. Explore sending the output of various 1->1 and 2->1 components
to this component and watch what happens. The formula for the x output is x-input/z-input. The formula for the
y-output is y-input/z-input.
z Rotate
A: Amplitude B: Phase
z Rotate uses the third input to control the rotation of the space defined by the x and y inputs. When the z input has
a center value of 0, nice twirl effects can be created when animating the system.
Tip: you may use z Rotate whenever you need the rotation amount to be controlled by another component or by an
iteration value.
Parameter options allow the rotation to be set in degrees.
z
Rotate and Scale (expanded and updated)
A: Rotation B: Scaling Amount C: Phase
The z input determines the rotation and scaling of the input space. There are two algorithms: default and Exponential Scale. In the lastter, the z-input controls the level of zoom and, if connected to time, can produce a nice exponential zoom that is particularly useful for fractal set exploration. Rotation is applied independently of the z value and
offset x and y will provide the zoom and rotation center. Better animation control can be achieved with this mode
than using the keyframe zoom options.
Parameters A (Rotation) or B (Scale Amount) determine the influence that the z input has. Phase is an offset added
to the generated co-ordinates.The parameters must be non-zero for z to influence the output. This component is frequently used in iterated systems (so that the iteration number can influence both rotation and scaling) or with 2->4
XYza functions.
Parameter options allow the rotation to be set in degrees.
Z Sin distort
A: Frequency B: Phase C: Amplitude
This component is the same as z Scale and Offset with the addition of a sin filter applied to the third input. This is
a nice component for creating periodic space modulations (when the x and y inputs are received from the plane or
- 155 -
COMPONENT REFERENCE: 3->2 Components
from another vector component.)
z
Sin warp (amp)
A: Ampl.X Warp, B: Ampl. Y Warp, C: Freq.
This component performs the same function as the 2->2 version but uses the Z input to
determine the amount of warping.
In this example, the iteration count is sent to the Z-Input so that each iteration the warping increases with the iteration number.
Z Waves
A: Amplitude B: Phase
Z Waves is similar to 2D Sin Warp but with the z-input modulating the displacement amount. This component can
create ripple-like undulations, especially when the phase is animated. If you follow this component with the Movie
or pict component, you can get interesting water-like distortion.
z
Twirl
A: Amount x B: Offset x y C: Offset yz
3->2 implementation of 2->2 Twirl component. The Z-input controls the Twirl amount (amplitude).
z Random waves A: Frequency B: Amplitude C: Phase
A space distortion function that creates liquid-like wave distortions under control of the z input. The z-input modulates the amplitude of the waves. The Frequency parameter controls not only the spacing of the waves but also where
they start. By adjusting the frequency, you can create effects (as shown in the example file) where only a portion of
the incoming space is distorted by waves. Example file: Reflection waves, Random Waves Moonlight
z Ripples
A: Frequency B: Amplitude C: Phase
A version of the 2D Ripples component that allows the ripples to be controlled by the z input. The Frequency parameter controls not only the spacing of the waves but also where they start.
z Wipe
A: Threshold B: Distortion C: Frequency
Create a wipe or mask effect controlled by the z input. The component will usually take a 2D space input
for the left inputs. The z input will come from a surface/texture generator that provides the wipe’s contour.
Where the z input is above value set by the threshold (parameter A), z Wipe generates inifinity (which is
transparent to the RGB mixing functions). Where z is below the threshold, the inputs are passed through
and possibly distorted. Distortion controls how much the z value will affect the scaling of the x and y inputs
before passing them through. Example files: Simple z wipe, Circuitry z wipe and Crystal Noise z wipe
Two stages of the wipe performed by the Simple z wipe example whose structure is shown above.
- 156 -
COMPONENT REFERENCE: 3->2 Components
3D City Light & Reflection #
A: Pattern # B: Amount C: Frequency
This component provides window lights and reflections when designing city landscapes for ArtMatic Voyager and
is a companion to 3->4 3D Tech Noise (Tech Noise provides the color texture for the buildings and City Light &
Reflection provides the information about the reflections and light coming from the building windows as long as
the same pattern is used for both components). The outputs are intended to mapped as extra outputs in ArtMatic
Voyager . The x output value is intended to be mapped to ambient light , and the y output value should be mapped
to reflections or wetness in ArtMatic Voyager.
Input values. This component is intended to be used to create a color texture for ArtMatic Voyager and so it uses
Voyager-based inputs. The inputs are from left to right: latitude, elevation, longitude. (I.e. the left and right inputs
are the ground co-ordinates and the middle input is the Voyager elevation).
Parameter A selects the pattern/city map to be used. The City Patchwork and Building series map to the patterns of
the same name of the 3->4 3D Tech Noise component. The patterns maps are:
0: Building A Sharp
8: Building E Sharp
16: Building I Sharp
2: Building B Sharp
10: Building F Sharp
18: City Patchwork A Sharp
1: Building A Soft
3: Building B Soft
4: Building C Sharp
5: Building C Soft
6: Building D Sharp
7: Building D Soft
9: Building E Soft
11: Building F Soft
12: Building G Sharp
13: Building G Soft
14: Building H Sharp
15: Building H Soft
17: Building I Soft
19: City Patchwork A Soft
20: City Patchwork B Sharp
21: City Patchwork B Soft
22: City Patchwork C Sharp
23: City Patchwork C Soft
When creating ArtMatic Voyager cities, set the frequency of all
the “city components” to the same frequency. You can sometimes
create interesting images when using different frequencies if the
difference is a factor of 2. When used in conjunction with a color
shader, such as 3->4 3D Tech Noise, the two components should
use the pattern (parameter A) with the same name to ensure that
the lights created by 3D City Light and Reflection match the colors
created by the color shader.
Top: As the system appears in ArtMatic. Bottom: View from Artmatic Voyager.
Perspective Sym(metrical)
A: Amplitude
This component can be used in some cases to create perspective-type effects. When set up properly,
this component creates two opposed planes which converge towards a horizon. To work as a perspective tool, you should use the Insert popup menu’s Insert Perspective command as it will supply
the other components needed to give the effect. The z-input provides depth/tilt of the viewed plane.
The amplitude parameter controls the tilt amount.
- 157 -
COMPONENT REFERENCE: 3->2 Components
Perspective Clipped
A: Amplitude
This component is similar to Perspective Sym except that it doesn’t mirror space about the horizon.
When points reach a maximum value, they are clipped to the same distance. With this effect, it is
often advisable to use depth cueing to reduce noise which is likely to appear in the far distance.
TIP: You can use this component to create 3D globes by using Insert Perspective and substituting the
distance component for the upper-right component. You may also want to insert the Distance Mirror
component after the perspective component to reduce the background noise. See the PerspectiveClip
Globe file in the Doc. Example Files folder which accompanies this documentation.
Parallel Projection
A: Angle xy B: Angle uz
When the inputs describe a 3D surface, this component creates a 2D projection or representation of
it. The process is similar to the process by which a cube can be projected onto a 2D plane (such as a
sheet of paper) and represented as a configuration of lines. The two parameters serve to rotate and tilt
the plane onto which the surface is projected.
Spherical Projection (expanded 5.0 and 6.0)
Spherical projection provides several algorithms for providing spherical and cylindrical projections.
Before ArtMatic 5, only one algorithn was available. Algorithms 0 and 1 are useful for mapping a
2-D image onto the surface of a sphere since they take into account the curvature of the sphere in all
directions. Algorithms 2 and 3 are useful for mapping a 2-D image onto a cylinder or cylinder-like
object which is curved in only one direction. The algorithm choice depends on whether the 3D space
being mapped is spherical or cylindrical as demonstrated in the table below.
Parameter options allow you to select the orientation. Prior to ArtMatic 6.0, orientation was along the y axis.
Example: ArtMatic Voyager/2.0 examples/DFRM Objects/Basic Objects/Textured torus.vy uses a cylindrical projection
Algorithms:
• 0 - Spherical Projection. This was the algorithm used by ArtMatic 4.8 and earlier. It creates a virtual sphere onto
which the surrounding space is projected. It can be a little bit like looking into a mirrored sphere and seeing the surrounding room captured in the mirror ball. Whether the resulting system actually has the appearance of a spherical
projection depends on the inputs. It is often best to precede this component with one of the perspective components.
The picture at left was created with the file Spherical Projection which can be found in the Doc. Example Files folder
which accompanies this documentation. Tip: Take a look at the example file and manipulate the parameters of the
topmost components and note how they are reflected in the spherical portion of the image. Note that there is a discontinuity at 2π. Output: angle(x,z), asin(y/M)
• 1- Spherical Sym Projection. The absolute value of x is used which keeps the projection symmetrical and continuous. Output: angle(|x|,z), asin(y/M)
• 2- Cylindrical Projection. Y is passed out unchanged. Output: angle(x,z), y
• 3- Cylindrical Sym Projection. This is the same as algorithm 2 except that the absolute value of x is used to make
the output symmetrical and continuous. Output: angle(|x|,z), y
- 158 -
COMPONENT REFERENCE: 3->2 Components
• Triple Face Projection. Illustratted below. Triple Face Projection that performs a cubic projection that can be used
to wrap a 2D-space around a cube. This can be used to wrap images around a cube. The middle area becomes the
front/back face, the right-hand area becomes the top/bottom, the left-hand area becomes the sides.
• Dome Projection
• Dome Sym Projection . Illustrated below. The two dome projection algorithms areuseful for creating architectural
domes by wrapping color textures around them. The center is mapped to the dome center. These algorithms minimize distortion when the slope approaches verticality.
Technical Note: asin is arcsine and M is the modulus (dist(x,y,z)) used to normalize y.
Tree used
to for the
example
images.
A sphere with the Spherical Projection set to algo- Spherical Projection set to algorithm 2 (cylinrithm 0 (spherical projection). Notice that it com- drical projection). Notice the squashing of the
pensates for the curvature in all directions.
logo.
Spherical Projection set to algorithm 2 (cylindrical projection) to project the logo image onto the
cylinder.
- 159 -
Spherical Projection set to algorithm 1 (spherical projection) to project the logo image onto
the cylinder. Notice the distortion that occurs
because the spherical algorithm is compensating for curvature at the top and bottom which
a cylinder does not have.
COMPONENT REFERENCE: 3->2 Components
Triple face projection illustrated. The source image has three ‘panels’ that will be used for the faces of the
cube. You could modify the tree to use 3 different images by adding the appropriate components.
The tree wraps the three The compiled tree that
images around a cube.
lays the three images
next to each other
The three images are wrapped on to different faces
of the cube.
A dome using the Dome Projection for its texture. (File: RussianDome basilic & Monastere)
- 160 -
COMPONENT REFERENCE: 3->2 Components
Revolution & Sweeps (expanded and renamed)
Formerly Revolution Space xz. This component was vastly expanded in ArtMatic 6. This component is primarily
used for constructing 3D DFRM objects for ArtMatic Voyager. It provides a number of algorithms for sweeping a
2D shape along a path (set with the algorithms popup). For example, if you rotate a vertically-oriented circle in a
circular path, the result is a torus (a donut shape). Connect the inputs to 3D space and the outputs to a 2D surface
(a 2->1 tile that provides the shape to be swept). Frequently, a 2D shape from 2->1 Profiles Shapes is used. The
algorithms provide different paths along which the profile is swept.
Revolution space returns dist(x,z) from the left output and y from the second output.
In general, if the profile shape is symmetrical and bounded, the resulting volume will be open inside. If the profile is
infinite in the x-minus direction, the volume will be filed. The paths are on the xz (horizontal) plane unless specified
otherwise.
Parameter: A: Radius. Other parameters appear for different algorithms.
Examples
A torus is created from the Distance
component whose Amplitude is less
than 0
The solid created when the 2->1
Shapes component is set to Pyramid Squared
The result when 2->1 Lozenge is
swept in a circular path
- 161 -
COMPONENT REFERENCE: 3->2 Components
Complex objects can be created quite
simply.
Algorithms:
The examples below illustrate the available path algorithms.
Circle and Basic Polygonal Paths
Circle Revolution
Triangle Revolution
- 162 -
Square Revolution
COMPONENT REFERENCE: 3->2 Components
Circle and Basic Polygonal Paths
Pentagonal Revolution
Hexagonal Revolution
Octal Revolution
Dodecagonal Revolution
Circle and Basic Polygonal paths. Paths based on regular polygons. They can be combined with logic operators to
create more complex paths. This set has a single parameter: radius.
•
•
•
•
•
•
•
Circle revolution. This was the path used by the forerunner (Revolution Space xz)
Triangle revolution
Square revolution
Pentagonal revolution
Hexagonal revolution
Octal revolution
Dodecagonal revolution
Miscellaneous Paths 1
Arc 4
Start 4
Waves N Revolution
Power Sines N Revolution
Rectangle
U-Rectangle
- 163 -
COMPONENT REFERENCE: 3->2 Components
Miscellaneous Paths 1
Rectangle & 4 Squares
Rectangle & 4 Disks
Miscellaneous Paths
• Arc 4. A four-sided convex arc pattern.
• Star 4. A four branch triangle pattern.
• Waves N revolution. A circle modulated by sine waves. Period (parameter D) sets the number of repeats per disk.
Modulation (parameter B) controls how much the disk is modified.
• Power Sines N revolution. A circle modulated by powered sines. Period (parameter D) sets the number of repeats
per disk. Modulation (parameter B) controls how much the disk is modified.
• Rectangle. The Width (x) and Depth (z) parameters set the path dimensions.
• U-Rectangle . A rectangle with a cut where radius (param C) sets the dimension of the cut and offset (param D)
its depth. The Width (x) and Depth (z) parameters set the path dimensions.
• Rectangle & 4 squares. A rectangle combined with 4 squares at its edges. The squares radius is controlled by param
3 and can be negative so that the squares are cutting the rectangle.
• Rectangle & 4 disks. A rectangle combined with 4 circles at its edges. The circle radius is controlled by parameter
C. If the radius is negative the disk will cut the edge with an arc. The offset parameter offsets the disk from the edge.
Miscellaneous Paths 2
Cross
Cross+Disk
Lines Orthogonal
Lines Radial Arc
Lines Radial Disk
Dented Ring
- 164 -
COMPONENT REFERENCE: 3->2 Components
Miscellaneous Paths 2
Dented Rect (R-Points)
Miscellaneous Paths 2
Dented Rect (C-Points)
Dented Rect (Lines)
• Cross
• Cross+disk
• Lines Orthogonal. Creates a set of unbounded lines in a cross pattern. Period (param D) sets the number of lines
per width. Lines Orthogonal generally is best suited to cutting holes in objects (for creating windows for example)
but can be used if combined with another volume to create parallel sets of shapes.
• Lines Radial Arc. Creates Lines number (parameter B) of unbounded lines radiating from a central disk. Start angle
(param A) defines the initial rotation of the path. Period (param D) defines the maximum number of lines and the
angle between the lines. Lines Number cannot exceed Period.
• Lines Radial Disk. Creates a set of bounded lines radiating from the center. Parameters are: Radius, Inner Radius,Line Width, and Period.
• Dented ring. A circle surrounded by a set of “points”.
• Dented rect (R-points). A rectangle surrounded by a set of squares. The exact size of the rectangle depends on the
period parameter which determines the number of “dents” to create.
• Dented rect (C-points). A rectangle surrounded by a set of circles. This algorithm is a useful primitive for creating
a building surrounded by columns.
• Dented rect (lines) . A rectangle crossed by a set of lines. Inner radius (param C) scales the size of the rectangle.
Arc Paths
Power Arc xz
Cubic Arc xz
Power Arc xy
Arc Paths
Cubic Arc xy
•
•
•
•
Power Arc xz
Cubic Arc xz
Power Arc xy
Cubic Arc xy
- 165 -
COMPONENT REFERENCE: 3->2 Components
•
•
•
•
Perlin Curve
Mixed Curve
ZigZag Path
Arch Tower
Spherical disk tile
A: Amplitude B: Angle xz C: Angle yz
This component creates a 3D-like tiling of space that creates a series of
tiles projected outwardly in a pattern
such as the ones displayed.
The Z-input controls the apparent distance from the point of projection (it can be considered the z co-ordinate of the
three D space that defines the vantage point). The larger the value of Z, the closer one appears to be to the point of
projection. Amplitude controls the tile size and overlap. As the tiles get large, they also overlap.
Complex inversion
A: Scale B: Amplitude
This component is the same as the 2D version but uses 3D distance (the square root of x-squared plus y-squared plus
z-squared). The z-input has a skew-like effect.
Multi bubbles
A: Amplitude B: Phase C: Z Scale
This component distorts space with a bump texture, and the z input provides the scale of the bumps or bubbles. This
is great for stucco-like textures.
Multi inverse
A: Amplitude B: Frequency C: Phase
This is a complex component that creates islands of complex inversions, each one of which is a complete universe.
Strange web
A: Real B: Imaginary C: z Displace
This component distorts space with a complex number equation that has three attractors.. The z- input along with
the z displace parameter determine the strength of the distortion.
Z Facet Space
A: Amplitude B: Delta size C: Frequency
A z-controlled version of the 2->2 Facet Space function. The z input controls the frequency of the tiling. Each tile
has its own coordinate system centered at the parent space’s origin (0,0). The Amplitude parameter controls the
size of the tiles. The Delta Size is a scaling/zoom factor for the space enclosed in each tile, and Frequency controls
the spacing of the tiles. This component is useful both as a space distortion function and as a texture generator. As
a space distortion function, it acts like a 2D vector function whose frequency is controlled by the third input. Like
the 2D Orbiters component, this one creates copies of the incoming space. It acts as a space distortion component,
when it is fed by a 2D space and a 1D component. When this component precedes objects (especially finite-sized
objects like spheres and cubes), the result is a multitude of randomly spaced objects. When the component is used
after objects, it provides cell-like textures.
Example file: 3D Falling LogoBalls. Notice that there are three layers of balls with is only one real sphere in each.
- 166 -
COMPONENT REFERENCE: 3->2 Components
The multitude of balls is created by the facet space which precedes the Sphere tile.
The output is discontinuous and not advised for use with ArtMatic Voyager unless the edges of each facet are 0.
z
Multi Perlin Random
A: Amplitude B: Octaves C: Freq
This component implements 2->2 Multi Perlin Random noise with the addition of Z-input control of the distortion
amount.
z
MultiFractal Displace
A: Ampl. B: Roughness C: Freq.
This component implements the 2->2 version with the addition of Z-input control of the distortion amount.
3D fractal bubbles
A: Ampl. B: Roughness C: Freq.
This component remaps the incoming space into layers of bubbles randomly drawn from the parent space. The Z-Input influences the phase
of the pattern. Connect the Z-input to global Z or W for automated animation. Roughness influences the number of layers of bubbles. The size
of the bubbles in each layer is different.
Ocean & Foam (Updated 6.0)
A: Wave amp B: Wavelet Amp C: Freq.
This component was designed to facilitate designing custom seas for ArtMatic Voyager and behaves like a dual 3->1
component. Connect the z-input to time (Global Input W in ArtMatic Voyager mode) realistic wave motion. This
component plays a key role in ArtMatic Voyager’s underwater shaders.
The x-output provides the main ocean surface and the y-output provides
foam. See the 44 oceanfoam and OceanFoam44.am3d example files provided with ArtMatic Voyager to see this component in action. The example at
left is an ArtMatic Voyager image whose sea was created using the Ocean &
Foam component. The example at right is an ArtMatic image (file: Top Sea)
Random 3D Noise
A: Amplitude B: Frequency C: Phase
This is a 3D fractal/2D displacement function. It is a 3D version of the 2D vector (2->2) random
displacement noise. The Amplitude parameter controls how much the input coordinates are displaced.
Multi Perlin Random
A: Ampl. B: Octaves C: Freq.
This is a 3->2 implementation of Multi Perlin Random where Z controls the noise pattern. Connect
the Z-input to global Z or W for automated animation. For more information about Multi Perlin
Random see the 2->2 chapter of the Component Reference.
- 167 -
COMPONENT REFERENCE: 3->2 Components
Turbulence 3D
A: Amplitude B: Scale C: Phase
Turbulence 3D is a 3D fractal/2D displacement function. The Amplitude parameter controls how
much the input coordinates are displaced. Turbulence 3D is great for clouds, smoke, or to distort any
2D graphic function to give it a natural turbulent aspect. To distort a 3D graphic function, use the
3->3 version. This component uses adaptive resolution with band-limited output as well as the preference Max. Iterations for Fractals.
Multi Fractal Displace
A: Ampl. B: Roughness C: Freq.
This component is similar to Z MultiFractal displace but with the Z-Input influencing the pattern/
phase of the noise rather than the noise amount (amplitude).
Random Fractal Space
A: Amplitude B: Phase C: Frequency
Random Fractal Space can be seen as two uncorrelated 3D fractal scalar functions. It is similar to 2D
fractal Space except that the fractal texture varies in three dimensions. The output is truly random
(rather than simply a distortion of the input values).
Generally, this component is used to “fractalize” an incoming 3D space (often coming from 3D
objects) before applying a 2D texture or shader. This component uses adaptive resolution with
band-limited output as well as the Max. Iterations for Fractals preference. Tips: Use this function after a Room to
see the rich 3D textures. Example file: Fractal vector noise
Geological Noise
The next group of new components create space distortions that are especially useful for geological textures and
for systems intended for ArtMatic Voyager. They can be especially useful in ArtMatic Voyager’s combination mode
for adding new characteristics to the built-in planets. TIP! If you are reading this on the computer, you may want to
zoom in on the illustrations in order to see details that may not be apparent at the default zoom level.
Silex Fractal displace
A: Ampl. B: Roughness C: Freq.
This component creates spatial distortions typical of silex (silicate) geological formations. The Z-input controls the phase/distortion pattern of the noise. This component can be useful in creating surfaces for ArtMatic Voyager.
ArtMatic Voyager 3D Lunar Rocks Surface by
itself
- 168 -
COMPONENT REFERENCE: 3->2 Components
3D Lunar Rocks Modulated by Silex Fractal Displace
Cliff Chaos Displace
A: Ampl. B: Roughness C: Freq.
Ridged Fractal Displace
A: Ampl. B: Roughness C: Freq.
Balanced Ridged Displace
A: Ampl. B: Roughness C: Freq.
This component balances distorted with undistorted areas which is very useful in ArtMatic Voyager’s Combination
mode.
Rocky Fractal Displace
A: Ampl. B: Roughness C: Freq.
Procedural/utility components
Min(x,z), Min(y,z)
A procedural component useful as a primitive for building your own systems and implementing your own algorithms. This component simply sets the left and right outputs to the minimum of (x and z) and (y and z) respectively.
- 169 -
COMPONENT REFERENCE: 3->2 Components
Example File: Fractal Polynomial
Max(x z), Max(y z)
A: Phase x B: Phase y C: Phase z
A procedural component that generates a coordinate pair made up of the maximum of x and z (for the left output)
and the maximum of y and z for the right output. It is sometimes difficult to predict the effect of applying this effect
before trying it as the results are highly dependent on the preceding components. It is very useful for creating interesting angular juxtapositions. Example file: “MAX 3D Room”.
Max x y z, Min x y z
This component uses the maximum of the three inputs for output 1 and uses the minimum of the three for output
2. Great for creating weird spatial distortions. Results vary greatly depending on the inputs. The result is often a
complex mixing of the inputs.
Indexed Logic utils # (new)
algorithms
:
• Indexed Max. The left output is the index of the input with the maximum value (0 for left, 1 for middle, 2 for right).
The right output is the maximum value of the inputs.
• Indexed Min. The left output is the index of the input with the minimum value (0 for left, 1 for middle, 2 for right).
The right output is the minimum value of the inputs.
• Indexed Contour Max. This algorithm is great for creating contour lines where three surfaces meet. The left output
is the index of the input with the maximum value (0 for left, 1 for middle, 2 for right). The right output is the maximum of the inputs subtracted from the previous running max. The right output result is a surface whose value is 0
where the three inputs intersect and positive everywhere else.
• Indexed Contour Comp. Composite the three input surfaces where their values are greater than 0. The left output is
an an index value from 0 to 2. The right output is a surface that delineates the contours of the surface intersections.
A tree that used Indexed Logic Utils to create a composite texture (shown at right)
Parameters:
• Thickness/offset. Adds/subtracts the parameter value from the surface passed out of the right output.
- 170 -
COMPONENT REFERENCE: 3->2 Components
• Smoothing (algorithms 1 and 2 only)
The index returned by the left output is useful for shading different regions of the surface passed from output 2
differently. A gradient object or Packed Index Mixer object can be used to select different shading for the different
regions. See Contour Graphics Multishaded for an example.
Examples. See the Contour Graphics, Contour Graphics Multishaded, and 32 Indexed Logic example files.
Gated Distance
A: Threshold B: Amplitude x C: Amplitude y
Gated Distance is a routing component that sends its output out either the left or right outlet depending on the distance of the incoming point from the origin (0, 0). Use this component to provide different shading for different
regions of an image. The x and y inputs are treated as spatial coordinates. Parameter A provides the threshold which
is used for determining the routing. Amplitude x and Amplitude y are multipliers applied to the left and right outlets
respectively.
In the discussion below, D refers to the distance of the point x,y from the origin. The algorithm is such that when D
is above the threshold (parameter A), the incoming z value is sent to the right outlet (0 is sent to the left). When D
is below the threshold, D is sent out the left outlet.
When D < Threshold left outlet = B * D          right outlet =0
else (when D &Mac179; Threshold) left outlet = 0                 right outlet = C * z
Example files: Gated distance basic is a simple example. Note that the left branch controls the shading of the central
area (the points closest to the origin) and the rightmost branch controls the shading of the outer region. Experiment
with the threshold parameter to see how it influences the image. polynomial LS D b is an advanced example where
Gated Distance (used along with Conditional Z Set) allows the points of the fractal which approach infinity to be
shaded differently than the others.
Image created by the Gated Distance example file
Open Compiled Tree
A: Blend B: Recursion
Choose this component to use a 3->2 compiled tree. Compiled trees are groups of tiles that can be used in place of
single tiles as a kind of macro or subroutine.
Compiled Trees and their parameters are covered in detail in the Compiled Trees chapter of this manual.
3D Fractal Sets # (new)
This component provides several algorithms that implement 3D fractal surfaces and can be used with ArtMatic
Voyager to create amazing images. The left-hand output is the distance field (the object surface when rendered with
ArtMatic Voyager). The second output is intended for color mapping or ambient occlusion. When rendering in
ArtMatic Voyager, use the Fractal Opaque object shader since it understands the particular needs of fractal objects
- 171 -
COMPONENT REFERENCE: 3->2 Components
(such as how to deal with the infinitely high frequencies that can occur). It is recommended that you use Ambient
Occlusion (a setting in the ArtMatic Voyager object options dialog) when rendering fractal objects.
The fractal iterations are determined by the Maximum Iterations for Fractals setting. Some of these algorithms converge quickly at high iteration levels. 5 to 8 is generally sufficient for high levels of detail.
Examples: Many examples are provided with ArtMatic Voyager. See files with fractal in the name.
Parameter options. Some algorithms have paramete options:
•
•
•
•
Render limit set . Normal mode where the sets is the limit volume of the iterations
Render as spheres. Accumulates spheres of smaller and smaller sizes
Render as cubes. Accumulates cubes of smaller and smaller sizes
Render as spheres & cones. Accumulates spheres & cones of smaller and smaller sizes
limit set
as spheres
as cubes
as spheres & cones
Various 3D Fractals Rendered in ArtMatic Voyager
- 172 -
COMPONENT REFERENCE: 3->2 Components
Algorithms:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
MandelBulb
MandelBulb Julia (0, 0, -1)
MandelBulb Julia
MandelBulb Julia (a cos(b),a sin(b),0)
MandelBulb Julia R1 (a cos(b),a sin(b),0)
MandelBulb Julia R2 (a cos(b),a sin(b),0)
MandelSpheres. Creates a fractal based on “Power” symmetries of rotation with spheres MandelTubes. Creates a fractal based on “Power” symmetries of rotation with cylinders Menger Sponge
MandelBox +
MandelBox MandelBox Julia A
MandelBox Julia B
Abs MandelBox. A Mandelbox-like fractal that uses ABS(z) instead of the MandelBox folding reflections
Kleinian Dream A . A fractal based on spherical inversions.
NFold Series
Fractal sets based on mirror-rotation folding. Some sets like 8-4 and 4-2 have a dramatic sci-fi architectural look.
Examples: See Voyager examples in the NFold folder.
a typical NFold series fractal rendered with the render as spheres option.
•
•
•
•
•
•
•
NFold 2-2 fract
NFold 3-2 fract
NFold 4-2 fract
NFold 5-2 fract
NFold 6-3 fract
NFold 8-3 fract
NFold 8-4 fract
- 173 -
COMPONENT REFERENCE: 3->2 Components
The MandelBulb tower seen in detail and far away.
Manbelbulb-based coral reef
- 174 -
COMPONENT REFERENCE: 3->2 Components
Mandel Box
ABS MandelBox
- 175 -
COMPONENT REFERENCE: 3->2 Components
An ArtMatic voyager rendering of Kleinian Dream A
See Also
Menger Sponge: http://en.wikipedia.org/wiki/Menger_sponge
Mandelbox. Based on two spherical reflections and xyz folding, the MandelBox creates amazing architectural structures. See: http://en.wikipedia.org/wiki/Mandelbox
MandelBulb: http://en.wikipedia.org/wiki/Mandelbulb
- 176 -
3->3 Components
The components in this group cover a wide range of applications: 3D space distortion and object creation, color/
light manipulation, and mixing. An essential in-depth discussion of function categories is found in the Getting
Deeper chapter and is recommended reading for everyone.
The inputs to the components are referred to as x, y, and z for the left, middle and right inputs. Keep in mind that
they may or may not actually be spatial coordinates. While many of these components were designed with particular
applications in mind, it is worth exploring non-typical applications.
Tip: Try using the space manipulation components (rotate, sphere, etc.) as color manipulation tools. For example,
insert Rotate or Sphere or 3D Random Vector components between RGB/HLS and HLS/RGB components to manipulate image color.
3D Scale (Updated)
A: Scale x B: Scale y C: Scale z
Scale the three inputs independently. This component can be used as a space distortion function, or as three independent parallel 1D scale filters.
Parameter Options: Individual Axis and Uniform Scaling.
Prior to ArtMatic 5, individual axis was used.
With Individual Axis selected:
xout = A * x
yout = B * y
zout = C * z
Uniform Scaling allows all dimensions to easily be scaled by the same amount. It uses parameter A to scale all three
outputs and uses B and C to for addition scaling of the Y and Z outputs. With Uniform Scaling, the formulas for the
outputs are:
xout = A * x
yout = A* B * yzout = A * C * z
 3D Offset
A: Offset x B: Offset y C: Offset z
Add an offset to the incoming values.
xout = A + x
yout = B + y
3D Rotate (expanded)
zout = C + z
A: Angle xy B: Angle xz C: Angle yz
This component provides a few different methods of 3D rotations. While this component was designed to take a 3D
space as its input, it can have an interesting affect when applied to color manipulation.
Some algorithms provide both 3D rotation and 3D offset making them more efficient than the standard 3D Rotate
plus an additional offset component.
Algorithms:
• Rotate 3 Axes. This was the algorithm used by earlier versions. Parameters A, B and C provide the rotation amounts
- 177 -
COMPONENT REFERENCE: 3->3
in the xy, xz and yz planes respectively.
• Rotate yz (oX) & Offset z & x. Rotate the yz plane around the X axis. Parameter A controls rotation amount, and
parameters B and C provide offsets along the z (depth) axis and x (horizontal) axis (the axis of rotation) respectively.
• Rotate xz (oY) & Offset x & y. Rotate the xz plane around the Y axis. Parameter A controls rotation amount, and
parameters B and C provide offsets along the x (horizontal) axis and y (vertical) axis.
• Rotate xy (oZ) & Offset y & z. Rotate the xy plane around the Z axis. Parameter A controls rotation amount, and
parameters B and C provide offsets along the y (vertical) axis and z (depth) axis.
Normalise
A: Magnitude
This is a mathematical primitive that normalizes the incoming vectors. The vector’s magnitude is set to unity and
maintains its orientation. The magnitude parameter is a scaling factor applied to the resulting vector magnitude.
Formulas:
xout = x / sqrt(x2 + y2 + z2)
yout = y / sqrt(x2 + y2 + z2)
3D Normal
zout = z / sqrt(x2 + y2 + z2)
A: Magnitude B: Distribution
3D Normal uses the 3D derivative to calculate the orientation of the incoming space/object. 3D Normal generally
needs to be followed by the Ax + By + CZ (the dot-product) 3->1 component to yield a meaningful lighting effect.
Parameter A controls the Magnitude of the Normal vector. Distribution blends slightly different calculations. This
component must actually scan the entire structure tree; when used in a compiled tree, it will not be able to access
the parent’s tree and so will yield different results than when used in the parent itself. Using this component as an
RGB-shader creates the illusion that red, green and blue lights are illuminating the object. Technically, this component returns the input’s normal vector. The normal is the vector perpendicular to the surface’s tangent plane.
Example Files: Braque & Picasso & ArtMatic
3D Spaces (new)
This component provides some useful preset 3D spaces that are especially useful for creating DFRM objects. See
the 3D Spaces series of examples provided with ArtMatic Voyager to get some idea of how it is used.
Parameters: the parameters vary with the algorithm.
Parameter Options: orient +, orient -, orient + and offsets*10, orient - & offsets*10. The “*10” options are useful
when you need offsets larger than the provided range. The +/- options only have significance when the algorithm
uses absolute value, such as Bilateral Split |y|.
Algorithms:
• Mirror Space |x| |y| |z| . Mirrors the space in all directions by taking the absolute value of all axes. Parameters: A
(unused). B ( Smoothing). C (unused).
• Radial Space xz . Space is mapped to a radial space oriented along the Y axis (which is unchanged). This has the
effect of turning a tall rectangle into a cylinder. The result in mathematical terms is that x becomes the angle scaled
by A* 32/π. Distance(x,z) becomes z*B+C. Parameters: A: Scale X. B: Scale y. C: Offset.
• Radial Space |x|z - . Radial space transformation but mirrored on the X axis. Radial space becomes problematic
near the center (0, 0, 0); so, it is best to avoid havig the objects near it. Parameters: A: Scale X. B: Scale y. C: Offset.
• Pyramidal Space y . The y-axis is preserved. X and Z (height and width) are remapped to a pyramidal geometry.
Parameters: A: Amount. B: Scale %. C: unused. When A <0.5, space is remapped so that it is narrow at the bottom
- 178 -
COMPONENT REFERENCE: 3->3
and wide at the tap. When A > 0.5, the space is narrow at the top and wide at the bottom. When A = 0.5, there is no
pyramidal remapping. With DFRM care must be taken. The space distortion that occurs when parameter A is high
may prevent proper convergence if the camera is located within the region where space is scaled at maximum. The
maximum is limited to a 16* ratio. A sets the amount of transform with 0 meaning no change. P-Space SeaShell
shows an example where y is used to compensate the distorted distance field estimation. allowing the object to be
rendered ok even if the camera is above the object.
Quick orientation switch algorithms
The next algorithms are provided for quick orientation switches. They are much faster to compute than
3->3 3D Rotate. Use these to quickly switch between front, top and side views of an object.
Parameters:
A: Rotation. B: Depth Axis Offset% C: Main Axis Offset %.
Parameter B provides an offset along the “main axis” (the one perpendicular to the view plane. This will
be Z, depth, when in xy-orientation when rotation is at 0.5% (the default).
• Normal space xy, rotation oY. Normal orientation is preserved but the space is rotated and offset according to the
parameters.
• Top view space, xz, rotation oZ. This flips the space 90 degrees vertically so that you have a top view of the object.
The effect is the same as using 3->3 Rotate to rotate yz by 90 degrees (π/2).
• Side view space zy, rotation oX. This flips the space 90 degrees on its side so that you have a side view of the object.
The effect is the same as using 3->3 Rotate to rotate xy by 90 degrees (π/2)
• ArtMatic top view space. This mode allows you to quickly switch to a top-view of the space without having an
impact on ArtMatic Voyager (which will use the normal view). This algorithm is quite useful if you are working on
details and a top-view would be useful in ArtMatic but where you do not want to change the object’s orientation in
ArtMatic voyager.
Mirror Space Algorithms
These transforms mirror the space along the vertical axis (y) or the width (x) and provide rotation along one axis.
Parameters: A: Rotation %. B: Smoothing C: Offset %.
• Mirror y, Rotate oX & offset z. This creates a mirror of the space (along the y axis) where the mirror can be rotated
and offset. This can be useful for animating a mouth or eyelids as shown in the 24 Color Logic.vy example. Animating parameter A (the rotation) gives the effect of a horizontally-oriented “hinge” along the x-axis (the width in
normal view).
• Mirror y, Rotate oZ & offset x - mirror space with control over rotation and offset in one direction. This algorithm can
be useful for animating a mouth or eyelids as demonstrated in the 24 Color Logic example folder. The rotation
(“hinging”) is along the z-axis (depth in normal view).
• Mirror x, Rotate oY & offset z - Space is mirrored around the x-axis with rotation/hinging along the y-axis (height). This
is especially useful for bilateral creatures oriented along z (depth).
• Mirror x, Rotate oZ & offset x - Parameters: A: Rotation %. B: Smoothing C: Offset %. The rotation (“hinging”) is
along the z-axis (depth in normal view).
Bilateral Split Algorithms
These create a symmetrical bifurcated space mirrored along the axis in the name. This component is useful for creating rotated mirror copies or to spit an element into two branches. Parameters: A: Rotation %, B: Smoothing, C:
Offset. The two spaces are offset by amount C and then rotated. When A is 0.5, the result is just a symmetrical space.
The resulting space is not continuous which can be problematic for DFRM if the shapes are not placed correctly.
- 179 -
COMPONENT REFERENCE: 3->3
• Bilateral split |y|
• Bilateral split |z|
Orientable Mirror Algorithms
Parameters: A: Rotation, B: Smoothing, C: Orientation. A = 0.5% is no rotation. This component mirrors
the space and re-orients it by the amount specified by parameter C. When A=0.5 (no change), parameter
C has no effect.
• Orientable |y| & rotate oZ
• Orientable |y| & rotate oX
Mirror and Offset Algorithms
Parameters: A: Rotation B: Smoothing C: Offset
• Mirror & offset x, floor & Rotate oZ
• Mirror & offset y, floor & Rotate oX
3D Repeats & Tile (expanded and renamed)
formerly 3D Tile. This component provides several flavors of 3D Tiling and repetition. It is useful for creating
regular tilings of space which can be useful for creating 3D objects that feature repeating patterns. The Cell Radius
parameter defines the spacing between the repetitions. The repetition parameters set the number of repeats along the
specified axis. For some algorithm, a fourth parameter is available and specifies an optional randomized rotation for
the repeats. This rotation is useful for creating sets of plants or other objects that you don’t want to look identical.
NOTE: The produced space is not continuous at cell boundaries. So, care should be taken that objects don’t extend
to or beyond the cell boundary. You may need to use the value*10 parameter option to set the cell radius.
Parameters: A - Tile X, B - Tile Y, C - Tile Z. The parameter range for A, B and C is 0 to 1. The parameter value
sets the spacing of the tiling along the associated axis. When the parameter is 0 , there is no tiling along that axis.
The Sets Algorithms are Useful for Repeating Architectural Features
Overhead view of the line, rect, cross
Overhead view of Array, Arch & Corand ring sets using a disk for the input. ners sets using a disk for the
This Arcade patio uses the Corner
mode to repeat the arcades.
The same arcade element repeated with
the Ring algorithm.
- 180 -
COMPONENT REFERENCE: 3->3
Parameter
options
:
• Use 2/period. This option treats the parameter value as frequency. Low values increase distance while high values
decrease it. At 1, the tiles overlap slightly.
• Use period. Treats the parameter as the distance between the tiles.
Algorithms
The Infinite and Repeats algorithms repeat the input cell in a three dimensional pattern with parameters A-C setting
the spacing along the three axes. The Sets algorithms are useful for architectural design and modeling. They deposit
copies of the input cell along the path shape described by the algorithm.
• Infinite Tile. Repeat infinitely. Parameters A-C set the distance between repetitions along x, y and z respectively.
By default, repeats are along the x axis. When the parameters equal zero, no repeats are performed in that dimension.
• Repeats N. Repeat a finite number of times with the number of times determined by parameter D. Parameters A - C
determine the spacing for the x, y and z axes just as in Infinite Tile mode.
• Sets xz : line
• Sets xz : Rect
• Sets xz : Cross
• Sets xz : Array
• Sets xz : Ring
• Sets xz : Arch
• Sets xz : Corners
- 181 -
COMPONENT REFERENCE: 3->3
3D Mirrors and Rotates # (new)
This component provides several 3D space transformations that are especially useful for creating 3D objects. The
transforms include a variety of rotation and mirroring algorithms along with some others.
Parameters: A: Algorithm, B: N Rotate (number of rotations), C: Offset or Angle
A l g o r i t h m s I l l us t r a t e d ( 3 D M i r r o r s
Untransformed Obelisk.
0
Mirror N xy
sharp
and
Rotates)
The tree used for the examples:
Mirror each tile/branch and perform N rotations using rotational symmetry with respect to
the xy plane.
1
Mirror N xy
smooth
2
Rotate N xy
N symmetrical rotations with respect to the xy
plane.
- 182 -
COMPONENT REFERENCE: 3->3
3
Mirror N xz
sharp
4
The same as algorithm 0 but with respect to
the xz plane
The same as the previous but with smoothing.
Mirror N xz
smooth
5
Rotate N xz
The same as #2 but with respect to the xz
plane.
6
Helix in Y
Create a helical transformation of the space
with respect to the y axis. Note: it is sometimes useful to use 3D Offset after this component.
07
Mirror N xz &
Rotate 30 zy
Rotational symmetry with respect to the xz
plane plus a rotation of 30° in the zy plane
- 183 -
COMPONENT REFERENCE: 3->3
08
Mirror N xz &
Rotate -30 zy
Same as previous but with -30° rotation in zy.
In each of the previous algorithms (0 - 8), parameter C controls the rotation center’s offset
while parameter B (N) controls the number of symmetries of rotations.
In algorthms 9 - 15, the parameter C controls the vertical rotation or the spread rather than
the offset.
09
Mirror N xz &
tilt C y
Mirror symmetry of the input with radial symmetries with respect to the xz axis plus a rotation of -C° in the zy plane.
Parameter C controls the vertical rotation in
this algorithm (while in algorithms 0 through
8 it controlled the offset). The upper example
shows C = 2 while the lower example has
C=60.
10
Mirror N xz &
tilt -C z
Essentially, the upside down version of the
previous algorithm.
11
Rotate N xz &
Spread
Radial symmetry without mirroring plus a randomized offset for each rotation. Parameter C
controls the angle by which the rotations are
spread
- 184 -
COMPONENT REFERENCE: 3->3
12
Rotate N xz
& Spread &
Bend Up
The same as the previous algorithm with the
addition of bending in the zy plane. This is especially useful for creating flowers and fluted
textures.
13
Rotate N xz
& Spread &
Bend Down
The same as the previous algorithm but with a
downward bend.
14
Rotate N xz &
Branch 3
Radial symmetry with 3 repetitions to create a branched structure. Parameter C is the
spreading angle.
15
Rotate N xz
Random
xz symmetries with randomized rotations and
offset with a spread of -C° in the zy plane.
N-Fold Mirrors & Offset # (new)
This component implements rotational mirroring. It is similar to Mirrors & Rotates but offers a choice of orientations.
Parameters: Parameters B, C, and D provide post-rotation offsets in each dimension. Parameter A sets the pre-folding rotation of the space.
The resulting space has N symmetrical branches. This component is often used with 2->1 Profiles Shapes or 3->4
Uvid Sweep Volumes. The parameter options sets the number of rotational symmetries.
Algorithms:
• xy plane NFold mirror x+
• xz plane NFold mirror x+
- 185 -
COMPONENT REFERENCE: 3->3
•
•
•
•
yz plane NFold mirror y+
xy plane NFold mirror xxz plane NFold mirror xyz plane NFold mirror y-
3D Distorts and Bends (new in 5.0; Expanded in 6.0)
This component provides a variety of 3D space distortion effects that are particularly useful for warping simple 3D
primitives into complex shapes.It is generally used to modify the shape of objects by being used above them in the
structure tree (which warps objects by modifying the space in which they occur).
Parameters: A - Algorithm, B - Amount, C - Scale/Period.
Example files: See the examples provided with ArtMatic Voyager: 2.0 Examples/DFRM Objects/Space distort objects
Spread Gaudi Plant example.
Application notes
Here are some examples to give you an idea of how you might use these algorithms. For a fish oriented along the
z-axis (the depth axis), to undulate the left and right pectoral fins, you would use Undulate Y in Zx with the sideways
option. To undulate a vertical antenna or tentacle (i.e. one oriented along the Y axis), you would use Undulate Z in
Yx. In other words, undulate back-and-forth (the z-axis) with respect with optional sideways motion to the left and
right (the horizontal/x-axis).
Several of the new algorithms feature automatic undulations. These should not be applied to animating clusters
unless you want the cluster motion to be in sync. To animate clusters in a more natural way (where there is variation
within the cluster), use 4->3 w Space Distorts as its fourth input provides an undulation signal whose frequency and
phase is different for each instance. - 186 -
COMPONENT REFERENCE: 3->3
Algorithm Name Conventions
The algorithms use the following conventions in their names. A capitalized X, Y or Z indicates an axis of motion
or orientation. A lower-case x,y or z indicates a direction that only applies if the appropriate parameter option is
selected. For example, Undulate Y in Zx indicates that there will be undulations of the Y direction (vertical) along
the Z (depth) axis and that there can be optional motion along x (the horizontal direction).
Parameter options are available for most algorithms: apply everywhere, fade near center, log increase, main dir +,
main dir -, sideways, sideways opposite, opposite fades.
Algorithms Illustrated (3D Distorts and Bends)
The images below were created by applying Distorts and Bends to a an object cluster made up of two intersecting
cylinders and a sphere. The camera is facing northwest. The thick cylinder runs along the x axis.
Setup undistorted
0
Dist xz ripples
y
Distort the space vertically using formula:
sin(dist* scale) * amount.
Ex. 1. Amount =-2
Ex, 2 Amount = 2
1
Dist xz bend y
Bend the space vertically by an amount that is a
function of the distance to to the center (0) of the
xz plane.
- 187 -
COMPONENT REFERENCE: 3->3
2
xy Plane Bend
3
zy Plane Bend
4
yx Plane Bend
5
Rotate xz by y
Vertical twirl of the space by amount * scale
6
Warp y
Distort the space’s scale on the y axis
- 188 -
COMPONENT REFERENCE: 3->3
7
Warp Dist
Distort the space proportional to its distance
from the center (0).
8
Cylindrical
bumps
Cylindrical coordinate displacement pattern
(angle(x,z),y). This works nicely for objects
of revolution and branches. Strong displacements can result in poor convergence. If there
are artifacts even at Best and Sublime quality,
the amount of distortion should be reduced.
9
Cylindrical & y
bumps
10
Cylindrical & y
spikes
11
Cylindrical
randomize
- 189 -
COMPONENT REFERENCE: 3->3
12
Spherical
bumps
Spherical coordinate displacement patterns.
Equations: (angle(x,z),angle(y,dist))
13
Spherical
spikes
14
Spherical ripples
Undulations. There are now algorithms to undulate shapes over time which is essential for animating
creatures without having to keyframe every motion.
See the OLife series examples for creatures that make use of this function.
15 Undulate Y
Vertical undulations that proceed along the z
axis (depth). In other words, undulations up
and down that move from front to back when
applied to and object aligned with the z (front/
back) axis. With the sideways option, it can
be used to undulate lateral fish fins.
16 Undulate
Y in Zy.
Vertical undulations with With ‘sideways’
option applying to y it can be used to undulate
dorsal fish fins.
in Zx
- 190 -
COMPONENT REFERENCE: 3->3
17 Undulate
X in Zy
Snake-like left-right undulations proceeding
from front to back
18 Undulate
X in Yz
Back-and-forth (left/right) undulations of the
vertical axis such as you might use for undulating vertical tentacles or seaweed.
19 Undulate
Z in Yx
Front/back undulations along the vertical axis,
such as you might use for undulating vertical
tentacles or seaweed.
Radial undulations group
Radial undulations create displacements radiate from the center and move along the named
axis.
20 Undulate
radially in Yx
. Vertical radial undulations.
21 Undulate
radially in Zx
Radial undulations along the z (depth) axis.
- 191 -
COMPONENT REFERENCE: 3->3
22 Undulate
Spherically
Yx
Undulates radiate outwards spherically from the
origin.
Random Displacement Algorithms. These algorithms are automatically animated.
Example: The file Random Displace Demo.vy demonstrates two ways of using the Random
Displace algorithms to animate tentacle-like appendages.
Random Displace X
Random displacement (in the yz plane) along
the X axis using low frequency noise animated over time.
Random Displace Y
Random displacement (in the xz plane) along
the Y-axis using low frequency noise animated over time.
Random Displace Z
Random displacement (in the xy plane) along
the Z-axis using low frequency noise animated over time.
Polar Sine Undulations. The 3 polar sines algorithms undulate radially perpendicular to the
main axis. For example, Polar Sines Y undulate radially in the xz plane. These undulations are
not automatically animated.
Polar Sines X
Polar Sines Y
Polar Sines Z
Time Ripples
xy in Z
Automatically animated ripples in the xy
plane that radiate from the Z axis.
Time ripples
xz in Y
Automatically animated ripples in the xz
plane that radiate from the Y axis.
Power bend z
in |Y|
Bends an object in the Z direction (depth)
with the amount of bending determined by
2y. This algorithm can be useful for bending a
triangular dorsal fin into a more natural shape,
for example. The amount should be set carefully to avoid problems with convergence.
Power bend y
in |X|
Bends an object in the Y dimension (height)
with the amount of bending being determined
by 2x. This algorithm can be useful for bending lateral fins up and down on a z-oriented
fish, for example.
- 192 -
COMPONENT REFERENCE: 3->3
Parameter Options. 8 parameter options are available. The options adapt the basic algorithm. Several options allow
the distortion amount to be faded. When fading is performed,t he fading (for parameter options that perform fading)
depends on the scale/period parameter for those algorithms that fade the distortion (usually near 0).
• Apply everywhere. Apply the distortion everywhere.
• Fade near center. Reduce (fade) the distortion around 0 on the main axis.
• Log increase. Increase the distortion logarithmically with respect to the main axis. Distortion amplitude increases
with the logarithm of the distance. This results in distortion only for positive values of the main axis.
• Main dir + . The distortion is applied only where the main axis has positive values and fades to 0 where the main
axis is 0.
• Main dir - . The same as main+ but with distortion applied only where the main axis is negative.
• Sideways. The distortion fades to 0 along the secondary axis. For example, when sideways is the option for Undulate Z in Yx, the distortion fades to 0 as one moves away from the horizontal (X) 0. Normally, the fade to 0 would
fade to 0 along the vertical (Y) axis.
Fade Near Center applied to Undulate Z in Y. The ‘zero’ point is on the
vertical axis.
Sideways sets the ‘zero’ point along
the X axis.
• Sideways opposite. Similar to sideways but for those algorithms that are animated by time (such as Undulate Z in
Yx) the distortion moves in opposite directions on either side of the center.
• Opposite fades. The distortion amplitude fades to 0 in the middle but the modulation is applied in opposite directions for the + and - values. For example, with Undulate Z in Yx, the undulations move upwards for the upper half
and downwards in the lower half.
Algorithm Changes from ArtMatic 5.0 to ArtMatic 6.0
ArtMatic 5’s x Bend, y Bend, and z Bend were renamed in version 6 as Xy Plane Bend, Zy Plane Bend
and Yx Plane. The behavior also changed. In version 5, these were symmetrical bends where positive
and negative values on the main axis were bent in the same direction. In 6.0, the algorithms were updated and they are no longer the same for positive and negative values. To accomplish the earlier versions
symmetry insert a 1->1 ABS component on the main axis (i.e. the X axis for the Xy bend, the Z axis for
Zy, etc.).
- 193 -
COMPONENT REFERENCE: 3->3
x Bend applied to a rectangular plate in
ArtMatic 5
Xy Plane Bend (which replaces x Bend in
ArtMatic 6.0).
Insert a 1->1 Abs component on the main
axis to achieve the symmetry provided by
the ArtMatic 5 version of the algorithm.
3D sphere A
A: Angle xz B: Amplitude y C: Displace z
Create a pseudo-3D sphere. This 3D object behaves a bit differently than the other 3D objects. It is not a true 3D
sphere, and, as a result, infinity is not used as the value for the regions outside of the sphere. The sphere appears
against the same background that provides its surface texture.
3D sphere B
A: Offset x B: Offset y C: Offset z
Create a true 3D sphere. The region outside of the sphere is given the value infinity (which is treated as transparent
by many of the mixing components). To rotate the sphere, place a 3D rotation component after the sphere. To move
the sphere in an orbit, place a rotation before the sphere.
3D plane
A: Banking x B: Plane Offset C: z Slope
Create a 3D plane which can be banked and tilted. Like all 3D object components, the area outside the object is
mapped to infinity (which is painted with the first auxiliary color -- the depth cueing color.) The components which
follow the plane component provide the surface’s texture. Banking x controls the horizontal tilt, Plane offset provides
- 194 -
COMPONENT REFERENCE: 3->3
an altitude offset, and z Slope controls the forward/back tilt.
3D Tube
A: Offset x B: Offset y C: Radius
Create a 3D tunnel.
Parametric face
A: Angle xy B: Angle zx C: Offset z
A bounded 3d plane (i.e. the face of a cube). The first two inputs control the face’s texture. The third input represents
the distance which allows you to control the object’s distance from the ‘camera’ by adjusting the z (third) input. See
the examples Logo ParamPlane Additer and Logo Pump.
Parametric plane
A: Angle xy B: Angle zx C: Offset z
A 3D plane. The first two inputs control the plane’s texture. The third input represents the distance which allows
you to control the object’s distance from the ‘camera’ by adjusting the z (third) input. The z value can set by the
Iteration component when you need a series of 3D parallel planes. A non-constant z input will cause the plane to
be distorted. The X & Z (first & last) outputs should be used for 2D texturing. See the examples Logo ParamPlane
Additer and Logo Pump.
3D elevation slices
A: Scale B: Slope C: Offset z
This is an advanced component that makes certain kinds of 3D modelling possible. This component can be used to
visualize 2D surfaces or terrains by iteratively drawing slices over the z-axis. Since true 3D modelling is beyond
ArtMatic’s current capabilities, this component was added to simulate 3D rendering of some systems. The third input must be connected to a 2->1 function to be evaluated or to a 2->1 compiled tree. The first two inputs determine
the points to be evaluated. Scale acts as a magnification control. Slope controls angle of view of the 3D space. Offset
controls the spacing of the slices on the z axis.
Examples: Look for the word ‘elevation’ in the examples library for examples of this component.
3D density slices
A: Scale B: Surface level C: Offset z
Another component for simulating 3D modeling. This component works by taking an input function and sampling
it iteratively over the z-axis. It is a primitive sort of volumetric rendering. The slices are limited to a plane bounded
by -Pi and +Pi on the z-axis.
The third input must be connected to a 3->1 component which will be the function to evaluated iteratively.
Examples: Look for the word ‘density’ in the examples library for examples of this component.Memory Functions
The next several components (all with Memory in their names) are intended for use in (and are only meaningful in)
iterative systems which are discussed in detail in the chapter Compiled Trees and Iteration.
Memory Components
Below are brief summaries of the memory components. Memory components are covered in detail in the chapter
Memory Components. Memory components are used in looped/iterated/recursive trees to combine the results of
each pass through the loop. These components are only meaningful in such trees. We recommend performing the
- 195 -
COMPONENT REFERENCE: 3->3
Compiled Trees and Iteration tutorial in order to best understand how these components work. See the chapter Compiled Trees and Iteration for more information about iterative systems and memory components.
Memory Min
Memory Min is something of a complement to Memory Max. Rather than retaining the maximum values, it retains
the minimum values. This is useful for accumulating dark graphics against bright backgrounds in iterative systems.
Memory Max
This component stores the maximum of the current iteration and the stored values with the fourth input scaling the
incoming values.
Memory Add
A: Start value
This component adds the value of each iteration to the value accumulated in the previous iteration with the fourth
input scaling the incoming values.
Memory Diff
Memory Diff, like all memory components, is used to combine the iterations of a looping tree. This component subtracts each iteration’s pixel values from the accumulated image’s. See the chapter Memory Components for details
about Memory Diff and the other memory (accumulator) components.
Memory Depth Sort
This component is a memory-based version of the other depth sort functions. Rather than performing a depth sort
between two sets of inputs, the depth sort is performed between the current set of values and the stored values from
the previous iteration. Depth Sort preserves the values that correspond to the frontmost pixel when the three values
are considered as 3D position. The frontmost pixel corresponds to the value with the lowest valued z (third) coordinate. This component is useful for accumulating 3D objects in recursive and iterative trees.
Memory Packed Alpha
A: A Threshold B: Feather
This is an accumulating version of the 3->3 Packed RGB Alpha component designed to be used in iterated trees.
Usually, inputs 1 and 2 will be packed RGB streams and input 3 will be a simple value. As demonstrated below,
adjusting the threshold can have a dramatic effect. When using this component. It is important to explore how the
threshold value influences the image.
See the chapter Memory Components for a detailed illustrated example.
3D color textures
3D Sines
A: Amplitude B: Phase C: Frequency
3D math primitive which generates sin(x) in the red channel, sin(y) in the green channel and sin(z)
in the blue channel. This periodic component is equivalent to three parallel 1D sine filters.
- 196 -
COMPONENT REFERENCE: 3->3
3D Color techno noise
A: Amplitude B: Phase C: Frequency
An RGB version of the 3->1 3D Techno Noise.
Example files: “3D Color Techno River” and “Triple pict projection”.
3D Color Strata stone
A: Chroma B:Distortion C: Frequency
RGB version of the 3->1 3D Stratified Noise. The Chroma parameter interpolates between color and
grayscale output. Parameter B controls the amount of vertical distortion.
3D Color Marble
A:Hue Rotation B: Saturation C: Frequency
3D color shading function that creates a veined, marble-like texture. Hue Rotation controls the color
range of the resulting texture while Saturation controls the color saturation, and Frequency controls
the spacing of the veins.
3D Color Bubbles
A: Amplitude B: Phase C: Frequency
RGB shading function that provides randomly shaped and colored bubbles.
3D color spots
A: Chroma B: Phase C: Frequency
An RGB version of the 3->1 3D Spots noise function. The Chroma parameter interpolates between
color and grayscale output.
Max to Gradient
A: Amplitude X B: Amplitude Y C: Amplitude Z
Treat the three inputs as three surfaces (fx, fy, fz). For each point, the output is the maximum of fx, fy and fz. If the
maximum is fx, the left part of the gradient provides the color. If the maximum is fy, the middle of the gradient is
used. If the maximum is fz, the righthand part of the gradient is used. The Amplitude parameter sets the range of
colors of the gradient that is used (with a value of 0 a constant color is used for each area). For more information
- 197 -
COMPONENT REFERENCE: 3->3
and an illustration, see the discussion of the 2->3 version of this component.
Note: Max to Gradient was designed to be used with ArtMatic Voyager to provide colors for a surface based on the
maximum of the inputs (as with the 3/1 MinMax) component. Each “winner” of the maximum will have its own
color.
Color manipulation
Saturation & Lum
A: Saturation B: Brightness
This component provides direct control of the saturation and luminosity of the incoming RGB values. The output
values are restricted to a valid range. (No negative values are passed out.)
Color Controls # (Updated)
A: Amount B: Red Balance C: Blue Balance
Renamed from Colorize and vastly expanded. This component provides various useful algorithms for color adjustment.
Algorithms:
• Colorize. The original algorithm. A color filter function that lets you desaturate and tint an incoming RGB stream.
With this component, you can simulate the look of ìcolorizedî images and sepia tones, and it provides a useful
control for the colors created by the various RGB texture primitives.When the Amount parameter is 0, there is no
effect. When the slider is all the way to the right, the image is a tinted monochrome image whose tint is determined
by parameters B and C (red balance and blue balance) which determine the red and blue value for the colorization
tint. When Amount is at the maximum and parameters B & C are 0, the resulting tint is green.
• Color Floor. Provides control of the minimum level for each color channel Red (parameter A), Green (B), and Blue
(C). When the parameter is at 0 is simply prevents negative color values.
• Color Clip. Clip the color values to a nominal range of 0-8. Many of the RGB components do this implicitly, but
this algorithm clips color values to optimal ranges if non-safe components were used for color manipulation. The
parameters provide an offset value for each color channel: Red (A), Green (B), Blue (C).
• RGB Contrast. Independent contrast control of the three color channels: Red (A), Green (B), Blue (C). The output
is clipped to the nominal safe range
• Multiply. The RGB Color defined by parameters A, B and C is multiplied against the input values.
• Monochrome. The parameters define a tint that is applied to a monochrome version of the input values.
RGB Contrast
A: Contrast Amount B: Offset
A component for controlling the contrast of RGB images. When the Contrast parameter is 0, there is no effect. At
the maximum value, there are only two output values. The offset parameter controls the contrast divide point. With
RGB output, the offset adjusts the overall luminosity.
Colors are clamped to valid ranges (no negative values).
See the example RGB Primary Dots Dither.
Color Shift (new)
Like the 4->4 version, this component controls hue, saturation and luminosity and clamps the colors to valid nominal ranges (0 - 8).
- 198 -
COMPONENT REFERENCE: 3->3
HLS to RGB
A: Hue Contrast B: Luminance Contrast C: Saturation Contrast
Colorspace function that converts an HLS-based color stream back to RGB. This component is almost always used
at some point following an RGB to HLS component. By inserting components between this component and the HLS
to RGB component, you can manipulate the hue, luminance and saturation of an image which make many interesting color manipulations possible.
Example files: Search for HLS to find the many examples of HLS manipulation.
RGB to HLS
A: Amplitude
Colorspace function that converts RGB-based color to HLS (hue, luminance, saturation). By inserting components
between this component and the HLS to RGB component, you can manipulate the hue, luminance and saturation of
an image which make many interesting color manipulations possible.
Example files: Search for HLS to find the many examples of HLS manipulation.
RGB Gamma
A: Gamma Red B: Gamma Green C: Gamma Blue
Color manipulation function that provides independent control of the gamma (color response curve) of the red,
green and blue channels.
RGB Gaussian
A: Offset X B: Offset Y C: Offset Z
A gaussian filter is applied in parallel to the X Y Z inputs. The Offset parameter for each input displaces the center
position of the gaussian curves. When applied to spatial inputs. RGB gaussian creates symetrical bands on each axis.
RGB Dither
A: Amplitude
Add high frequency random noise to the RGB inputs. When using direct RGB systems (systems with 3 outputs),
RGB dither can be added at the end of the tree before the final quantization into 8 bit per channel RGB to minimize
banding and color quantization artifacts. This function’s noise algorithm is independent of the canvas’ current zoom
and position.
RGB Quantize
A: Frequency B: Phase C: Amplitude
Similar to the 1->1 Quantize component but operates on all inputs simultaneously. When applied to RGB output, it
reduces the number of output colors. 
Conditional z set
A: Threshold B: Minimum
This is an advanced component that can be used to create ‘levelset’-type shading when implementing classical-style
fractals such as the Mandelbrot or Julia sets. When the distance (of the x, y inputs from the origin (0, 0)) is above the
Threshold parameter or below the Minimum parameter the incoming z value is passed to the third outlet otherwise
0 is sent out the third outlet. x and y are passed through unchanged to the left and middle outlets. Hence, when x,y
is within a specific range, the third outlet is non-zero and can be used for shading.
Generally, the z-input will be connected to the output of the Iteration component in a system with memory compo- 199 -
COMPONENT REFERENCE: 3->3
nents. In such a system, it is possible to color a point whose value is infinity with a color related to the number of
iterations required to reach infinity.
This component can also be used to create distance masking as in the Clock example file.
Example files: Fractal polynomial demonstrates the levelset shading technique described above. Clock and Clock
Face demonstrate distance masking.
3D Random vector
A: Amplitude B: Phase C: Frequency
3D space distortion function. Place this after a 3D object to provide surface texture. If you place a noise component
before a 3D object, you will warp the space in which the object exists (and thus warp the object). This is a distortion-type noise whose output is made up of randomized modulations of the input values.
3D Multi Perlin displace
A: Amplitude B: Octaves C: Frequency
This component sums a series of 3D Perlin noise functions with the frequency doubling for each function in the
series. The maximum value for the Octaves parameter is 128 (27) and provides seven ‘octaves’. This component
allows very fine control of the frequency content. It is especially useful when used with very low frequency values
to create surfaces for ArtMatic Voyager. See also 2D Multi Perlin noise and the 3->1 scalar version of 3D Multi
Perlin noise.
3D Fractal Displace
A: Amplitude B: Phase C: Frequency
Fractal version of the 3D Random vector component. Like the other fractal noise components, there are many frequencies of noise and the complexity/detail can be adjusted with the Max. Iterations for Fractals preference. This
function is a great primitive for marble or clouds or any complicated non-repeating texture.
3D Time Turbulence (updated and renamed)
A: Amplitude B: Feedback C: Frequency D: Pace
Formerly 3D Turbulence. A 3D fractal vector displacement function with feedback. The feedback
parameter causes displacements of lower frequencies to be added to the higher frequencies. It is a
good primitive for 3D fractal flow and smoke. This component is automatically modulated by time
(even when locked).
Parameter D, Pace, controls the speed of the time-related animation. ArtMatic 5 and earlier used a
constant value of Pi.
Additional 3D color textures
3D Perlin Vector Noise
A: Amplitude B: Phase C: Frequency
Returns the absolute value of three independent 3D vector Perlin noise functions. It is a useful primitive for creating random RGB gradient curves. Use the phase parameter to select the colors.
- 200 -
COMPONENT REFERENCE: 3->3
3D Color Perlin Noise
A: Hue Rotation B: Saturation C: Frequency
A color texture based on scalar Perlin noise.
3D Color fractal noise
A: Amplitude B: Phase C: Frequency
This component is the RGB equivalent of the 2->3 Random Fractal noise function. The Amplitude
augments the contrast of the R G & B channels. This component yields interesting effects when
combined with other color texture functions. Color fractal noise can also be used as a space displacement function.
Example files: “Solid Color Room”. Notice that in this example, the noise is modulated with 3x3
matrix multiplication which is found in the compiled tree at the bottom of the system.
3D Color MultiFractal
A: Amplitude B: Phase C: Frequency
3D fractal noise with varying fractal dimension (roughness) created by summing 3D
Perlin noise functions at increasing frequencies for each R G B channel.
It can be used as a multifractal displacement function when it is connected at the top of a three input
system.
3D Caustics
A: Amplitude B: Phase C: Frequency
A 3D fractal vector function that simulates caustics. Caustics are the patterns formed when a point
light source is reflected or refracted by a curved surface -- such as one sees on the bottom of a swimming pool on a sunny day. This component is based on ridged Perlin noise. It generates RGB caustic-like shapes.
You can use the Colorize component to modify the colors to give a bluish-watery caustic look. The
Phase parameter can be used to create convincing, natural-looking animation.
Packed Mixer Family
The group of components whose names include ‘packed’ is used for mixing packed streams -- usually from RGB
components or branches. When infinity is encountered in one of the inputs, it is treated as transparent. These functions can accept both packed and unpacked inputs. When the third input is treated as an alpha channel, the output
will be infinity where the input is infinity.
Packed RGB crossfade
A: Interpolate AB B: Interpolate C
Crossfade between three RGB images. See the description of the 2->3 version for a more detailed description. The
parameters determine the contribution that the inputs make to the final output.
- 201 -
COMPONENT REFERENCE: 3->3
Packed RGB alpha
A: Threshold B: Feather
Mix two RGB-based images while applying an alpha (transparency) mask provided by the third input. The third
input will usually be a simple value (non-packed stream) and acts as an alpha channel for masking the inputs. If the
third input is a packed stream then the effect is a complex mixing of the first two images treating the R, G and B
layers of the third image as masks to apply to the red, green and blue layers separately.
Packed RGB add
A: Level in1 B: Level in2 C: Level in3
Perform an additive mix of the three inputs.
Packed RGB max
A: Level in1 B: Level in2 C: Level in3
Mix three images by comparing the corresponding pixels of each image and picking the brightest pixel of the three
at each pixel position. Interesting color effects are possible. Try using a picture of sky and clouds and watch the
clouds jump to the foreground in front of the other images.
Packed Add & Mul
A: Level A B: Level B C: Multiply C
Perform an additive mix of inputs a and b and filter the result with input c. Parameters A and B control the mix of
inputs a and b. Parameter C determines how much filtering input c provides.
Example file: Golden spinal fossil is an example in which the c-input is used for specular highlights. The b-input
provides diffuse illumination, and the a-input is the basic surface whose altitude determines the color.
Packed Mul & Add
A: Level A B: Multiply B C: Level C
A packed mixing component similar to Packed Add & Mul with the multiplication and addition reversed hence
yielding different results.
Packed depth sort
A: z offset
This component mixes three 3D objects into a single set of 3D outputs. The inputs should be the packed outputs of
3D objects. See the documentation which covers the 2->3 version for more information. This component should
always receive its input from Pack components (whose input is from 3D object objects). The algorithm is such that
for each set of points received, the set with the lowest value of z wins; in other words, the coordinates closest to the
viewer win.
- 202 -
3->4 Components
3->4 components generally serve as either color texture components that output RGB+Alpha, color texture + elevation components for ArtMatic Voyager, or packed mixers. Oftentimes, these components are treated as 3->3 components by ignoring the fourth output. Many 3->4 components have a related 2->4. 1->4, 2->3 or 1->4 counterpart.
A number of 3->4 Components are especially useful for creating DFRM objects (3D objects rendered by ArtMatic
Voayger.
Inputs and outputs. The color texture component inputs can be either a 3D space or a 2D space plus a controller
input. It is often useful to precede these tiles with the 2->3 Z Set component in order to set the Z-input value (when
you want a constant value for Z). It is often useful to feed the Z input with the output of a 2->1 or 3->1 component.
Top. ArtMatic Pro side view of a 3D color texture for ArtMatic Voyager based
on Z Sulfur Fiberrock.
Bottom. The Planet B surface as seen when the tree at left is used as the color
texture.
Tree notes. Sulfur Fiberrock’s fourth output is not used in this tree--in many cases 3->4 color textures are used as 3->3 functions by ignoring the fourth output.
Notice the swapping of Global Inputs Y & Z (often used to set the orientation
of 3-input color textures used in ArtMatic Voyager).
Fourth Output. The fourth output is often useful for masks or highlights. Some components were designed with ArtMatic Voyager in
rock as seen in RGB Alpha Bump
mind and the fourth output provides an alpha channel that also
color mode. Use the RGB Alpha
makes sense as an elevation map. The RGB Alpha Bump color
Bump color mode to create 3D color
mode will create a nice 3D effect in ArtMatic Pro when used with
textures.
many 3->4 components.
The output of 3->4 Z Sulfur Fiber-
Color Shape Primitives
These components are 3-input versions of 2->4 components. The third input is used to shift the color. The fourth
output can be treated as either an alpha channel or elevation map with the same outline as the shape and peak values
at the center. For more information about these components, see the 2->4 Components chapter.
Left. Color Polygon RGB output.
Middle. Color Polygon fourth output.
Right. Color Polygon as seen with RGB+Alpha bump shading.
Using the third Input. The third input can be used to modulate the color with the output of another
component. In this tree, a 2->1 Grid is used to shift the color of the Color Circle.
- 203 -
REFERENCE: 3->4 Components
Color Polygon N
A: Sides B: Radius C: Color Cycle
Color Circle
A: Amplitude B: Radius C: Color Cycle
Color Line
A: Rotation B: Size C: Color Cycle
Color Neon Line
A: Rotation B: Size C: Color Cycle
Gaussian Dot
A: Amplitude B: Radius C: Color Cycle
Color Patterns and Noise
These components create various color patterns. The Z input can be considered either a dimensional input (in which
case the component is a true 3D texture) or a controller that influences the output color or pattern. The fourth input’s
significance will depend on how the component is used. It can be used as an alpha mask/channel, or as an ArtMatic
Voyager elevation map, or not used at all (which makes the component function as a 3->3 true 3D color texture).
Many of these components yield lovely 3D textures when the RGB Alpha Bump color shader is used.
Random Verticals
A: Ampl. B: Color Cycle C: Freq.
Random Verticals creates a pattern of randomly-spaced vertical stripes. The Z input
shifts the color. There is a related 1->4 component. Top view at left. Side view at
right.
Mondrian
A: Amplitude B: Color Cycle C: Frequency
Three-input version of 2->4 Mondrian. The Z input influences both color
and pattern. Left. Mondrian Z-Input fed by a Grid. Middle. Top (normal)
view. Right. Side view.
z
Random Polygons
A: Ampl. B: Color Cycle C: Freq.
Three-input version of the 2->4 Random Polygons pattern. The Z
input influences the polygon pattern. The images were created with
Z at 0, 0.36 and 1.0.
- 204 -
REFERENCE: 3->4 Components
L Maze
A: Amplitude B: Color Cycle C: Frequency
The Z-input influences the line width. The images were created
with Z at 1, 3 and 8.
O Maze
A: Amplitude B: Color Cycle C: Frequency
The Z-input influences the density of the maze. The images were
created with Z at 1, 3 and 8.
R Maze
A: Amplitude B: Color Cycle C: Frequency
The Z-input influences the density of the maze and the color. The
maze is only visible when z is between 1.2 and 4. When Z is outside this range, the output is a single undifferentiated color. At left,
R Maze with z at 1.6, 3, and 3.8.
z matrix lights
A: Ampl. B: Color Cycle C: Freq.
Z Matrix Lights provides a pattern of colored lights. The Z input
influences the color, density and spacing of the lights. The images
at left were created with Z at 1, 2, and 5.
z
LED Array
A: Ampl. B: Color Cycle C: Freq.
Z Led Array creates a pattern reminiscent of blinking LEDs. The Z input influences the light pattern.
z
Square LEDs
A: Ampl. B: Color Cycle C: Freq.
Z Square LEDs creates a pattern reminiscent of blinking LEDs. The Z input influences the light
pattern.
- 205 -
REFERENCE: 3->4 Components
3D Tech Noise (Expanded 6.0)
A: Pattern # B: Color Cycle C: Frequency
This component provides a set of vibrant “techno” patterns that can be used both for designing ArtMatic Voyager
cities and for creating techno patterns in ArtMatic. Parameter A is used to select the pattern created by the component. The City Patchwork patterns provide sets of building textures for use in ArtMatic Voyager.
A particular building texture is determined by the ground position using the street network pattern. For this reason,
this component will usually be used with other components that share the same “city” patterns. The frequency of the
component must match the frequency of the street network (often provided by 2->1 Tech Noise) to avoid a building
being cut in half by a street. When designing ArtMatic Voyager cities , this component is often used in conjunction
with these related components: 3->2 City Light and Reflection, 2->4 Tech Noise and 2->1 Tech Noise.
Input and output values. This component is intended to be used to create a color texture for ArtMatic Voyager and so
it uses Voyager-based inputs. The inputs are from left to right: latitude, elevation, longitude. (I.e. the left and right
inputs are the ground co-ordinates and the middle input is the Voyager elevation). The output values are RGB from
the leftmost inputs and is used in Voyager to provide the color shading for buildings. The fourth output is an alpha
value intended to be used as an extra output in Voyager. Typically, it is mapped (in ArtMatic Voyager) to “Normal”
to provide embossing of the window frames.
Notice the structure of this tree. The ground co-ordinates (the left and right tile inputs) are passed in
from the global inputs. The middle input (elevation) is passed in from the 2->1 Tech Noise component
which supplies the building elevations. The 3D Tech Noise’ fourth output is mapped as an extra output
in ArtMatic Voyager where it is used as the “Normal” to provide embossing of the window frames. 3->2
City Light and Reflection is used to provide reflection values so that Voyager can reflect scenery from
the building windows.
An ArtMatic Voyager image created from the tree shown above.
The patterns (algorithns) come in “soft” and “hard” styles. The smooth style is sometimes preferred when designing
systems for ArtMatic Voyager as these textures are not band-limited which makes them prone to aliasing when used
in Voyager.
Algorithms:
•
•
•
•
•
•
•
•
•
•
•
•
•
Random Cube Grid
Cube Edge Grid
Building A
Building B
Building C
Techno Maze
H Grid
Computer Room
City Blocks
Mayan Pyramid
Signs A
Signs B
City Patchwork A
- 206 -
REFERENCE: 3->4 Components
•
•
•
•
•
•
•
•
•
•
•
•
City Patchwork B
City Patchwork C
Building D #
Building E #
Building F #
Building G #
Building H #
Building I #
Building J #
Building K #
Building L #
Building N #
Walls & Concrete (updated)
A: Texture # B: Color Cycle C: Frequency
This is a component for creating realistic color textures for buildings in ArtMatic Voyager. The alpha output is
intended to be used as an extra output mapped to “Normale” in ArtMatic Voyager which allows ArtMatic Voyager
to provide appropriate bump shading. The inputs use ArtMatic Voyager input mapping: X and Z are the ground
co-ordinates and Y (the middle input) is elevation. ArtMatic Voyager users can find many examples in the folder
VY Bump Examples
A variety of realistic wall materials
can be simulated with this component.
The tree at left demonstrates a typical
use. The compiled tree provides the elevation map, and the fourth output of
Walls & Concrete is mapped to an extra
output rather than the elevation output.
Algorithms
The texture is selected with parameter A or the algorithm popup. The choices are:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Square plates
Old Stones
Stone Wall C
Stone Wall D
Brick Wall A
Brick Wall B
Concrete Plates A
Concrete Plates B
Concrete Plates C
Plates & Windows
Stucco & Windows
Stones & Windows
Ceramics A
Concrete Mix A
- 207 -
REFERENCE: 3->4 Components
• Concrete Mix B
• Concrete Mix C
• Stones bands A #
• Stones bands B #
• Stones bands C #
• Mixed blocks #
• Mixed striated blocks #
• Patchwork blocks #
• Tiled floor & stone wall #
• Checkboard floor & plate wall #
Jitter Tile xz# (new 5.0; Updated 6.0)
Jitter Tile xz splits the xz plane (the horizontal plane in ArtMatic Voyager) into many similar cells with local centers.
When the output is fed into a component a 3D object, the result is non-identical copies of the object. “Jittering” is
often used to perform operations like creating a forest from a tree or a field from a blade of grass for ArtMatic Voyager. This has many applications and is especially useful for creating object clusters for ArtMatic Voyager.
A forest of non-identical trees created using Jitter XZ
Jittering is done as a space transform rather than by duplicating the underlying object. It is a computationally efficient method as the underlying object only needs to be evaluated once which is very important if the object itself if
computationally complex.
Application Note: For proper convergence of DFRM objects (for ArtMatic Voyager), care should be taken not to use
too much randomization or to set the scale too low which may causes objects to move outside their cell. Jittering of
a single object can also be performed in ArtMatic Voyager itself.
- 208 -
REFERENCE: 3->4 Components
This simple tree jitters a 3D Density Shape (set to the frame shape).The fourth output, W, (the randomized jitter value) is sent to 4->3 Rotate so that each copy is rotated differently. By setting up
the structure tree correctly, you can create significant variation among the copies.
The system as it appears in ArtMatic Voyager.
Parameters:
• A: Scale controls the size of each cell. The smaller the value, the smaller the region of space that is replicated and the
closer the repetitions will be to each other. If you set this to a small value, the region may be too small to contain the
object -- especially if the Jitter % is high.
• B: Jitter % controls how much the center position is deviated from strict tiling.
• C: Clip radius % allows to restrict the area. At maximum the repetitions are infinite. A small value provides only a
few repetitions.
Output: The output are new co-ordinates X, Y and Z plus a 4th output (W). W is a random number with a range
of 0 - Pi that varies with each tile (object copy). Use W to randomize elements of the object. See the example tree
above in which W is used to vary object rotation.
Parameter Options:
• Regular Jitter. The xz plane (horizontal plane in Voyager) is broken up into a fairly regular grid
• Sparse Jitter A . The space is divided into a grid that is more irregular and sparse than first mode with various
placement patterns.
• Sparse Jitter B, Sparse Jitter C . Oher variations of sparse jittering.
• bypass. No tiling/jittering. This setting is sometimes useful for debugging a complex system so that you can see
- 209 -
REFERENCE: 3->4 Components
the item being jittered on its own.
Regular Jitter
Sparse Jitter A
Sparse Jitter B
Sparse Jitter C
- 210 -
REFERENCE: 3->4 Components
New Algorithms and Parameter Options
In ArtMatic 6, several new parameter options were added that create clusters of up to 64 copies arranged in different
ways. While the old algorithms scattered all the copies on the same plane, some of the new options create clusters
in 3 dimensions. For small numbers of objects (<32) the new options are both more accurate and faster to compute
than the original options (Regular Jitter through bypass).
Parameter C for the new algorithms determines the number of clones: from 0 to 64.
Parameter A for the new algorithms determines the distance between the instances. As always, the fourth output of
the component provides a randomized jitter value (between 0 and Pi) that can be used to create variations among the
instances. For example, the jitter value can be fed to a rotation or scaling or offset component to modify the position.
Or, it can be used to manipulate the color.
The “xz” algorithms create finite clusters on the same plane. This can be useful for creating groups of trees or creatures.
Animation tips. When animating 3D clusters, do not move the individual object (except for constrained motions like
wing-flapping) as you do not want the object to move out of the central area (the region that is cloned). With the 2D
clusters, you may move the objects up and down (the y/vertical axis), but do not move them in the horizontal (xz)
plane. To animate the whole cluster, use x, y, and z offsets before (above) the cluster/jitter tile. Another technique is
to use the global input matrix’s time output (global input w) to affect the motion.
Examples. Several examples are found in the Animation Techniques folder.
Flying Thing(s) Series. This series is a useful one to study. Flying Thing contains a single animated “bird”. Flying
Things 4 Birds has cluster of birds whose wings flap but but do not move. Flyings Things Many Birds Motion shows
a larger cluster of birds that seem to independently move with changing altitude and relative positions while flapping their wings. The wing flaps and general motion are accomplished by using global input W.
Cluster Motion Perlin. This system is a computationally-lightweight example
that uses a basic capsule object with randomized animation within the cluster. Notice how the Perlin function and derivative work to provide the proper
altitude information. The derivative component feeds each instance’s rotation
value. The compiled tree named Cluster Motion Z handles their altitude.
Cluster Motion Sine. This example uses the 1->2 Circular Motion component to
provide a dolphin-like swimming motion.
Cluster 3D Basic. This example shows an 3D ovoid cluster of rising balloon-shaped creatures.
Cluster Motion Perlin Example.
New
parameter
options
:
• Cluster xz round. A cluster on the xz (horizontal) plane with a circular boundary.
• Cluster xz ovoid. A planar cluster whose boundary is an ovoid elongated in the z (depth) direction.
• Cluster 3D spherical. A 3D cluster bounded by a sphere
- 211 -
REFERENCE: 3->4 Components
• Cluster 3D cylindric. 3D cluster bounded by a vertically-oriented cylinder
• Cluster 3D ovoid. 3D cluster bounded by a flattened (ovoid) sphere
• Cluster 3D linoid z. 3D cluster bounded by a horizontally-oriented cylinder that extends in the z (depth) direction
Jitter Spherical #
Similar to 3->4 Jitter Tile xz. It creates randomized copies of a portion of space. Spherical jitter creates its “cells”
radiating outward from a central sphere or hemisphere which makes it useful for creating biological structures like
plants or corals that have branches arms or tendrils extending out from a central area. There are several algorithms
available and different parameter options that provide for a large number of possibilities. As with Jitter Tile xz, the
fourth output is a randomized value (from 0-π) that can be used to modify the individual cells.Use multiple instances
of this component in a cascade to create complex plants and branching structures.
Examples: SeaAnemosphere, SeaAnemonoid, JS_TriCoralTree, JS 1L Indian Palm Tree, and others with JS in the
file name.
Spherical jitter clones space radiating from the origin. The Random Spherical algorithm is shown here.
Parameters:
• A: Number. The number of branches/copies of the original space.
• B: Jitter/angle %. The angle or “seed value” for randomization.
• C: Offset. Offset along the main axis between the branches/clones.
- 212 -
REFERENCE: 3->4 Components
Algorithms:
Random Hemisphere N24
Random Sphere - N24
Regular Hemisphere
Regular Spherical
Spiraling Hemisphere
Alternate Hemisphere;
N=24
Alternate Hemisphere;
N=8
Rotation Plane; N=12
Rotation Plane Random- Rotation N Planes; N=24 Fan V; N=24
ized; N=12
Fan V Twirled; N=24
Fan H; N=24
Fan V Randomzed:
N=24
Fan H Random; N=24
Random hemisphere - create N branches randomly place on the half-sphere pointing towards the direction selected
by the parameter option.
Random spherical - create N branches randomly placed on the sphere
Regular hemisphere - place the branches in a spiraling pattern on the hemisphere
Regular spherical - place the branches in a spiral pattern on the sphere. For cases up to N=31 distribution is fairly
regular. When N is a number that matches the number of vertices or faces of one of the Platonic solids (see http://
- 213 -
REFERENCE: 3->4 Components
en.wikipedia.org/wiki/Platonic_solid) the geometry of the equivalent solid is created. For example N=4 (tetrahedron), N=6 (octahedron), N=8 (cube), N=12 (dodecahedron), N=20 (icosahedron). Intermediate cases add or subtract directions base on the closest regular distribution. For example, at N=11, a dodecahedron geometry minus the
“south” pole is created.
Spiraling hemisphere - similar to regular hemisphere but using a narrower spiral.
Alternate hemisphere - place every other branch at different angles in phase opposition,
Rotation plane, Rotation plane randomized - this algorithm is similar to the 3->3 3D Mirrors & Rotates component
except that the jitter output (the fourth output) can be used to randomize and differentiate each clone. The randomized version randomizes both the jitter angle and the length. The angle parameter changes the overall orientation
from upward to downward. A value of 0 is downward oriented, 0.5 is orthogonal to the main axis, and 1.0 is pointing upwards
Rotation Plane Rand. Angle=0
Rotation Plane Rand. Angle=0.5
Rotation Plane Rand. Angle=1.0
Rotation N planes, Rotation N planes randomized - there are from 2 to 5 levels of rotations depending on the number
of branches (which are set by parameter A). There are a maximum of 20 branches per “level” (plane).
Rotation N Planes Rand. N = 8
Rotation N Planes Rand. N = 24
Rotation N Planes Rand. N = 24
Fan V, Fan V randomized, Fan V twirled - branches are placed on a vertical plane in a fan-shaped spread. The angle
set rotation angle. The randomized version randomly modulates the angle slightly.
- 214 -
REFERENCE: 3->4 Components
Fan twirled branching structure
Fan H, Fan H randomized
Parameter Options set the main axis for the rotation:
• orientation x
• orientation y
• orientation z
• orientation x R
• orientation y R
Jitter Axial #
This component “jitters” space by creating copies that are distributed along a main axis. Several algorithms are
available for creating different sorts of patterns. This is very useful for creating tree-like branching patterns and is
often used for designing plant structures.
The pattern created is determined by both the algorithm and number of branches. Some combinations of algorithm
and N (parameter A, the number of branches) create both a main axis (the trunk) and branches while with other N
settings only branches are created.
- 215 -
REFERENCE: 3->4 Components
A recursive tree based on various Axial jitter modes
Examples. ArtMatic Voyager’s JAxial Plants & Trees folder provides many ArtMatic systems that make use of this
component.
Parameters:
A: Number : total number of branches
B : Angle
C : Offset - the offset along the main axis between branch levels
Helicoidal
Helicoidal
Helicoidal
A=7; B=0; C=1
A=7; B=0; C=8
A=7; B=0.2; C=8
Helicoidal - Branches are arranged at right angles to to the main axis in a helicoidal pattern. The rotation angle between branches is controlled by the Angle parameter.
Helicoidal 30 - Helicoidal arrangement with the branches at a 30 degree incline.
- 216 -
REFERENCE: 3->4 Components
Helicoidal sym rot 3, Helicoidal sym rot 4, Helicoidal sym rot 6, Helicoidal sym rot 10 - These algorithms distribute
the branches with an equal angle of rotation. The number after ‘sym’ indicates the number of branches per “set”. For
example, Helicoidal Sym Rot 6 will increment the rotational angle by 60 degrees (360/6) between each branch. The
Angle parameter determines the branches’ incline angle.
Multi levels, Multi variable levels - The Multi Levels family of algorithms places branches together on the main
axis in discrete levels at different vertical positions. The number of branches per level depends on the Angle parameter which controls the rotational angle between branches. The variable version varies the distances between
levels slightly.
Orientable multi levels, Orientable multi variable levels - The branches are placed in discrete levels on the main
axis. The Angle parameter controls the vertical incline level of the branches. The number of branches per level is
determined by parameter A (Number of branches). The variable version varies the distances between levels slightly.
Orientable bilateral, Orientable bilateral skewed, Orientable bilateral helicoidal Two branches per level are placed along the main axis. The Angle parameter sets the incline angle. The number of
levels is determined by parameter A (number of branches). The skewed version places the two branches perpendicular to each other and slightly skews the levels. The helicoidal version offsets the layers in a helicoidal (spiral)
pattern.
Random hemispherical, Random spherical - Branches are oriented in a roughly hemispherical or spherical distribution around the axis. Angle modulates the branch incline.
Helicoidal spherical - Similar to random spherical but the branches are rotated around the axis in a spiral (helicoidal)
pattern as they are placed higher up the tree.
Random Parallel - pairs of branches are placed along the axis with randomized radial orientation. Angle modulates
the incline.
Mixed dense - this algorithm randomly arranges branches in levels of 1, 2, or 4 branches. Angle modulates the
incline angle.
Mixed Sparse - randomly arranges the branches in levels of 1 or 1 branches.
Parameter options:
The options allow you to set the main axis direction and whether or not the branches will be randomized.
Motion Cluster #
This component is a jitter component whose purpose is to create co-ordinated clusters of cells whose motion is
automatically animated. Several motion and topology algorithms are available.
The algorithms determines the motion of the “cells” while the parameter option determines the initial cell pattern.
For example, you can choose the algorithm ‘Explosive 3D’ to create an explosion pattern of motion and the Cluster
3D Spherical parameter option to start with the objects distributed around a virtual sphere.
This component is useful for creating interesting schooling, herding and flocking motion as well as for exploding
objects and collections of particles.
- 217 -
REFERENCE: 3->4 Components
Explosive 3D algorithm with option
Cluster 3D Spherical
The cluster as it appears during the
course of the animation.
Examples: See the examples in that start with the letters MC in the Animation Techniques folder.
Parameters:
A: Number
B: Size - size of the cells. This determines the object spacing
C: Speed
Algorithms:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Static - no built in motion, uses the distribution defined by the parameter option.
Motion Z Linear
Motion Z randomized plane xz
Motion Z randomized 3D (narrow y)
Motion Z randomized 3D Motion Z undulate
Motion Y Linear Motion Y randomized
Motion Y randomized 3D
Random walk XZ
Random walk XY
Random walk 3D
Explosive 3D
Explosive 3D with gravity
Explosive 3D with inverse gravity
Parameter
•
•
•
•
•
•
•
•
•
•
•
options
:
Cluster xz plane disc
Cluster xz plane ovoid z
Cluster xz plane ovoid x
Cluster xz plane ring
Cluster of Clusters xz plane
Cluster 3D spherical
Cluster 3D cylindric
Cluster 3D ovoid z
Cluster 3D ovoid x
Cluster 3D sphere envel
Cluster of Clusters
- 218 -
REFERENCE: 3->4 Components
z
Disk Tiles
A: Amplitude B: Color Cycle C: Frequency
Z Disk tiles creates the pattern shown below. The Z input provides a color shift.
z
Paint Strokes
A: Ampl. B: Color Cycle C: Freq.
The Z-Input influences the orientation of the brush strokes and the saturation (with
maximum saturation where Z=0). The image at right was created by patching the
output of 2->1 Grid to the Z input.
Z Strokes
A: Amplitude B: Color Cycle C: Frequency
Z Strokes is another brush-stroke like texture. The Z input influences both orientation and color of
the pattern.
z
Line Network
A: Ampl. B: Color Cycle C: Freq.
Z Line Network is a pattern that resembles a layer network of colored strings. The Z input influences both
color and the relative orientation of the strings.
z
R-Patchwork
A: Amp. B: Sharpness C: Freq.
3-input implementation of 2->4 Time R-Patchwork. Z controls the
phase of the pattern within the blocks. Color is provided by the
current gradient. Zoom in to see the sample images in better detail. Middle: Z fed by Gaussian Dot. Right: Z fed by multiperlin
noise
3D Cellular
A: Ampl. B: Color Cycle C: Freq.
3D Cellular color texture. The Z Input influences the pattern. The pattern is very similar in top and side views.
- 219 -
REFERENCE: 3->4 Components
3D Multi Bubbles
A: Ampl. B: Color Cycle C: Freq.
3D Multi Bubbles creates a pattern similar to 3->2 Multibubbles. The Z input modulates the arrangement of the bubbles. The pattern is very similar in top and side views.
3D Lava Bubbles
A: Ampl. B: Roughness C: Freq.
3D Lava Bubbles creates a texture like glowing lava. The tree at left was
used to create the images at right. The top image is the view in ArtMatic
Pro. The bottom image was created in ArtMatic Voyager using the ArtMatic
system as an alternate sea. The fourth output can be used as an alpha mask
or (in ArtMatic Voyager) as an elevation map that maps the contours of the
color texture.
3D Green Marble
A: Ampl. B: Roughness C: Freq.
The Z input modulates the pattern which is very similar in side and top views. The Amplitude
controls the output range of the alpha/elevation output.
Left. Green Marble used as both elevation map and color texture in ArtMatic Voyager.
3D Color Dots
A: Ampl. B: Color Cycle C: Freq.
The Z input modulates the pattern. The pattern is very similar in top and side views.
3D Color Star Field
A: Ampl. B: Phase C: Freq.
3D Color Star Field is a texture reminiscent of a star field. The Z-input modulates the texture’s pattern. The pattern is very similar in top and side views.
- 220 -
REFERENCE: 3->4 Components
3D Ice cracks
A: Amplitude B: Roughness C: Freq.
3D Ice Cracks creates a texture resembling cracked sea ice. It is especially useful for creating ArtMatic Voyager ice
floes where the alpha output provides the elevation map and the first three inputs provide the color textures. The amplitude influences the balance between the blue and the white areas. When the amplitude is high, white dominates.
Left. Tree based on 3D Ice Cracks.
Middle. Image as seen in ArtMatic
Right. Image as seen in ArtMatic Voyager when the ArtMatic
system is used for both elevation and color texture.
z
Multifractal
A: Amplitude B: Roughness C: Freq.
Z Multifractal creates a color multifractal noise where the Z input influences the
saturation. When the Z value is low, the result is undiferrentiated gray as seen in
the side view.
Left: Top View. Right: Side View
z
Sulfur Fiberrock
A: Amplitude B: Roughness C: Freq.
Z Sulfur Fiberrock is a color texture especially useful in systems for ArtMatic
Voyager. The Z input controls saturation. The fourth output is useful as either
an alpha channel or elevation map. When Z has a low value, the output is gray.
Right: ArtMatic Voyager image where the component supplies both color and
elevation.
z
Granular Rock
A: Amplitude B: Roughness C: Freq.
Z Granular Rock is a color texture especially useful in systems for ArtMatic Voyager. The Z input controls saturation. When used by itself as both color texture and elevation map, the result is a planet surface like the one shown.
Use it in ArtMatic Voyager’s Combination mode to add surface rocks.
Left. Z Granular Rock as seen in ArtMatic Pro
Right. Z Granular Rock used as both color texture and elevation map in ArtMatic Voyager
(zoom in to see details).
z
Green Bushes
A: Amplitude B: Amount C: Freq.
Z Green Bushes is a color texture shader designed for use in ArtMatic Voyager to provide bush-like greenery. This
component is very effective when used in ArtMatic Voyager’s combination mode. The Z input influences the color
and contrast. At low values, the color, contrast and bush density. The fourth output is useful as either an alpha channel or an ArtMatic Voyager elevation map,
- 221 -
REFERENCE: 3->4 Components
Top View (Z Low)
Top View
Side View
As seen in ArtMatic Voyager
3D Leaves # (new)
This component creates a variety of leaf-shaped density fields that are especially useful for creating leaves or other
DFRM objects for ArtMatic Voyager. A typical structure tree demonstrating this component is shown below. The
input is a 3D space and the output is a 3D space warped into a leaf shape (which will be sent to a color texture function) and a density field (which will be used in Voyager to define the leaf shape).
The MR Palm Tree Voyager example
Tropical B Leaf Attached to a Cactus Branch
EXAMPLES. There are many examples of this component’s use in the Voyager’s 2.0 Examples/DFRM Life &
Plants/Components Demo folder. In particular see the example leaves Demo.vy.
A very simple section of an ArtMatic structure that uses the Leaves # component and others to
create a color-textured leaf in ArtMatic Voyager. This structure was used to create the examples
in the table below.
Algorithm is selected with the algorithm popup.
Parameters: A: Angle, B: Bending Amount, C: Shape. The shape parameter provides variations
of the generated shape.
- 222 -
REFERENCE: 3->4 Components
Palm Leaf A with Bend = 0 Palm Leaf A with Bend = 1
Bending Amount illustrated
Parameter Options: Orient xy, Orient zy, Symmetric 30 xy, Symmetric 45 xy, Symmetric 60 xy, Triple 30 xy, Triple
45 xy, Eventail xy
Algorithms Illustrated (3D Leaves)
Algorithm
Shape = 0 (Min)
0
Heart
Shape = 1 (Max)
1
Heart Saw
2
Palm Leaf A
3
Palm Leaf B
- 223 -
REFERENCE: 3->4 Components
4
Lozenge Saw
5
Tropical A
6
Tropical B
7
Tropical C
8
Alien Rings
- 224 -
REFERENCE: 3->4 Components
9
Alien Flower
- 225 -
REFERENCE: 3->4 Components
Parameter Options (3D Leaves #) illustrated:z
Orient xy
Symmetric 30 xy
Symmetric 60 xy
Triple 30 xy
Orient zy - Camera rotated off-axis slightly for
this image.
Symmetric 45 xy
Eventail (fanned) xy
Triple 45 xy
Color Grass Field # (new)
Creates an infinite field of grass for use with Voyager DFRM objects. The output is color (the lefmost 3 outputs) +
field value (object). The field value defines the shape of the blades of grass. This component is faster than using a
jitter function with a repeated single grass object. The Option popup provides several different grass types. Those
- 226 -
REFERENCE: 3->4 Components
with “random” in the name have randomized colors.
Random Yellow Grass using the follow terrain Option
Parameters: A: Modulation Scale, B: Modulation Amount, C: Contrast.
Parameter Options: see table below
The examples below were created with the ArtMatic Voyager Builtin Grass example file provided with Voyager (2.0
Examples/DFRM Life & Plans/Grass folder/Builtin Grass).
ArtMatic structure tree of the Builtin Grass example file (provided with ArtMatic
Voyager), Notice the use of A2 (Voyager Elevation) to limit the grass to low elevation
areas. The use of A2 Requires that the Follow Terrain option be turned on in Voyager’s Object dialog.
The parameter options popup provides a number of different options that determine the color
and shape of the blades of grass. The table below shows the various types of grass at a few
different levels of magnification.
- 227 -
REFERENCE: 3->4 Components
Green Grass
Random Green Grass
Random Green Gr. (close)
Yellow Grass
Random Yellow Grass
Sparse Grass
Random Sparse Grass
Strange Grass
Strange Grass (closer)
Random Strange Grass
Random Strange Gr. (closer)
Random Strange Gr. (close)
Sparse Strange Grass
Sparse Strange Grass (closer) Sparse Random Strange Gr.
- 228 -
REFERENCE: 3->4 Components
uvid
Sweep Volumes
This component incorporates profiles (like 2->1 Profile Shapes) and path sweeps (like 3->2 Revolution & Sweeps)
into a single component that is very useful for generating complex building and object structures. The unique UVID
output scheme allows you to easily map different color textures to different parts of the created objects.
Profiles and Paths. This component provides a choice of profile shapes via the algorithms popup and paths via the
parameter options popup. Profiles are cross-section shapes and the the path is what you might call the floor plan. The
cross-section is swept along the path to create an object. 9 shape profiles are provided and 16 paths which provided
144 different solids. The table below shows two of the available profiles and two of the paths and the solid that is
created by sweeping the profile along the path.
Path: Rectangles & Squares
Path: Revolution II
Profile:
Framed Rect
Profile: Arch
The solids that result from sweeping the profiles along the path.
UVID and Input/Output. This component takes 3D space as the input and the outputs are:
UV - the left two outputs are called U and V. They are remapped x,y co-ordinates that are generally fed to a color
texture. These co-ordinates are projected onto the created object similarly to how spherical projection adjusts 2D
co-ordinates so that they can be mapped onto a sphere without distortion.
I(ndex) - I is an integer index value that indicates an object part (such as wall or roof). The index value is typically
fed to something like Packed 4->4 Packed Index (w) Mixer that allows color textures to be mixed according to an
- 229 -
REFERENCE: 3->4 Components
index. For example, different color textures for the roof, walls and floor can be fed to the Packed Index Mixer and
selected via the index. For example, the wall & roof profile generates an index of 0 for walls, 1 for the floor, and 2
for the roof. The index value might also be used to modify other material properties.
D(istance Field) - D is a distance field (DFRM) object created by the component.
The component takes 3D space as its input and generates 2D co-ordinates (from the left two outlets) that will typically be fed to color textures, an integer index value, and a DFRM field for the object. The index value will typically
be passed to a component such as 4->4 Packed Index (w) Mixer whose job it is to choose a color texture according
to the index. The Mixer’s feathering parameter should be set to 0 to prevent distortions where index values change.
Profiles
The profile shape is selected via the Algorithm Popup.
•
•
•
•
•
•
•
•
•
Profile : rectangle
Profile : framed rectangle. Rectangle with framed edges.
Profile : circle
Profile : arch
Profile : arch iy-. An arch that extends down infinitely in the y dimension
Profile : wall & roof. Edged box with an orientable roof
Profile : wall & roof iy-. wall & roof that extends down infinitely in Y Profile : pointed arch
Profile : pointed arch iy-. Pointed arch that extends infinitely down in Y -
Paths
The path is selected via the Parameter Options popup)
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Path : x axis ||
Path : x axis
Path : z axis ||
Path : z axis clipped. Creates a bounded volume in z where the width parameter sets the width along the z axis.
Path : revolution ||
Path : revolution
Path : rectangle ||
Path : rectangle
Path : rectangle & squares ||
Path : rectangle & squares
Path : triangle ||
Path : triangle
Path : Edges squares
Path : Edges circles
Path : arch ||
Path : arch
Parameters:
Parameter A, Radius, sets the overall size of the object. For rectangular paths, Width (parameter B) controls the aspect ratio. For Revolution II paths, it sets the radius of the ring. The Height parameter (C) is a percentage applied to
the radius. So, changing the radius will also change the height. For a circle, keep the height at 0 to have a true circle.
Parameter D varies depending on the profile and path.
- 230 -
REFERENCE: 3->4 Components
Note that because profiles and paths are combined in this component, the parameters can change both the overall
path and the profile shape. It might adjust curves or angles or smoothness or a secondary radius as with the rectangles & squares path.
Application Notes
There are two versions of most paths. One version has II at the and the other does not. The option with ‘II’ at the
end sweeps the profile so that it is centered on the path center. Otherwise, the profile is more or less centered on the
layout created by the path and may extend unbounded in one or more directions (such as X axis).
For example, when the rectangle and squares II path is applied to the wall & roof profile, the result is a wall/roof
structure that follows the the path and has a plaza in the center.
Path: rectangle & squares II; profile: wall & roof
On the other hand, when the path is the plain rectangle & squares, the result is an enclosed area with the wall & roof
profile, as shown below.
Without the “||” option, the roof expands all the way and the walls enclose the path.
- 231 -
REFERENCE: 3->4 Components
Path: revolution || with the arch iy- profile
Path: “revolution” used with the “arch iy-” profile
Unbounded paths. A few of the paths (x axis, x axis II and z axis II) are infinite along one axis and should be combined with other primitives to give the bounds. For tips about limiting infinite shapes, see 2->1 Profile Shapes.
Many useful layouts can be created by using an infinite path (such as x axis II and preceding UVID Sweep Volumes with 3->3 N-Fold Mirrors and Offset as shown below.
- 232 -
REFERENCE: 3->4 Components
Above: the X Axis II path unbounded as seen in ArtMatic and ArtMatic Voyager.
- 233 -
REFERENCE: 3->4 Components
Above: by applying N-Fold Mirrors & Offset with N-fold 5 on the xz plane, the endless building is given a finite
shape.
Edges. Some profiles generate distinct edge borders. Edges have an index value (i output value) of 3.
Textures, Profiles and Auxiliary colors. Some profiles need more than the 3 color textures that 4->4 Packed Index
(w) Mixer can handle.
- 234 -
REFERENCE: 3->4 Components
Profile: wall & roof. Path: z Axis
Clipped. This is a good starting point for a basic house. Note that the edges have an index value of 3. If they are
not mapped to a particular texture (using 4->4 Packed Index (w) Mixer), they will appear as gray edging.
Very complex objects and architecture are possible by combining multiple UVID Sweep Volumes. We recommend
exploring the example files to learn strategies and techniques for combining them.
(Above)
Two towers built using several mixed UVID Sweep Volumes in conjunction 2->4 XYza Patterns # (bauhaus algorithm).
Examples. The towers shown above, built from multiple instances of UVID Sweep Volumes can can be found in the
ArtMatic Voyager files: 34 uvid Ring Tower.vy (the tower in the back right) and 34 uvid Bahaus Tower.vy (frontmost). There are many other uvid examples to explore, too.
Build your own. It is relatively easy to create custom uvid primitives using compiled trees (CTs) like 2->1 Profile
Shapes and 3->2 Revolution & Sweeps. The index can be generated using a 1->1 Set Constant tile and the UV outputs using 3->2 projections (parallel, cylindrical or spherical).
- 235 -
REFERENCE: 3->4 Components
S-Space Scale
This function scales space uniformly and passes out a space scaling value that can be used for DFRM systems to
properly scale space. It takes space as its input and the output is space (from the x,y, z outputs) plus S (the fourth
output) where is a scaling value. This is component is especially useful non-linear transforms that often cause convergence problems. Take a look at the 3D fractals for examples of this component in use. Typically, all the outputs
are sent to one of the 4-> S-Space components such as S-Space Transforms.
Parameters:
A - Scale
3D Multifractal Noise
A: Ampl. B: Roughness C: Freq.
3D Multifractal Noise is similar from the side and the top view (unlike Z Multifractal). The Z input
influences the noise pattern. The amplitude influences both color saturation and the alpha channel
contrast. This component is related to 2->4 Multifractal Noise.
3D Ridged Fractal
A: Ampl. B: Roughness C: Freq.
3D Ridged Fractal is especially useful for designing systems for ArtMatic
Voyager. The fourth output is useful as either alpha channel or elevation map.
Amplitude controls the fourth output’s contrast and range.
3D Fractal Silex Noise
A: Ampl. B: Roughness C: Freq
3D Fractal Silex Noise is a color texture shader whose pattern is reminiscent
of certain silicates. It is useful as an RGB + Elevation component.
3D Color Patchwork
A: Ampl. B: Roughness C: Freq
The view is similar from the side and the top. The Z input influences the noise pattern.
- 236 -
REFERENCE: 3->4 Components
3D Random Rects
A: Ampl. B: Roughness C: Freq
The color is derived from the current gradient. The view is similar from the side and the top. The Z
input influences the noise pattern.
3D Lunar Rocks
A: Ampl. B: Roughness C: Freq
3D Lunar Rocks creates a color texture reminiscent of lunar rocks. The fourth output is useful as
either an alpha channel or as an ArtMatic Voyager elevation map.
3D Facet Rocks
A: Ampl. B: Roughness C: Freq
3D Facet Rocks is useful for designing natural looking stone textures and systems for ArtMatic Voyager. The fourth output is useful as either alpha channel
or elevation map. In ArtMatic Voyager, it is often used in Combination Mode
to add rocks to a planet surface.
3D Granit(e) Rocks
A: Ampl. B: Roughness C: Freq
3D Granite Rocks is useful for designing natural looking stone textures and
systems for ArtMatic Voyager. The fourth output is useful as either alpha
channel or elevation map. In ArtMatic Voyager, it is often used in Combination Mode to add rocks to a planet surface.
3D Fractured Rocks
A: Ampl. B: Roughness C: Freq
3D Fractured Rocks is useful for designing natural looking stone textures
and systems for ArtMatic Voyager. The fourth output is useful as either alpha
channel or elevation map.
Packed Mixers and Memory Components
There are several 3->4 components designed for mixing packed streams. Some of these components take RGB (or
RGB+Alpha) packed streams for all three inputs. Some of the components take a single value stream in the third
input (the Z input). Where a packed stream is expected, it is also possible to pass in single values in which case the
input is treated as grayscale.
- 237 -
REFERENCE: 3->4 Components
Packed z Blend
A: Feather B: Offset
This component uses the z (third) input to blend the images received in inputs 1 and 2. Inputs 1 and
2 should be packed RGB or RGB+alpha streams. When inputs 1 and 2 are RGB+alpha the resulting
alpha (the fourth output) is the blending according to z (the third input) of both inputs’ alpha channels. When inputs 1 & 2 have no alpha (they are RGB or scalar) then the resulting alpha is the z
input modified by feather and offset parameter settings. If either input 1 or 2 is a value stream, it is
treated as RGB grayscale.
Packed z Morph (expanded and renamed)
A: Z Level B: Feather
Formerly Packed z Max. This mixer composites two RGBA streams (inputs 1 and 2 which should come from a 4->1
Pack til) using the third vector input stream to control the blend. Several algorithms are available.
Algorithms:
• Morph using weighted max. (The original z Max algorithm). On a pixel-by-pixel basis, compare the value of input
1 to the value of input 2 + input 3 + Parameter A. If input 1’s pixel has the same or greater value as the others, its
pixel is displayed. When Feather is 0, the pixels come from either input 1 or input 2. When Feather is not 0, inputs
1 and 2 are blended at the mask edges. When an input is an RGB+A stream, the alpha channel alone is used for the
comparison. If the input is an RGB stream, the input’s value is value of R + G + B. It is often useful to insert a 1D
filter to adjust the alpha channels. A large variety of effects can be created by fine-tuning the component parameters.
Take some time to explore the complex interaction between the alpha channel levels and the parameters.
• Morph using cubic weighted max
• Morph using quintic interpolation
• Morph using Exponentials
In this example tree, input 1 is MultiFractal noise. Input 2 is Interlaced Grid. The mask
(Z) is the 2->1 Pict/Movie component. Interlaced Grid’s pixels appear whereever its
alpha channel (the fourth output) plus + the Pict/Movie value + Parameter A is greater
than the fourth output of input 1.
Packed Random Mix
A: Amount B: Phase C: Freq.
Packed Random Mix takes three RGB or RGBA streams and randomly mixes them
using a built-in noise function.
Packed Crossfade
A: Interpolate AB B: Interpolate C
This component mixes three RGB or RGB+Alpha streams. Interpolate AB determines the relative mix of inputs 1
and 2. Interpolate C controls the relative mix of input 3.
Packed mul & add
A: A * B Level B: Add C Level
Multiply the pixels of image A (input 1) with those of image B (input 2) and add the pixels of image C (input 3). Es- 238 -
REFERENCE: 3->4 Components
sentially this creates an image where input 1 * input 2 is the background image. There is a related 3->3 component.
Packed Maths (expanded and renamed)
A: Add B Level B: Mul C Level
Formerly, Packed add & mul.
Algorithms:
• add B & multiply C. Image A (input 1) and Image B (input 2) have their pixels added together and their combined
image is filtered (multiplied) by Image C (input 3).
• add B & Subtract C
• weighted average
Packed Max
A: in1:in2 Bal. B: Level in3 C: Feather
The values of the three input images are compared and the image with the maximum value’s pixel is taken. When
the images are RGB+A, the alpha channel is used for the comparison. Otherwise, the R + G + B is used as the value.
Packed Logic (expanded and renamed)
formerly Packed Alpha Min. This component provides a number of algorithms for combining packed streams. It is
particularly useful for constructing DFRM objects. It s similar to the 2->4 Packed Logic component.
Examples: See the file 3D packed3 Edges Logic.vy provided with ArtMatic Voyager.
Input 3: Tube x axis
Input 1: Cube
Input 2: Tube z axis
Algo: Edges Intersect AB & Subtract C
Algo: Subtract C & Intersect With Algo: Subtract C & Union B with
moderate border settings to acB with minimal border settings.
centuate the edges.
Algorithms:
• Min (intersection). Compares the alpha values of all three inputs (which should all be RGB+Alpha packed streams)
and selects the input (both the color and alpha values) from the stream that has the lowest alpha value.
• Max (union)
• Union AB & Intersect with C
• Union AB & Subtract C
• Intersect AB & Union C
- 239 -
REFERENCE: 3->4 Components
• Intersect AB & Subtract C
• Subtract C & Union B
• Subtract C & Intersect with B
• Edges Intersect AB & subtract C
The subtract algorithms use the same method as 2->4 Packed Logic’s Framed Subtract with the border left around
the subtracted region controlled by parameters B and C. The edges algorithms use the depth cue color (the first
auxiliary color) for the resulting edges.
Packed Alpha Compose
A: Feather AB B: Feather C C:Bg Color
Blend the inputs treating the alpha channels as transparency. The background color defined by parameter C shows
through where the inputs are transparent.
Memory Packed z Blend
A: Feather B: Offset
Memory Packed Z Blend is a memory version of the 3->4 Packed Z Blend component. Input 1 is not iterated and serves as the background image while both inputs
2 and three are iterated. See the chapters Memory Components and Compiled Trees
and Iterations for more information about using memory components.
3D Looper (new)
This component is a fully 3D looper and is similar to the 2->3 Looper. Like all loopers, this component is recursive.
The leftmost 3 outputs of the component are fed back into the component that feeds the loop. The rightmost output
is the count value (the iteration number times Parameter B, count multiplier). All components between the looper
and the next memory component are looped.
- 240 -
4->1 Components
4->1 Components have three main uses: to mix four independent outputs, to create a texture from two space transforms, and to pack the outputs of RGB+Alpha components into a stream to be fed to a packed mixer.
4->1 components are frequently used They are also useful for creating a tex- The 4->1 Pack component
to combine the output of four different ture from two different space transforms. is used to pack RGB+Alpha
components.
output into a single stream.
Ax+By+Cz+w
A: Scale X B: Scale Y C: Scale Z
This component is used to sum (mix) 4 input values. Parameters A, B and C are applied as scaling factors to the X,
Y and Z inputs prior to summing the values.
Multiply
A: Amplitude B: Offset
Multiply the input values together. Amplitude (parameter A) scales the output, and Offset (parameter B) is added
to the result.
Pack
Pack the four inputs into a single stream. The output should be fed to a component that expects packed input (such
as the packed mixers). The use of the pack component is covered in the tutorials.
Min(x,y,z,w)
A: Amplitude
Compare the four inputs (x, y, z and w) and pass out the minimum value multiplied by Amplitude (parameter A).
Max(x,y,z,w)
A: Amplitude
Compare the four inputs (x, y, z and w) and pass out the maximum value multiplied by Amplitude (parameter A).
- 241 -
REFERENCE: 4->1 Components
Distance (U,V)
Mathematical primitive that computes the distance from vector U (inputs 1 and 2) to V(inputs 3 and 4).
Dot Product (U,V)
Mathematical primitive that computes the dot product of vectors U (inputs 1 and 2) and V (inputs 3 and 4) i.e.
(Vx*Ux)+(Vy*Uy). This can be used to find the distance to a line. If the vectors are normalized, it is related to the
angle between U&V.
Determinant
A: Amplitude B: Offset
Random Mix
A: Amount B: Phase C: Frequency
Random crossfading of the four input values. This component is especially useful for creating terrains for ArtMatic
Voyager or other complex textures.
4d Perlin Noise
A: Amplitude B: Phase C: Frequency
A 4D implementation of Perlin Noise. Connect the fourth input to Global Input time to animate the texture in 3D
automatically over time -- very useful for creating 3D elements for ArtMatic Voyager.
This component has many uses. Interesting textures can be created by feeding this component the output of two
different space transforms.
Bezier Curve
A: Amplitude B: Tangency
3D w Fractal Noises (new)
This is a version of 3D Fractal noise that uses the fourth input (w) to control the fractal dimension (the roughness) of
the noise. Values above 0 increase the fractal dimension (with relation to the baseline dimension) and values below
0 decrease it. This component is great for clouds or terrains when you need higher fractal dimensions. Use a constant w value to increase or decrease the fractal dimension or a varying w to create interesting patterns and terrains.
Fractal Noise controlled Image with w set to a
by a constant
high value
w = approximately 0.5
- 242 -
w very low
REFERENCE: 4->1 Components
w set to a higher value
w set to a low value
Volumetric clouds created with the structure shown
above
Algorithms: Straight fractal noise, Multi Fractal Positive, Multi Fractal Balanced, Ridged fractal noise.
Parameters: A: Amplitude, B: Phase, C: Frequency
Parameter options: Use Direct Frequency, Use Voyager km
Examples: See the ArtMatic Voyager examples in 2.0 examples/Terrains and also 2.0 examples/Clouds & Volumetrics/Volumetric AM w fractal clouds.vy
DEM Mandelbrot
This component implements the Distance Estimation method of calculating Mandelbrot and Julia sets. The distance
estimation method provides improved resolution compared to the standard method of calculating them. Information
can be found on the internet about the advantages of this method. Typically, one pair of inputs is fed by a 1>2 Set
Constant component. For Mandelbrot sets feed the first input pair, vector U, (inputs 1 and 2) with 0. For Julia sets,
use constants for inputs 3 and 4 (vector V).
- 243 -
4->2 Components: 4D Vector Functions
These components serve a broad number of uses. An essential in-depth discussion of function categories is found
in the Getting Deeper chapter and is recommended reading for everyone. In the descriptions below, x and y refer to
the two left inputs and x2 and y2 refer to the rightmost inputs.
Complex number primitives. Many of these components are mathematical primitives for performing complex number arithmetic. The complex number inputs are called Z and C; Z refers to the two leftmost inputs, x and y, where x
is the real part and y is the imaginary part of Z. Likewise, C is made up of the two rightmost inputs. 
Complex Add Z + C
A: Scale
Add mixes two 2D spaces by adding the respective x and y coordinates. Changes to the incoming space can sometimes have compound effects. For example, if two rotation components feed Add, changing the rotation parameter
of either input will also cause changes to the scale of the picture. (Renamed from Add Z + C in version 4.0).
Tip: Check out the result of using this component with rotation and complex map as inputs.
Left output: A(x+x2)
Right output: A(y + y2)
Complex Add N*Z+C
A: N Real Part B: N Imaginary Part
This is a useful complex number primitive that is handy for creating a new space with
aspects of the spaces that feed the component. Advanced users will find this primitive
useful for implementing their own formulas.
Formula. Parameters A (Real Part) and B (Imaginary Party) define the real and imaginary parts of complex number
N. The component sends out the real part (from the left output) and imaginary part (from the right output) of the
complex number created by the computation N*Z + C where the left two inputs are considered the real and imaginary parts of Z and the right inputs are considered the real and imaginary parts of C.
Complex multiply Z*C
This component performs complex number multiplication by treating the inputs as two sets of complex numbers.
The effect is quite dramatic and is highly dependent on the input functions. This component provides symmetry and
creates interesting spatial deformation. The x and y inputs are treated as the real and imaginary parts of a complex
number and the x2 and y2 inputs as parts of another such that:
Z = x + iy
C = x2 + iy2
This returns the complex multiplication of Z and C. The real part of the product is sent out the left outlet and the
imaginary part is sent out the right.
Left output: (x * x2) - (y*y2)
Right output: (x * y2) + (y * x2)
- 244 -
COMPONENT REFERENCE: 4->2 Components
Complex divide Z/C
Perform complex number division by treating the inputs as a pair of complex numbers. As with all division if the
inputs are identical, the output is a single color (i.e. a plane), but, if you offset the values, you get interesting deformations.
Left output: real part of Z/C
Right output: imaginary part of Z/C
Complex Power Z^N+C
A: n power exponent
A complex number primitive that implements Z^N+C where n is the value of parameter A. Like the other complex
number primitives, this component is handy for creating a new space with aspects of the spaces that feed it. Advanced users will find this primitive useful for implementing their own formulas.
Complex Z^2 + C
A: Recursion B: Outer Slope
The Mandelbrot/Julia Set equation implemented as a space mixing/distortion component. This component will
usually be used near the top of the tree and takes two spaces as input, treating them as complex numbers Z and C
where the first input of each pair is the real part of the number and the second input of each part the imaginary part.
The output of the component is a space (a quite complex one).
Example files: Yellow Pulsing juliaSet. The colorful and decorative Fractalcandy shows a modified Mandelbrot/Julia
Set shaded by a compiled tree that provides complex RGB shading.
Equation = Z2 + C 
Complex Z^3 + C
A: Recursion B: Outer Slope
Another Mandelbrot Set relative. This is the cubed version of the Mandelbrot equation. Because this component
is computationally intensive, you may want to lower the value of the Max Iterations for Fractals preference while
exploring (and increase the value, if necessary, for final rendering).
Example file: Venitian Fractale SinDC. This example makes use of both the squared and cubed Mandelbrot relatives.
The file also demonstrates how compiled trees can be used to implement complex shaders.
Equation = Z3 + C
Complex C(Z + 1/z)
A: Recursion
Complex number primitive and space distortion function. Explore it to discover fascinating fractal textures. This
can also be used as a building block in compiled trees for creating new fractals. Equation = C * (Z + 1/Z)
Complex exp C e^Z
A: Recursion
Complex number exponential function. This component is quite CPU-intensive and is a valuable building block for
creating new fractals. Equation = exp(Ce z )
- 245 -
COMPONENT REFERENCE: 4->2 Components
Complex C sin Z
A: Recursion B: Outer Slope
Another building block for creating new fractals. Example files: Complex C sin z and Chinese Fractal Sin z Plate
Equation = Csin(Z )
Distance Divide
A: Amount B: Phase
This component divides the first space by the distance of the second pair of inputs from the origin. It can have perspective-like effects. Because division is used, the results change if the order of the inputs changes. Phase adds an
offset to the distance value. Amount is an interpolation between the distance and 1. When the amount is zero, the
distance is ignored.
Distance divide can create interesting enclosed spaces from infinite spaces. When two infinite space transforms are
passed in, the result tends to be a complex warped space enclosed in a disk or figure eight-like shape. The results
can be quite complex from even the simplest trees. When using this component, be sure to carefully explore the
results when the Amount parameter is close to zero. When enclosed spaces are passed in, the result is sometimes
an infinite unfolding of the enclosed space. The order of the space transforms matters (i.e. A/B is not the same as
B/A). It can be interesting to explore what happens when the same 2-output tile feeds both the left two and right two
inputs. The examples below use Interlaced Grid after Distance Divide, as it helps visualize the space transform. You
may want to use similar trees to become familiar with this transform. (If reading this manual on a computer screen,
be sure to zoom in to see details that might be missed onscreen.)
Exp field
A: Amplitude B: Warp
This component creates a composite space that has aspects of both input spaces. A field equation is applied to both
pairs of inputs and the results are added together. The field equation is similar to a gaussian curve and hence the
maximum output is found where the input value is 0 and approaches zero as the input reaches infinity.
ComplexMap 4D
A: Real B: Imaginary
Like the 2D Complex map, this component is a complex number polynomial. This version is recursive and is sensi- 246 -
COMPONENT REFERENCE: 4->2 Components
tive to the preference for Max iterations for fractals. This component creates particularly rich output.
City Light & Reflection
A: Pattern # B: Amount C: Frequency
Like the related 3->2 component, this component provides lighting and reflection information for buildings’ windows. 4->4 City Textures is the companion component that provides the color texture for the buildings (usually
provided by 2->4 City Maps). The pattern (map) name should be the same for both the City Textures and City Light
& Reflection, and the frequencies should be the same as well.
Extra output 2 mapped to reflections in Voyager
The image as it appears with no Voyager reflection mapping
Inputs. When discussing the inputs to this component, the inputs are referred to as (from left to right): x, z, i, and
y. The left two inputs (x and z) are the ground co-ordinates (latitude & longitude), ‘i’ is the texture index which is
normally received from 2->4 City Maps, and y is elevation.
Texture index. Texture index is usually provided by 2->4 City Maps but you can pass in a constant to select a particular building texture or manipulate the index to select different textures for the same buildings.
Outputs. The left and right output values (also called X and Y) are the illumination level and reflection level. Normally, these will be mapped to Ambient Light and Reflection in ArtMatic Voyager (using Voyager’s extra output
mapping options).
Parameter A selects the city/building map to use. The names correspond to the maps created by the 4->4 City Textures component with which this component is meant to be used. For perfect sync, use same frequency and texture
index (i) that is passed to 4->4 City Textures. The maps are: City Texture A, City Texture B, City Texture B, City
Texture C, City Texture C, City Classic
Escher disks
A: Offset x B: Offset y C: Radius
A complex space distortion function which tiles space with disks using the Mandelbrot set equation. The C input
(the second input pair) act as the C constant in the Mandelbrot equation.
Mondrian Displace
A displacement map for creating Mondrian-like effects. The displacement uses a random arrangement of discrete
patterns. The two rightmost inputs control the pattern’s space.
2D Vector Maths # (expanded and renamed)
A:Amplitude
Renamed from Real Multiply. This component provides several vector math primitives. The inputs are treated as
two sets of vectors: U (x,y: inputs 1 & 2) and V (bx, by:inputs 3 and 4) to which the selected operations are applied.
This component can create interesting composite spaces.
The output algorithm is indicated by the name.
- 247 -
COMPONENT REFERENCE: 4->2 Components
The
•
•
•
•
algorithms
:
Add: A(x+bx, y+by).
Subtract A(x-bx, y-by)
Multiply A(x*bx, y*by)
Divide A(x/bx,y/by)
Add Normalized
A: Scale
Another useful mathematical primitive that is often used for implementing systems based on differential equations.
The component’s formula is Z + (C/N) where N is the magnitude of C(square root of x22 + y22).
Example file: “Differential System”.
Interpolate
A: Interpolate
The left output is an interpolation of x and x2, and the right output is an interpolation of y and y2. This component
offers a way to animate the transitions from one transform to another. The Interpolate parameter set to its minimum
value generates the left-hand space and at the maximum value generates the right-hand space. Other values blend
the two spaces. You can also use it to interpolate between two sets of values in parallel.
Radial Interpolate
A: Amplitude
This component generates an interpolation from space A to space B where the distance from the origin determines
the weighting towards space A or space B.
Compatibility Note. ArtMatic Pro 2.5 uses undistorted space for the interpolation (unlike earlier versions).
Facet Mix
A: Amplitude B: Phase C: Frequency
This component generates a composite space by randomly choosing facets/bubbles from one space or the other so
that the resulting space has a mix of bubbles from both spaces. In this way, chunks of space B become mixed with
space A. Amplitude is a zoom factor applied to the inputs before feeding them into the bubble algorithm. Phase is an
offset factor. Frequency determines the “bubble” size.
Renamed in ArtMatic Pro 2.5. This component was previously called Bubbles Mix.
Moebius(Z) + C
A: Angle B: Scale C: Imaginary
This component applies a Moebius transform to the space provided in the first two inputs and adds the space provided by the right inputs. This component can create very
interesting warped spaces and fractal-like patterns from even simple inputs.
Min <> Max
A: Amplitude B: Min to Max
This is a true minmax function that blends between the maximum or the minimum of the two spaces’ coordinates.
- 248 -
COMPONENT REFERENCE: 4->2 Components
Blended max
A: Balance
This component generates a weighted maximum. The actual math is a bit complicated as the implementation guarantees continuous (smooth) output. The resulting space will have some aspects of both input spaces. The balance
parameter controls whether the function gives the precise maximum or a weighted value that favors either the left
or the right input pair.
Essentially, the component acts so that the left output=Max(x,x2) and the right output=Max(y,y2) though not strictly.
With the balance set to 1, the input always wins. The effect of changes to the balance parameter can be quite surprising.
This component creates interesting juxtapositions of space.
Abs & minimum
A: Amplitude B: Rotate B
This component provides an interesting way to combine spaces. The output is the absolute value of the minimum
of x and x2 and y and y2. Amplitude is a multiplier applied to the output. Rotate B rotates the second space before
calculating the minimum.
Y Compare
This is a procedural component that chooses the input pair Z or C whichever’s y component has the highest value.
This creates a composite space that is an interesting mix of the two inputs. The offset parameter is added to the two
output values.
Example file: “Y compare Space”.
A: Offset
Split Space
A: Offset
Create a composite space whose left half comes from the left inputs and whose right half comes from the right inputs. The split is made using Space A’s coordinates. So, the split might not be a straight line. The offset moves the
split point left or right. Advanced users will find this useful when building fractals in iterated systems.
Example file: Double Rotation fractal beast makes use of this function within the compiled tree.
Distance compare
Create a composite space by picking the point from Space A or Space B that is closest to its own origin. This is
another primitive that can create fascinating composite spatial systems.
Example file: DC Double Affinity feedback uses this component to create a fractal. Space Compare uses this component to mix a Radial Star space with a simple space.
- 249 -
COMPONENT REFERENCE: 4->2 Components
Split Disk
A: Radius B: Offset X C: Offset Y
This component creates a new space where space transform B (the right two inputs) is
applied everywhere except the disk-shaped region in the center where space transform
A is applied. Radius determines the radius of the disk in which transform A (the right
two inputs) is applied.
Alternate Split
x from Z, y from C
Create a new space by taking the x co-ordinate from the Z input and the y coordinate from the C input. This is one
of those components where the results are a bit unpredictable but often rewarding.
Example file: “XfromZ Space”
Split 4
A: Offset X B: Offset Y
Combine four circular areas drawn from space B (the two rightmost inputs) with space A (the left two inputs). This
component is mostly intended for recursive systems where it can create complex fractal patterns. Parameters A & B
affect the relative weight of the spaces.
See example file Split 4 feedback A.
- 250 -
4->3 Components
Many of these components are mixers that were designed to mix RGB-based images with gradient-based images -such components treat the leftmost three inputs as an RGB image and the rightmost input as a gradient-based image
(shaded with the active gradient). Some 4->3 components are essentially 3->3 components with the fourth input
acting as a controller for the component -- these are especially useful in iterative systems since the output of the i
component can be used to offset, scale or rotate the iterations. 4->3 components also include the Looper family of
iterative components. An essential in-depth discussion of function categories is found in the Getting Deeper chapter
and is recommended reading for everyone.
Input notation convention: By convention, the inputs are sometimes referred to as x,y,z and w where x is the leftmost
input and w the rightmost. x,y and z do not refer to spatial coordinates except where explicitly stated.
RGB/Gradient Mixing Components
This group of components was primarily designed for mixing the output of RGB and gradient-based components
and branches. The leftmost inputs should be an RGB ‘stream’. The rightmost input may be either scalar or packed
input. If the 4th input is a scalar value, these components map the value to the current gradient to create the color.
The output is RGB. Choose RGB and ArtMatic shading from the Structures popup menu to create a structure set up
to mix RGB and ArtMatic gradient-based shading. The active gradient is applied to the right input before the images
are mixed and shading/depth cueing are applied to the combined image.
RGB mix
A: Level in1 B: Level in2
Mix an RGB branch of the tree with a gradient-based branch by adding the values of the corresponding pixels of the
two input images. Parameters A and B control the relative level of the left and right images.
RGB multiply
A: Amount B: Offset
Mix an RGB branch of the tree with a gradient-based branch by multiplying the values of the corresponding pixels
of the two input images. In essence, the RGB image is filtered by the ArtMatic image. The result is 0 (black) where
either image is black (i.e. multiplying by 0 yields 0). Parameter A controls the strength of the filtering and B is a
luminance (brightness) offset that is useful since multiplication can sometimes yield dark images.
RGB alpha
A: Threshold B: Feather
Mix the two input images and treat the second image as an Alpha mask. Only the pixels whose value is above the
threshold are displayed. The feather parameter determines the number of pixels beyond the mask’s boundaries which
are displayed. When the threshold is at the maximum only image one is visible. When the threshold is at the minimum value, only image two is visible. Example file: Simple alpha dissolve
This component is great for creating dramatic dissolve effects for movies and video.
Tip: If the second image has cloud or star textures, you can effectively superimpose them on the first image.
- 251 -
COMPONENT REFERENCE: 4->3 Components
RGB Interpolate
A: Interpolate
Interpolate between the two images. When the slider is at the extreme left or right only the corresponding image will
be seen except where the image has infinity. Infinity is transparent. This is essentially the same as the 2->3 Packed
RGB Crossfade.
3-in + control
Each of the components in this group is equivalent to a simple 3->3 component but provides a fourth input that acts
as a control. For example, w Offset is equivalent to 3D Offset with the fourth input (w) controlling the offset amount.
These components are often used in iterative systems with the w-input being fed by the iteration component. 
w Offset
A: Offset x B: Offset y C: Offset z
Add an offset to the x,y and z inputs. The w-input acts as an offset multiplier/displacement vector.
Formulas:
left output = x + (A * w)
middle output = y + (B * w)
right output = z + (C * w)
Tip: Use w Offset whenever you need displacement to be controlled by another component or by an iteration value.
w
Scale (updated 5.0)
A: Amount B: Floor C: Roof
Scale the x, y, and z inputs with w acting as a scale multiplier. When A=0 no scaling occurs. Roof allows you to pin
the multiplier value (the w input) to this maximum. Roof must be higher than the Floor parameter.
Formulas:
left output = x*( 1 - (A * w))
middle output = y*(1 - (A * w)) right output = z*(1 - (A * w))
w Rotate
A: Angle xy B: Angle xz C: Angle yz
Rotate the x,y,z inputs (treating them as spatial coordinates) with w acting as the rotation control. The parameters
determine the angle of rotation which is multiplied by w.
Tip: Use w Rotate whenever you need the rotation to be controlled by another component or by an iteration value.
w
Multiply (new)
This component simply multiplies the x, y, and z inputs by w (the fourth input) and sends out the result of the multiplications. This is similar to 4->3 w Scale but the output values are not clipped.
w
Divide (new)
Divide the x,y and z inputs by w and pass out the results.
W Scale and Offset Y
This component uses the W input to control scaling and/or a Y-offset. When used above a DFRM object, this allows
the vertical positioning and object size to be modulated with an external controller. This can be useful for animating
- 252 -
COMPONENT REFERENCE: 4->3 Components
motions.
W Space Distorts
W Space Distorts provides similar 3D space distortion to 3->3 3D Distorts and Bends with the addition of a fourth
input (W) which controls the amount of distortion. Use of the W input, is useful for animating motion. See 3->3 3D
Distorts and Bends to see illustrations of the sorts of distortion that this component can create. See the examples in
the Space Distort objects examples folder.
3D Tree Structures # (New)
This component creates a tree-like branching of space using a variety of techniques (symmetries, rotations, translations and repetitions) that are especially useful for creating trees and plants for ArtMatic Voyager. When used inside
a recursive CT (compiled tree), this component may be sensitive to the iteration level (depending on which tree
algorithm is selected) which results in a more varied structure than if each level were simply a scaled down version
of the parent.
[Left] ArtMatic Voyager tree [Right] 3D Tree Structure used inside a recursive compiled tree
To create an tree-like object, the component is used in conjunction with a component such as 3->1 Density Shapes
since by itself, it is just a space distortion function. Most users will want to use one of our many examples as a
starting point for their creations since using the component from scratch requires a solid understanding of ArtMatic
structures and recursion. However, it is fairly simple to make modifications to the many example files that are provided with ArtMatic Voyager.
Of course, you are not restricted to creating trees for ArtMatic Voyager.
- 253 -
COMPONENT REFERENCE: 4->3 Components
Use this component to create non-tree-like objects, too. A sphere transformed with a single recursion of 3D Tree
Structures
Inputs and outputs. The four inputs are a 3D Space (the left 3 inputs) and w which acts as a random seed for the
random numbers used internally to determine the branch spacing. When the 4th output of Jitter Tile xz# is connected to w, it will randomize the aspect of repeated trees. Or, you can connect w to global input A3 if Voyager Jitter
Opaque mode is in use. To control the range of w-related modifications, you can use the 1->1 Math component set
to the Fract algorithm to limit the range from 0 to 1 and add a scale and offset so that you can control the minimum,
maximum and amplitude of the variations.
The best way to get started using this component is to start from one of the examples in Voyager’s 2.0 Examples/
DFRM Life & Plants/Plants iterative folder.
Parameters:
• A: N Rotate. For most algorithms, this is the number of symmetries of rotation. Some algorithms, such as Alternate 180, only use this value for iteration #3 (in a recursive CT).
• B: Angle A . The main branch angle. Low values result in branches pointing upward. 90 degrees will be perpendicular and high values create branches angled down.
• C: Angle B / Slope %. The slope or a second angle. The meaning depends on the particular tree algorithm. The
slope controls how much the length of the branches diminish going up. At 0, the branches are parallel. For some
algorithms (such as cactus) it controls the bending. For some (palm trees) is is the sub-branching angle.
Algorithms Illustrated (3D Tree Structures)
- 254 -
COMPONENT REFERENCE: 4->3 Components
The tree algorithms are also referred to as “tree rules” since strictly speaking some of the algorithms are rule sets
sensitive to the number of iterations.
0 - Palm Tree. All branches start from the same center. nice for palm-like structures
1 - SR Tree B1. When iterated (recursed), the first iteration level can have N branches while the additional iteration
levels just have N branches created with rotational symmetry off of the parent branch.
tree rule 1 (3 iterations)
2 - SR Tree BN bend up . All levels can have N branches with some randomization
- 255 -
COMPONENT REFERENCE: 4->3 Components
3 - SR Tree BN bend down . All levels can have N branches with some randomization
4 - Random SR Tree BN . All levels can have N branches with some randomization
tree rule 4 (3 iterations)
5 - Random SR Tree B1. Similar to rule 1 but branch direction and length are randomized.
6 - Cactus. Branches grow alternately left and right. When iterated it produces a structure like the one below:
7 - Alternate 180. Branches grow alternately left and right.
- 256 -
COMPONENT REFERENCE: 4->3 Components
8 - Alternate Ferns.
9 - Rotating Branches. Branches grow in alternating fashion with a global rotation controlled by parameter C.
tree rule 9 (3 iterations)
10 - Rotating Branchs & SR. Similar to 9 for the first levels but then grows clusters of rotating branches whose number is related to parameter A. Here an example of tree rule 10 with leaves attached with SR 8:
- 257 -
COMPONENT REFERENCE: 4->3 Components
L e s s o n : U s i n g 3 D T r e e S t r uc t u r e s
Analysis of a basic structure for creating a tree
The generation of a trees/plants is a complex problem. 3D Tree Structures can create a wide variety of plant structures. A typical structure tree for a tree/plant is shown below:
• There is a section (a single 3->1 Density Shapes tile in this structure) responsible for creating the trunk.
• The trunk shape is passed (along with 3D space) to a recursive compiled tree that creates the branches (it includes the 3D Tree
Structures component,
• The trunk+branches are fed to compiled tree that adds the leaves.
•
A typical ArtMatic structure tree for trees and vegetation
- 258 -
COMPONENT REFERENCE: 4->3 Components
The compiled tree that handles the branches is generally a recursive compiled tree. The number of levels of recursion determine the number of layers of branches. Some tree algorithms vary the branching pattern according to the
recursion level. More details are found below.
A SIMPLE STRUCTURE: TRUNK + BRANCHES
Below is a very simple structure that provides a trunk and branches and colors them with a simple color texture.
The outer level structure [ArtMatic system: Angles 43 tree iter from the Voyager example Tree rule 1.vy]. The
structure creates a trunk with branches and uses a simple color texture.
The same structure and recursion level (3) but a different tree rule (number 4 instead of number 1) creates a very
- 259 -
COMPONENT REFERENCE: 4->3 Components
different tree.
Main Structure. The main (outer-level) structure tree provides the tree trunk (A) and color texture (C). The recursive
compiled tree (B) provides all the branches and sub-branches. The 3D Rotate component at the top is useful for
adjusting the orientation.
Helpful hint: 3D Rotate is very helpful when designing any 3D object as it enables you to rotate the object in space
while working on the object even if you don’t plan on having the object rotated in your final scene.
The 3D space (from 3D Rotate) and the tree trunk (from 3->1 Density Shapes) are passed into the CT that adds the
branches (described below). The tree trunk (A) output is also sent to the 1->4 Hue Color tile (C) which provides the
tree’s color texture. Hue Color’s RGB output is sent to Alpha Scale and Offset which provides final adjustments of
the completed tree.
The Branches CT (Compiled Tree)
In the structure shown above the compiled tree (CT) labeled B provides the branches. A CT is a group of components that appear as a single tile in the outer-level ArtMatic structure. Below is the internal structure of the compiled
tree that creates the branches. This structure (with different parameter settings) is used for almost all of the plants
and trees that we create. Adjustments of a few parameters can create a virtually endless variety of plants and trees.
The structure inside the compiled tree that provides the tree branches. The green lines indicate the input received
- 260 -
COMPONENT REFERENCE: 4->3 Components
from the parent tree: 3D Space and the tree trunk (a density field)
CT Inputs. The compiled tree receives four input values from the parent structure (which are indicated in green in
the diagram): three space co-ordinates and the tree trunk density field .
Quick analysis. The incoming space is scaled (by the W* component) and sent to the 3D Tree Structures component
whose output is sent to 3D Density Shapes (algorithm = Cactus Branch) and blended with the tree trunk (the density
field received from the input). The output is the modified space (modified by 3D Tree Structures component) and
the modified density field (which is the tree object).
Details. The Set Constant tile (label: A) is used as a scaling factor by being multiplied against the incoming space
using the W Multiply tile. Its output is also used as the y-input for the Math Tools component in the group of components labeled D where it has a further impact on the scaling.
The scale space is sent from W Multiply to the 3D Tree Structures component (label C) -- which is set to Algorithm
1, N Rotate =1, Angle A = 5, Angle B/Slope = 40.844. The 3D Tree Structures component’s w input (which acts as
a random seed) comes from the Set Constant component labelled B in the diagram.
The 3D Tree Structure’s output is a space warped into a tree-like shape. This space is sent to 3->1 3D Density
Shapes which is set to the Cactus Branch algorithm. This provides the actual branch objects (the density field). The
3D Tree Structure output is also passed to the first three outputs of the final component (whose job is just to pass
out the values it receives).
The 3D Density Shape (which is at the top of the group labelled D in the diagram) is sent to 2->1 Math Tools->Iteration Scale. The resulting branches are thus automatically scaled by the number of iterations. Each successive
iteration creates smaller branches. The adjusted branches are then added to the density field (the actual tree object)
that was passed in to the compiled tree.
The resulting output is a density field (3D object) which is passed to the fourth input of the last component. The last
component sends 4 output values out of the tree. The three co-ordinates of the branch-warped space and the updated
branching object (density field).
Recursion. The recursion parameter of the compiled tree determines the number of branching layers. Setting it to
a value larger than 0 causes the CT to be looped so that its operations are performed several times. This particular
type of compiled tree is recursive which means that the compiled tree’s output is fed back to the input each time that
it is iterated (looped). Each iteration of the tree creates a new level of branching as illustrated below. Some of this
component’s algorithms (the so-called tree rules) are sensitive to the recursion level and create different branching
patterns at different levels of recursion so that different levels of branches are not simply scaled down versions of
the previous level.
Recursion = 0
Recursion = 1
Recursion = 3
With this tree rule (algorithm 1), each level of recursion adds another set of branches at the end of the existing
- 261 -
COMPONENT REFERENCE: 4->3 Components
branches. Some tree rules add branches elsewhere as shown below.
Tree Rule 4 with Recursion = 3
ADDING LEAVES
To add leaves to a tree, we need to add components to:
• add leaves to the trunk and branches
• blend the leaves with the tree branches
Below is a “trunk+branches” type structure to which components have been added to provide leaves [Left] Structure that creates just trunk and branches
[Middle] The structure modified with components to
add leaves
[Right] The compiled tree that handles the leaves
The tree with the added leaves
- 262 -
COMPONENT REFERENCE: 4->3 Components
Analysis
• a compiled tree (A) was added that takes a 3D “tree” space as input and sends out an 3D color texture and a density field that corresponds to the leaves. Its output is packed with 4->1 Pack so that it can be sent to a mixer
• a 2->4 Packed Alpha Max component (C) was added to mix the tree and branches with the leaves
• a4->1 Pack component (B) was added to pack the trunk+branches
A tree created with the structure tree above as it appears in ArtMatic Voyager.
Recursion and 3D Tree Structures. When used inside a recursive CT, one must set the scaling ratio for each level carefully to avoid having branches grow outside the plant’s boundaries. Our example systems are already set up with the
necessary scaling components and should generally be your starting point. In general, scaling values of 2 to 5 work
best. Because the structures are recursive, they are quite sensitive to parameter values and can be computationally
intensive.
w
Color Fade
A: Feather B: Amount
This component uses the fourth input (w) to blend the first auxiliary color with the RGB channels
received in the first three inputs. Feather is the amount of feathering/blending done at the edges of
the alpha channel. Amount is a multiplier applied to the w input. When Amount is positive, the auxiliary color appears where the w input value is 0. When the value is negative, the auxilliary color
appears where the alpha channel is greater than 0. This component is functionally identical to the
4->4 version except that it does not pass out an alpha channel.
The rightmost input may be either scalar or packed input. If the 4th input is a scalar value, this component maps the
value to the current gradient to create the color.
- 263 -
COMPONENT REFERENCE: 4->3 Components
w
Color Shift
A: Hue B: Lightness% C: Saturation
This component uses the fourth input (w) to shift the HLS values of the RGB image passed into the
three left inputs. The parameters determine how much the HLS values are shifted by the fourth input
(w). The w input is used to shift the Hue and Saturation values by an offset whereas it is used to scale
the Lightness (luminance) by a percentage.
The rightmost input may be either scalar or packed input. If the 4th input is a scalar value, this component maps the value to the current gradient to create the color.
Loopers
Images created with “looped” (iterated) trees
Loopers allow a part of the structure tree to be looped several
times. Each time through the loop being collected by a memory
component. Looping (also known as iteration) is a very powerful
technique that can create very complex images from an apparently
simple tree. Loopers are covered in-depth in the chapter Compiled
Trees & Iteration which provides a helpful tutorial.
Loopers are recursive. Each time through the loop, they feed the
left two outputs of the Looper component back into the input of the components that directly feed the looper. (Be
sure to perform the tutorial in the Compiled Trees & Iteration chapter if the previous sentence seems unclear). 4->3
loopers are designed to be fed by two space transforms. In the descriptions below, F refers to the space transform
that feeds the left two inputs of the Looper and G refers to the space transform that feeds the right two inputs.
For all 4->3 Loopers, the inputs are two space transforms and the output is a space (from the x and y outputs) and a count value (from the z output). The count value is the iteration number times the parameter
B (Count Multiplier).
Staggeringly complex images can be created from very simple elements with the Cross Looper.
Looper F(G)
A: Iterations B: Count multiplier
Looper F(G) feeds the output of space transform G (the right two inputs) into space transform F and passes the
resulting space [F(G)] out of the left two outputs of the looper and also back into space transform G for the next
iteration.
Looper G(F)
A: Iterations B: Count multiplier
Looper G(F) is like Looper F(G) but feeds the output of F into G (rather than G into F).
Cross Looper
A: Iterations B: Count multiplier
This looper is quite complex it iteratively crossfeeds transforms F and G and the results of the previous iteration. In
iteration 0 (the first iteration), both F(G) and G(F) are performed. In iteration 1 (the second time through the loop),
there are four transforms F(G), G(F), F(G(F1)), G(F(G1). Cross iterations are extremely unpredictable and can
yield richly complex results. When using Cross Looper, the number of iterations grows exponentially–so watch the
number of iterations. With a computationally-intensive tree, even the fastest processor can be brought to its knees.
- 264 -
COMPONENT REFERENCE: 4->3 Components
Memory Components
Below are brief summaries of the memory components. Memory components are covered in detail in the chapter
Memory Components. Memory components are used in looped/iterated/recursive trees to combine the results of
each pass through the loop. These components are only meaningful in such trees. We recommend performing the
Compiled Trees and Iteration tutorial in order to best understand how these components work.
Memory Add
This component adds the value of each iteration to the value accumulated in the previous iteration with the fourth
input scaling the incoming values.
Memory Max
This component stores the maximum of the current iteration and the stored values with the fourth input scaling the
incoming values.
Memory w Alpha
Memory Alpha mixes the current RGB values with the stored RGB values by interpreting the fourth input (w) as
the transparency of the current values. A high w value makes the current value (pixel) opaque. A w value less than
0 makes the current value (pixel) completely transparent (and, hence, invisible). See the file MemAlpha Clouds for
an example of this powerful component. We recommend rendering the animation to get a sense of the incredible
effects you can achieve with this component. One can simulate volumetric-3D rendering with this component. The
parameters are the starting RGB color values. This component is great for simulating 3D volumetric rendering.
Example file: Don’t miss the MemAlpha clouds example. Render the movie. It is amazing!
Memory w Min
Memory w Min compares the current w value with the stored w value and stores whichever set of values (R,G, B, and
w) has the lowest value for w. This component is very much like Memory Depth Sort but uses w (which is stored
but not passed out of the function) rather than the third input for the comparison.
Example file: See Mwmin perlin noise for one example of this component.
Memory w Max
Memory w Max compares the current w value with the stored w value and stores whichever set of values (R,G, B,
and w) has the largest value for w. Note that only the w value is used for the comparison unlike the simple Memory
Max component which uses all of the input values for the comparison.
Packed Mixing Components
This group of components combines ‘packed’ mixing functions with other common operations. They allow more
compact trees which render more efficiently than trees which use multiple components to provide the same functionality. Most of these provide the same functionality as 3 or more primitive components. Each of the three first
inputs can be either packed or unpacked. The fourth input must be a simple unpacked stream.
Notation: a, b, and c refer to the first, second and third inputs. These are used instead of x, y, z because the inputs are
- 265 -
COMPONENT REFERENCE: 4->3 Components
packed streams rather than simple values.
Packed blend * w & blend
A: Interpolate B B: Interpolate C C: Multiply w
This component is a procedural shader in which input A (the first input) is mixed with input B (the second input).
The result is multiplied by the w (fourth) input and mixed with the C (third) input.
Formula (pseudo-code): blend( blend(A,B) * w , C)
Example file: Undescribable C
Packed Add & Blend *w
A: Add B B: Interpolate C C: Multiply w
This component is equivalent to a packed mix (using addition) of inputs a and b with the result being crossfaded
with the c input. The resulting output is then scaled with w acting as a scaling factor. Parameter A controls how
much of stream b is added to the base image. Parameter B controls the crossfading with stream c. Parameter C determines the influence of input w.
Tip: w will usually be connected to a component that provides global illumination.
Formula: ((a + A*b) crossfaded with c ) * w
Packed Add & Mul +w
A: Add B B: Mul C C: Add w
Add inputs a and b. Multiply the result with input c and add w to the result
Parameter A controls how much b is added to a. Parameter B controls how much c will multiply the result. Parameter C controls how much w is added at the end.
w can be used to provide the shading and can create specular highlights.
Formula: ((a + A*b) * c ) + w
Packed Mul & Add *w
A: Mul b B: Add c C: Mul w
Multiply inputs a and b and add input c. Multiply the result by w.
Parameter A controls the influence of input b. Parameter B controls the influence of input c. Parameter C controls
how much w will multiply the result.
w will usually be connected to the component that provides the global illumination. This component is used in the
Gated bilateral B metal ground compiled tree which acts as a custom shader to provide a realistic illumination of
the “beast”.
Formula: ((a * b) + c) * w
Packed Add & Add *w
A: Add B B: Add C C: Mul w
Add inputs a, b and c and multiply the result by w.
- 266 -
COMPONENT REFERENCE: 4->3 Components
Parameter A controls how much b is added to a. Parameter B controls how much c is added. Parameter C controls
how much w will multiply the result.
w will usually be connected to a component that provides the global illumination.
Example file: Liquid invasion
Formula: (a + b + c) * w
Packed Depth Sort
A: z offset
Mix four 3D objects into a single 3D stream. This component is just like the other Packed Depth Sort components
(2->3, 3->3) and requires that each input be a packed stream. Parameter A acts as an offset in the third (z) dimension.
Each input should be a 3D object whose output has been packed. 
Packed RGB w Min
This component is the RGB equivalent of the 3D Depth Sort components but uses the third and fourth inputs for
the comparison. The first two inputs must be packed RGB streams. The third and fourth inputs must be single value
streams. This component treats the third input as a fourth value for the packed data in input a, and the fourth input
is treated as a fourth value for the packed data in input b.
Either input a or input b’s values are passed through the component depending on which stream’s fourth value (either the third or fourth input) is smaller. When input c < input d then input a is passed through. When input d is the
smallest value, input b is passed through.
Example files: Landscape 1 sky
Packed rgb w Min blend
A: Transparency (of input B)
This component is a variation of Packed rgb w Min except that the frontmost object (the component ís second input)
is transparent and fades into the background (the first input). This component is useful for 3D fades using the 3D
parametric face component.
Example file(s): Triple bascules blend, Tech flower room D, Tech Triple pict Pan B
Packed Alpha *w
A: Threshold B: Feather C: Multiply
Mix the a and b inputs (usually RGB inputs) and treat input c as an alpha mask. The w value is multiplied by the
final output and will usually be connected to a branch that provides global illumination. Inputs c and w should both
be scalar (non-packed) values.
Parameter A determines the threshold over which masking occurs. Parameter B provides feathering at the mask
border and determines the definition of the mask borders. Parameter C determines how much the w input influences
the result.
Packed a*w alpha b
A: Threshold B: Feather C: Multiply
Mix the a and b inputs (usually RGB inputs) and treat input c as an alpha mask. w multiplies the source prior to the
masking and makes shadow effects possible. Inputs c and w should both be scalar (non-packed) values.
- 267 -
COMPONENT REFERENCE: 4->3 Components
Parameter A determines the threshold over which masking occurs. Parameter B provides feathering at the mask
border and determines the definition of the mask borders. Parameter C determines how much the w input influences
the result.
Example files: Flying Shadows contains a small iterative loop which feeds Packed a*w alpha b. Butterfly Shadows
uses the same technique to create a mathematical beast.
Packed (a+w) Alpha b
A: Threshold B: Feather C: Add w
Mix the a and b inputs (usually RGB inputs) and treat input c as an alpha mask. The w value is added to source a
before masking.
Example files: This component is used for the halo effect in Flying Shadows Halo. Electro Rain MemAlpha illustrates the fact that the packed mixing components behave like the ‘mem add’ components for all layers except for
the first. See also Packed MemAlpha clouds.
Packed Blend & Alpha
A: Blend AB B: Threshold C: Feather
Perform a mix of inputs a and b and mix the result with input c while treating input w as an alpha mask. Inputs a, b
and c should all be packed RGB values. Input w should be a scalar (single value) stream.
Parameter A controls the mix of images a and b. Parameters B and C control the mask threshold and feathering.
Open Compiled Tree
A: Scale B: Iterations
Compiled trees are groups of tiles that can be used in place of single tiles as a kind of macro or subroutine.. Compiled Trees are covered in more detail in the Compiled Trees chapter of this manual.
Compiled Trees and their parameters are covered in detail in the Compiled Trees chapter of this manual.
- 268 -
4->4 Components
4->4 components are generally used to process RGB+Alpha information and are quite similar to the 3->3 components. The input to 4->4 components is usually RGB in the first three inputs and an alpha channel in the fourth input.
The output is generally RGB+Alpha. Advanced users will find additional applications. In this chapter, the left three
inputs and outputs may be called either XYZ or RGB. The fourth input and output may be called either alpha or w.
Frequently, a 4->4 component is the bottom-most component in a tree where
it is used to join an RGB branch of the tree with a branch that creates an alpha
channel. In order for an alpha channel to be exported from ArtMatic, the tree
must have a four output component at the bottom.
Some 4->4 components can be useful for visualizing the alpha channel (as in the above example) as it is otherwise
invisible. This can be especially helpful when desiging systems for ArtMatic Voyager where the alpha channel often
provides the terrain map. Some 4->4 components are implementations of commonly used 3->3 components with an
alpha channel pass-through and are often used as the last component in the tree to bring together the RGB and Alpha
branches of a tree. In many cases, the fourth input is passed through to the fourth output without change.
DFRM. A number of 4->4 components are invaluable for created DFRM objects (3D objects for rendering with
ArtMatic Voyager).
Alpha Scale & Offset
A: Scale XYZ: B: Scale w : C: Offset
w
Scale inputs XYZ using parameter A, and independently scale and offset the fourth input (w/alpha) using B and C.
Where the input values are called X, Y , Z and W and the called A, B, C, the output values are X*A, Y*A, Z*A,
(W*B) + C. Infinity passes through unchnaged.
A: Scale XYZ. Scaling factor applied to the X, Y, Z inputs before passing them out. The W/alpha output is unaffected
by this parameter.
B: Scale w/alpha. Scaling factor applied to the fourth output (w/alpha).
C: Offset w/alpha. Offset added to the fourth output (w/alpha).
XYZ Offset
A: Offset X: B: Offset Y C: Offset Z
Add independent offsets to the X, Y and Z inputs. It functions identically to 3->3 3D Offset. The output values are
X+A, Y+B, Z+C. The fourth input is passed out unchanged and has no influence on the XYZ inputs.
XYZ Scale
A: Scale X B: Scale Y C: Scale Z
Scale the X, Y, and Z inputs. The fourth input is passed out unchanged. This is functionally identical to the 3->3 3D
Scale component. The output values of Xout, Yout and Zout are X*A, Y*B, Z*C. Infinity passes through unchnaged.
3D Rotate (new)
This is simply a 3D Rotate (like 3->3 3D Rotate) with a fourth input that is passed through without influencing
anything. This behavior is convenient when working with the various S-Space components.
- 269 -
REFERENCE: 4->4 Components
S-Space Scale
Scale the space uniformly and send out an adjusted scale value. This component takes a space (xyz) plus a scale
value as its inputs (such as the values generated by the 3->4 S-Space Scale component. The output is the scale space
(from the xyz outputs) and a scale value which is the fourth input (x) multiplied by the scale value. The scale value
is important for DFRM systems that scale space to make sure that space converges correctly.
Parameters:
A - Scale
S-Space Transforms #
This component implements many interesting non-linear space transforms that would normally be challenging for
DFRM. Many of these are mindbending transforms especially useful for creating 3D fractals. Most of the algorithms result in non-uniform space scaling and require use of the S (fourth) output to adjust the scaling of DFRM
fields to avoid convergence problems.
Fractals based on S-Space Transforms
A fractal based on the Rotation Sym xz & Spherical fold algorithm
- 270 -
REFERENCE: 4->4 Components
Examples: see the files found in ArtMatic Voyager’s DFRM 3D Fractales folder.
Input/Output. The input will generally be an 3D S-Scale space (three dimensions
plus “S”). The output is 3D space plus S. The S output needs to be applied to scale
the DFRM output in order to avoid convergence artifacts as in the tree shown below.
Algorithms:
• Abs & Scale & Offset
• Sphere Inversion. Similar to the 2->2 Complex Inverse component. Inputs X, Y, Z AND S are divided by
length(x,y,z)2. Parameter options: Radius 1, Radius Pi, Radius Pi2, Radius 16.
• Space Inversion
• Spherical fold. Reflect the space between two spheres of Radius A and B where A and B are the values of the parameter sliders A and B.
• Sphere Reflection
• Mandelbox Transform consists of a spherical fold + mirror foldings above +-1.
• Mirror N-Fold xy & Spherical Fold. Options: N-Fold 3 through 20. A mix of planar rotation symmetries with
spherical folding.
• Mirror N-Fold xz & Spherical Fold. Options: N-Fold 3 through 20. A mix of planar rotation symmetries with
spherical folding.
• Tetra s-inversions
• Cross s-inversions
• Kleinian Box s-inversions. Spherical inversion sets.
• -3D N-Fold oZ oX
• 3D N-Fold oZ oX. Two planar rotation symmetries around they given axis.
• 3D N-Fold oY oX. Two planar rotation symmetries around they given axis.
• Sierpinsky Tetrahedron. 45° mirror transform that converges to Sierpinsky Tetrahedron fractals when iterated.
• Sierpinsky Octahedron. 45° mirror transform that converges to Sierpinsky Octahedron fractals when iterated.
• Saw Plane (xz). Infinite mirror saw and scaling in 2D on the xz plane.
• Saw Space. Infinite mirror saw and scaling in 3D. When iterated with rotation and offset, Saw Space creates interesting fractal textures and can be used to modify other objects.
45º mirror transforms
• Boxodron
• Pyranodron
• Pyrabulbodron
- 271 -
REFERENCE: 4->4 Components
S-Space Sphere Inversion
This component reflects the space around a sphere. The scaling is non-linear; so, make sure to use the s-output (the
fourth) to divide the DFRM amplitude at the end of the tree to avoid convergence problems.
Undistorted cube
Sphere-inverted cube
The component’s s-output needs to be
used to scale the DFRM (object) field. In
this example, the compiled tree creates a
color DFRM object (RGB+DFRM)
The input is a 3D space in the xyz inputs and a scale value in the fourth input. The output is a 3D space plus a scale
value.
S-Perspective Distort
This component creates a perspective distortion of the space and is useful for deforming DFRM objects. As with
S-Sphere inversion, you should use the s-output to scale the DFRM object’s amplitude (as shown in the S-Sphere
Inversion explanation) in order to make sure the convergence is accurate in ArtMatic Voyager.
The input is a 3D space in the xyz inputs and a scale value in the fourth input. The output is a 3D space plus a scale
- 272 -
REFERENCE: 4->4 Components
value.
Undistorted cube
Perspective-distorted cube
Contrast & Offset
A: Color Contrast B: Scale w C: Offset W
Adjust the color contrast of the XYZ inputs (which are treated as RGB), and scale and offset the fourth input.
Parameter A adjusts the color contrast of the RGB channels and has no influence on the alpha channel (the fourth
input). B and C scale and offset the fourth input (w/alpha) and have no influence on the RGB input/output. If the
fourth output’s value is infinity, it will be converted to a valid alpha transparency value.
Smooth floor
A: Floor Level B: Roof Level C: Smoothness
Apply the 1->1 Smooth Floor function to the fourth input and pass through the other channels unchanged. See the
description of Smooth Floor in the 1->1 components chapter. The output is clipped to a valid color range (i.e. no
negative values are passed out). The depth fade color is used where the output value is infinity. In the alpha channel
output, infinity is mapped to a low value.
ArtMatic Voyager Cities and Themes
City Textures
A: Pattern # B: Color cycle C: Frequency
This component is an RGB + Alpha component for creating ArtMatic Voyager cityscapes. It provides the color
texture for building exteriors and an alpha output that can be used for special effects (like embossing) in ArtMatic
Voyager. This component generally provides the color shading for buildings created with the 2->4 City Maps
component and has a special interpretation of the input values. The available patterns are: City Texture Set A, City
Texture Set B, City Texture Set C, Classic Set.
The inputs are (from left to right):
• x and z. the ground co-ordinates (latitude and longitude)
• i: texture index. Index value that selects the color pattern to use. The color texture for the buildings is determined
by the “i” input and not by the ground position. The “i” input will usually be provided by 2->4 City Maps, but
you may pass in a constant (to select a particular texture) or manipulate “i” to select different textures for the
same buildings.
• y: elevation.
Output values. The left three outputs are RGB values used as the color texture. The rightmost output (the alpha
value) is meant to be used as an extra output in ArtMatic Voyager. It is a ‘bump’ value that can be used as an ‘extra
- 273 -
REFERENCE: 4->4 Components
output’ value in ArtMatic Voyager (see the image below) rather than an elevation map. The tree below shows a typical use of this component.
Simple typical tree showing
The ‘embossing’ of the win-
use of City Textures. Note that
dows is the result of the City
the tree’s elevation output (the
Textures alpha output as the
tree’s fourth output value)
“Normal” in Voyager.
comes from City Maps and
not from City Textures whose
fourth output is not an elevation
value.
VY Thematic Filters
A: Texture B: Level C: Frequency
This is an RGB+Alpha component used to enhance the visual complexity and realism of ArtMatic Voyager landscapes and includes vegetation such as grass bushes and trees. The input will be RGB+Alpha and the output is
RGB+Alpha. Parameter A selects the texture/theme implemented by the component. The Level parameter generally
shifts the texture vertically. The themes are:
Texture
Gray Rocks
Fractured gray rocks
White Rocks & Beach
Red Rocks & Beach
Strata Rocks A
Strata Rocks B
Strata Rocks C
Grass & Bushes
Pine Forest
Notes
Fractured gray/white rocks and beach with dunes below zero.
Fractured rocks and beach below zero. Rocks gets gray
Stratified patterns with various colors.
Those two filters adds vegetation above 0 and below a certain altitude. The vegetation is of course not realistic but works fairly decently from some distance.
Wide Beach, Dunes & Peb- Adds a beach with dunes & small rocks near 0 but leaves what’s high unchanged.
bles
Erosion
Erode the terrain above zero to the level specified by parameter B, (approx from
500 meter to 2500 meters). It does change the RGB by lowering the brightness
inside valleys.
The structure tree
Image as it appears in ArtMatic
Image as it appears in ArtMatic Voyager
- 274 -
REFERENCE: 4->4 Components
The structure tree at left was used in ArtMatic Voyager to create the image in the middle. The VY Thematic Filters tile (the bottomost
tile) is set to Red Rocks & Beach. The image at right shows the image as it would appear without the thematic filter.
RGB & Alpha Interactions
Several components use the alpha channel to influence the RGB values that are passed out of the
first three outputs. They are useful both for manipulating images and helping to visualize the alpha channel (which is helpful when creating 4-output systems for use in ArtMatic Voyager). The
example images demonstrate the results when the RGB channel is the U&I Software logo and the
alpha channel is a grid. The tree at left was used to create the RGB * Alpha example shown below.
RGB * alpha (Expanded)
A: Alpha Contrast B: Highlights Level C:Alpha Level 
Multiply the R, G and B channels with the w/alpha channel. The w/alpha input is passed out unchanged through the fourth input. This is often very useful for helping visualize the alpha channel as
shown at left. Alpha Contrast controls the contrast of the alpha channel before it is multiplied with
RGB. Highlights Level provides highlights where the alpha channel amplitude is large. This parameter controls the brightness of the highlights. These are added on top of the RGB. Alpha Level is a
scaling factor applied to the alpha before the alpha is multiplied with the RGB.
Parameter Options:
• None . Negative or zero alpha values will set the rgb to black (previous behavior).
• Use depth cue color for alpha. Negative alpha values will be mapped to the depth cue color (first auxiliary color).
• Use aux color A for alpha. Negative alpha values will be mapped to the second auxiliary color.
Alpha Fade
A: Feather B: Amount
This component uses the alpha channel to blend the first auxiliary color with the RGB channels and
multiplies the RGB with a high-contrast rendition of the alpha channel. Feather is the amount of
feathering/blending done at the edges of the alpha channel. Amount is a multiplier applied to the
blending alpha channel. When Amount is positive, the auxiliary color appears where the alpha channel’s value is 0. When the value is negative, the auxilliary color appears where the alpha channel is
greater than 0.
Alpha Shade
A: Amount B: Alpha Contrast
This component is similar to Alpha Fade but draws highlights where the alpha channel is bright and
dims the RGB where the alpha channel is dim. The Alpha Contrast parameter is applied to the alpha
channel (the fourth input) before the shading is applied to the RGB image.
- 275 -
REFERENCE: 4->4 Components
Alpha Gradient
A: Amount B: Gradient Scale X C: Gradient Offset
Interpret the alpha channel as a gradient image (rendered with the current gradient) and blend it with
the RGB channels. The alpha channel is also passed out unchanged through the fourth output.
Amount controls the mix of the RGB and Alpha/Gradient channel. Gradient Scale X is a scaling factor applied to the alpha channel before it is mapped to the gradient. Gradient Offset is an offset applied to the alpha channel before it is mapped to the gradient. B and C do not influence the value
passed out of the fourth output.
Color Shift
A: Hue Shift B: Lightness C: Saturation
Adjust the HLS (Hue, Luminance/Lightness and Saturation) of the RGB image passed into the component. This
component is very convenient for adjusting the HLS of an RGB image without having to convert color spaces and
can be used with straight RGB images (no alpha) by leaving the fourth input unconnected. Sophisticated color processing effects can be created by adjusting HLS. The output is clipped to a valid color range (i.e. no negative values
are passed out). The depth fade color is used where the output value is infinity. In the alpha channel output, infinity
is mapped to a low value.
4->4 Memory Components
Below are brief summaries of the 4->4 memory components. Memory components are covered in detail in the chapter Memory Components. Memory components are used in looped/iterated/recursive trees to combine the results of
each pass through the loop. These components are only meaningful in such trees. We recommend performing the
Compiled Trees and Iteration tutorial in order to best understand how these components work.
Memory Add
Each iteration is added to accumulated image by adding the R, G, B and alpha values to those in the accumulated
image.
Memory Fractal Add
A: Power Slope B: Sum Gain
Each iteration’s pixels are made brighter or dimmer than the previous iteration’s before being added to the accumulated image.
Memory Weighted Add
Use the alpha channel to adjust the pixel brightness before an iteration is added to the accumulated image.
Memory w Max (updated)
For each pixel, compare the alpha (w) input value to the stored image’s and keep the pixel whose w value is largest.
In order to be compatible with DFRM, the component is initialized to -infinity. Parameter D (Blend With Last)
offers control of the blending between iterations. It is especially valuable when doing fractal iteration. When the
parameter is set to the maximum, only the last iteration will be visible leaving only the limit set when working with
a fractal.
- 276 -
REFERENCE: 4->4 Components
Memory w Alpha
Combine the current iteration’s pixels with the accumulated image’s by treating the w/alpha channel as transparency.
Memory Diff
A: Smoothness
Subtract each iteration’s pixel values from the accumulated image’s.
Packed index Mixer (new)
This is a very powerful component that mixes 3 RGBA (or Color/DFRM) inputs using the fourth input to control the
mix. This component is generally used with an index value (like the one created by 3->4 UVID Sweep Volumes) as
the fourth input. This allows composite objects to be created with different color textures for different parts of the
object. Additionally, auxiliary colors can be mapped to some values depending on the parameter option settings.
The output is determined by the index (fourth input) value. Input A is used where the index value is between 0 and
1. Input B is used where the the index is between 1 and 2. Input C is used where the input is between 2 and 3.
44 Packed Index Mixer used to provide different color textures for different tiles. File: 44 Packed Index Tiles
Time as an index. Use time as the fourth input to fade between several systems over time
as demonstrated in 44 Packed Index Mixer Time.
Examples: See the patterns# series provided with ArtMatic.
Parameter Options
• Normal - in this mode index values above 3 are mapped to a color defined by the values of parameters B, C, and D (R,G
- 277 -
REFERENCE: 4->4 Components
and B respectively). Also, -1 and -2 are mapped to the 2nd and third auxiliary colors. The first auxiliary color isn’t
used since some other components make use of it.
• Clamp to 3 - in this mode, values are clamped to the range from 0 through and including 2.
• modulo 3 (loop) - in this mode, the index values are looped from 0 to 2. It can be used with a UVID (see 3->4 UVID
Sweep Volumes) index to mix several textures and all XYZA tiles (where Z is a texture index).
Compiled Tree (updated)
In ArtMatic 4.8 and prior versions, 4->4 compiled trees were looped but not recursive (while all other CTs with the
same number of inputs and outputs were recursive). As of ArtMatic 5, 4->4 compiled trees are recursive as they
should be. A new option, allow feedback (ins -> outs) has been added for all recursive compiled trees. By default,
the option is on and the CTs are recursive. When the option is turned off, the CT will loop non-recursively (and thus
needs a memory component at the end to accumulate the loop results).
4->4 Compiled Trees are most commonly used to create recursive fractal-like objects. For fractal-like objects, the
input to the CT will be a 3D space in inputs xyz and the fourth input (w) will be a density field. Inside the CT, you
generally will accumulate the density using Memory w Max. This component is also used extensively for creating
iterative plant structures (see 4->3 3D Tree Structures) where the input is 3D Space and (in w) the density field to
which the structure is to be added (such as the tree trunk to which branches are to be added). In these cases, the
output is typically the modified object (density field) or a packed RGBa value that holds the color texture and field
density value (the object). The advantage of using 3D Space + RGBa output is that you can mix the output with
other similar CTs to build up complex plant structures. For example, a first 4-> 4 CT might create the first level of
branches while a second will add a different secondary branching structure and a third would add the leaves. An
example of this is found in the ArtMatic Voyager examples 2.0 Examples/DFRM Life & Plants/Plants Iterative/
Composite...
Composite Tree A.vy and the ArtMatic structure that creates the plant.
This component can be used with the iteration component when the tile is in feedback mode to accumulate all iterations with a memory component. When creating 3D fractals, it is often useful to mix the various iterations levels
together instead of rendering just the the limit set which can be just a very fine dust.
Examples: The ArtMatic Voyager example T 44 6_4 Nfold snowflake.vy uses this technique.
- 278 -
REFERENCE: 4->4 Components
T 44 6_4 Nfold snowflake.vy
- 279 -
Memory Components
This chapter documents the behavior of the available “memory” components. Memory components are used in
looped (iterated) trees in order to combine the images created in each pass through the loop; they have no practical
application in non-looped trees. This chapter describes the behavior of the memory components but does not cover
detailed background in looping, iteration and recursion. It is assumed that you are familiar with looping/iteration
which is covered in the chapter Compiled Trees and Iteration.
NOTE! If you are not familiar with looping/iteration, be sure to read the chapter Compiled Trees and Iteration and
to perform that chapter’s tutorials.
Memory (accumulator) components store the image that is created when a tree (or branch) is looped. They combine the result of each new pass through the loop with the accumulated result of the previous iterations. A memory
component (accumulator) is necessary to store the successive iterations. Without one, all you would see when using
Iteration or Looper components would be the result of the last pass through the loop.
The different memory components are distinguished by the method used to composite each new iteration with the
accumulated image. Most memory components are available for more than one tile type. The basic functionality is
the same regardless of the number of inputs and outputs.
There are 1->1, 3->3, 4->3 and 4->4 memory components. 1->1 memory components are for gradient-based images. 3->3 and 4->3 memory components are for RGB images. The 4->3 memory components use the fourth input
as a mask or controller that influences the compositing. 4->4 memory components are used for RGB+Alpha trees.
A Simple Iterated Tree
At left is a portion of an iterated tree that repeatedly rotates a line and accumulates the results with the
memory comopnent. The complete ArtMatic tree is provided in the Documentation Examples file as
More Splines. Below are the results when different memory components are used.
Memory Max
Memory Add
Fractal Add
Memory Diff
Memory Component Reference
Memory Add
A: Start Value B: Sum Gain
(1->1, 3->3, 4->3, 4->4). Memory Add simply adds the new value to the old value. The Start Value parameter is the
initial value which is added to the first iteration. Because the effect accumulates over the iterations, you may sometimes want to set the Start Value to a low value so that the system doesn’t attain large/max values everywhere. This
component can be useful for superimposing many instances of a changing system. Memory Add can be especially
useful for summing harmonics in systems designed for sound generation. In RGB systems, this component can be
used to achieve beautiful transparency effects. In 3D systems, you can achieve volumetric effects. 4->3 note: This
flavor of the component is the same as the 3-in/3-out version with the addition of the fourth input which acts as a
filter mask that is multiplied against the input values. Where the mask is black, the result is black. Where the mask
- 280 -
REFERENCE: Memory Components
is white, the result is unchanged.
Memory Diff
A: Smoothness
(1->1, 3->3, 4->4). Memory Diff subtracts the values of the new iteration’s pixels from those stored in the component’s memory. Fascinating patterns emerge where different forms and colors intersect.
Memory Depth Sort
(3->3) Memory Depth Sort acts as a memory-based version of the other depth sort functions.
Rather than performing a depth sort between two sets of inputs, the depth sort is performed
between the current set of values and the stored values from the previous iteration. Depth
Sort preserves the values that correspond to the frontmost pixel when the three values are
considered as 3D position. The frontmost pixel corresponds to the value with the lowest valued z (third) coordinate. This component is useful for accumulating 3D objects in recursive
Surfaces Z sort iGate E
and iterative trees. See the files “Surfaces Z sort igate E” and “Surfaces Z sort igate” for sophisticated examples that use the component as a “z buffer” that builds up layers synthesized
by the system’s compiled tree.
Memory Fractal Add
A: Power Slope B: Sum Gain
(1->1, 4->4) Memory Fractal Add scales the brightness of each successive iteration before performing a simple
addition of the new pixels to those stored in the accumulator. As a result, layers increase or decrease in brightness.
This increasing/decreasing brightness helps prevent the brightness overloading that can occur with Memory Max.
The brightness scaling can also provide a sense of depth to layered images. Power Slope is the gain change applied
to the pixel brightness between iterations. The gain changes exponentially. When the value is .5 each iteration is half
as bright as the previous one. When the value is 2, each iteration is twice as bright as the previous one. Sum Gain
adjusts the brightness of the tile’s output.
Memory Max
(1->1, 3->3, 4->3). Memory Max retains whichever is larger: the new value or the stored value. When the iterations
are done, this component will essentially have returned the largest value (for each point) of all the iterations. 4->3
note: this flavor of the component is the same as the 3->3-out version with the addition of the fourth input which
acts as a scale factor (multiplier) that is applied to the input values.
Memory Min
(1->1, 3->3). Memory Min compares the pixels in the current iteration with the stored pixels and chooses those with
the smallest values.
Memory Weighted Add
A: Alpha Contrast B: Alpha Offset
(4->4). In each iteration, the alpha channel is used to scale the RGB pixels. For example, a tree like the one below
can be used to simulate Memory Fractal Add. This component is something like RGB * Alpha with memory. Alpha
Contrast adjusts the alpha channel contrast before the alpha channel is multiplied against the RGB values. Alpha
Offset is added to the alpha channel value before the alpha channel is multiplied against the RGB values.
- 281 -
REFERENCE: Memory Components
Memory w Alpha
(4->3, 4->4). Memory w Alpha mixes the current RGB values (received via the first three inputs) with the stored
RGB values by interpreting the fourth input (w) as the transparency of the current values. A high ‘w’ value makes
the current value (pixel) opaque. A ‘w’ value less than 0 makes the current value (pixel) completely transparent (and,
hence, invisible). See the example file MemAlpha Clouds for an example of this powerful component. We recommend rendering the animation to get a sense of the incredible effects you can achieve with this component. One can
simulate volumetric-3D rendering with this component.
Memory w Max
(4->3, 4->4). Memory w Max compares the current w value (the value received in the fourth input) with the stored
w value and stores whichever set of values (R,G, B, and w) has the largest value for w. Note that only the ‘w’ value
is used for the comparison unlike the simple Memory Max component which uses all of the input values for the
comparison.
Memory w Min
(4->3). Memory w Min compares the current w value (the value received in the fourth input) with the stored w
value and stores whichever set of values (R,G, B, and w). If the current w value is smaller than the stored w value,
then the new RGB and w are stored. See Mwmin perlin noise for one example of this component. This component
is very much like Memory Depth Sort but uses ‘w’ (which is not passed out of the function) rather than the third
input for the comparison.
Memory Packed Z Blend
A: Feather B: Offset
(3->4). Memory Packed Z Blend is a memory version of the 3->4 Packed Z Blend
component. Input 1 is not iterated and serves as the background image while both
inputs 2 and 3 are iterated.
Memory Packed Alpha
A: A Threshold B: Feather
(3->3). This is an accumulating version of the 3->3 Packed RGB Alpha component designed to be used in iterated
trees. Usually, inputs 1 and 2 will be packed RGB streams and input 3 will be a simple value. As demonstrated below, adjusting the threshold can have a dramatic effect. When using this component. It is important to explore how
the threshold value influences the image.
Input 1 provides the background image and is not iterated. Inputs 2 and 3 are iterated. In each
iteration, input 3 is applied as a transparency (alpha) mask applied to input 2 before the result is
combined with the accumulated image. Normally, input 3 is a single value, but a packed stream
may also be used. If input 3 is a packed stream, its R, G and B values will be applied as masks to
the corresponding color channels of input 2.
- 282 -
REFERENCE: Memory Components
In the example shown above, Input 1 (the background) is Interlaced Grid. Input 2 is a picture of the U&I Software
logo. Input 3 is a Line. Inputs 2 and 3 are rotated in each iteration. The logo shows through where it intersects input
3 (the line).
Threshold (Parameter A) is the
threshold that the alpha mask
(input 3) must meet before its
pixels are visible. Input 3 must
be brighter than the threshold
for input 2 to be visible.
Threshold low. When
the threshold is low, the
background is completely
masked.
Threshold medium. As the
threshold increases, the background shows through in
more places.
Threshold high. When
the threshold is high, input
3 is only greater than the
threshold where it has its
peak values.
- 283 -
History
2015, June 08 - Complete merge of all component descriptions from the ArtMatic 5 and ArtMatic 6 “New Features”
guides into the main component reference. Published online June 9, 2015.
2015, June 15 - Update intro section of each component chapter that features new classes of components not covered in original intros. For example, 3->1 Reference chapter mentions DFRM in intro section.
- 284 -
REFERENCE: 1->1 Components
- 285 -
REFERENCE: 1->1 Components
- 286 -
REFERENCE: 1->1 Components
- 287 -
REFERENCE: 1->1 Components
- 288 -
REFERENCE: 1->1 Components
- 289 -
REFERENCE: 1->1 Components
- 290 -
REFERENCE: 1->1 Components
- 291 -
REFERENCE: 1->1 Components
- 292 -
REFERENCE: 1->1 Components
- 293 -
REFERENCE: 1->1 Components
- 294 -
REFERENCE: 1->1 Components
- 295 -
REFERENCE: 1->1 Components
- 296 -
REFERENCE: 1->1 Components
- 297 -
REFERENCE: 1->1 Components
- 298 -