Nodes

This is a description of some of the nodes that comes with Plane9. The ports are colored according to their type as can be seen in the documentation.

Render

Screen

A part of the screen that we should render everything to

Input ports

NameTypeDescription
RenderRenderRender
ViewportRectViewport

Output ports

NameTypeDescription
RenderRenderRender

RenderRect

Renders a rectangle

Input ports

NameTypeDescription
RectRectRect
ColorColorColor
SrcBlendIntSource blend mode
DstBlendIntDestination blend mode
TextureTextureTexture
RenderRenderRender

Output ports

NameTypeDescription
RenderRenderRender

Clear

Fills the viewport with a single color.

Input ports

NameTypeDescription
ColorColorColor

Output ports

NameTypeDescription
RenderRenderRender

Math

Sin

Sin math function

Input ports

NameTypeDescription
MinFloatMin value
MaxFloatMax value
OffsetFloatOffset
FrequencyFloatFrequency of the wave

Output ports

NameTypeDescription
ValueFloatComputed value

Expression

Math expression evaluator. Please see the website for a detailed description of this node

Input ports

NameTypeDescription
In1FloatInput value 1
In2FloatInput value 1
In3FloatInput value 1
In4FloatInput value 1
In5FloatInput value 1
ExpressionStringExpression to be evaluated. Inputs are in1,in2,in3,in4,in5,time(local or scene), scenetime (always scene runtime), deltatime (not correct when connected to local port), perm (Not reset for the life of the node. Initial value 0) and permrand (Not reset for the life of the node. Initial value 0.0-1.0).. Outputs are named out1,out2 and out3. Please see the website for detailed description of this port. Some of the allowed values are abs, mod, min, max, sqrt, sin, cos, tan, atan, log, lb, exp, ceil, floor, deg, rad, if, select, equal, above, below, clip, clamp, and, or, not.

Output ports

NameTypeDescription
Out1FloatComputed value
Out2FloatComputed value
Out3FloatComputed value

Rotator

Computes rotation values

Input ports

NameTypeDescription
StartRotXFloatInitial rotation along X axis
StartRotYFloatInitial rotation along Y axis
StartRotZFloatInitial rotation along Z axis
RotSpeedXFloatRotation speed along X axis (Rotations/minute)
RotSpeedYFloatRotation speed along Y axis (Rotations/minute)
RotSpeedZFloatRotation speed along Z axis (Rotations/minute)

Output ports

NameTypeDescription
RotXFloatRotation along X axis
RotYFloatRotation along Y axis
RotZFloatRotation along Z axis

Music

Spectrum

The current music as a spectrum

Input ports

NameTypeDescription
NoMusicLeftFloatValue to use if no music is playing
NoMusicRightFloatValue to use if no music is playing
NoMusicMonoFloatValue to use if no music is playing
AmplificationFloatHow much to amplify the values

Output ports

NameTypeDescription
MonoFloatSpectrum values for the left+right channel
LeftChannelFloatSpectrum values for the left channel
RightChannelFloatSpectrum values for the right channel

Waveform

The waveform of the music in the range -1.0 to 1.0

Input ports

NameTypeDescription
NoMusicLeftFloatValue to use if no music is playing
NoMusicRightFloatValue to use if no music is playing
NoMusicMonoFloatValue to use if no music is playing
AmplificationFloatHow much to amplify the values

Output ports

NameTypeDescription
MonoFloatWaveform values for the left+right channel
LeftChannelFloatWaveform data for the left channel
RightChannelFloatWaveform data for the right channel
AvgLeftChannelFloatAverage of the waveform data for the left channel
AvgRightChannelFloatAverage of the waveform data for the right channel

Beat

Detects the beat in the currently playing music and output its as a value going from 0.0 to 1.0

Input ports

NameTypeDescription
NoMusicFloatValue to use if no music is playing
AmplificationFloatHow much to amplify the values
MinFloatMinimum value
MaxFloatMaximum value

Output ports

NameTypeDescription
BeatStrengthFloatThe strength of the current beat

Color

RGBAToColor

Combines a red, green, blue and alpha component to a color

Input ports

NameTypeDescription
RedFloatThe red color component
GreenFloatThe green color component
BlueFloatThe blue color component
AlphaFloatThe alpha color component

Output ports

NameTypeDescription
ColorColorColor

HSVAToColor

Converts a Hue, Saturation, Value and alpha component to a color

Input ports

NameTypeDescription
HueFloatThe 'real' color. In degrees
SaturationFloatThe saturation of the color. Can be though of as the purity of the color. 0.0 is grey and 1.0 is a 'pure' color
ValueFloatThe brightness of the color
AlphaFloatThe alpha color component

Output ports

NameTypeDescription
ColorColorColor

HSLAToColor

Converts a Hue, Saturation, Lightness and alpha component to a color

Input ports

NameTypeDescription
HueFloatThe 'real' color. In degrees
SaturationFloatThe saturation of the color.
LightnessFloatThe lightness of the color
AlphaFloatThe alpha color component

Output ports

NameTypeDescription
ColorColorColor

Other

Vector

Combines a x, y and z component to a 3d vector

Input ports

NameTypeDescription
xFloatThe x component
yFloatThe y component
zFloatThe z component

Output ports

NameTypeDescription
VectorVectorVector

Game

Asteroids

A self playing asteroids game
Asteroids screenshot

Input ports

NameTypeDescription
WidthFloatWidth of asteroid field
HeightFloatHeight of asteroid field
NumAsteroidsIntNumber of asteroids
NumFragmentsIntNumber of fragments a large asteroid gets split into
LevelTimeFloatHow long to wait before we reset the whole level (sec)
EffectEffectEffect
ShipColColorColor of the ship
BulletColColorColor of the bullets
AsteroidColColorColor of the asteroids
AdjustForAspectBoolAdjust the width and height depending on the screen aspect

Output ports

NameTypeDescription
ObjectObjectObject

PingPong

A autoplaying ping pong game
PingPong screenshot

Input ports

NameTypeDescription
EffectEffectEffect
WidthFloatWidth of playing field
HeightFloatHeight of playing field
BallColColorColor of the ball
Paddle1ColColorColor of paddle 1
Paddle2ColColorColor of paddle 2
BallSizeVectorSize of the ball
Paddle1SizeVectorSize of paddle 1
Paddle2SizeVectorSize of paddle 2
AdjustForAspectBoolAdjust the width and height depending on the screen aspect

Output ports

NameTypeDescription
ObjectObjectObject

Object

Grass

Simulates some grass. A straw will be placed at each point in the mesh. The straws direction will be along the normal
Grass screenshot

Input ports

NameTypeDescription
MeshMeshMesh that will be used to decide where to create the straws
EffectEffectEffect to apply
WidthFloatStraws base width
WidthVarFloatStraws base width variance
GravityVectorGravity
TopWidthFactorFloatStraw top width relative to it's base width
WindDirVectorGlobal wind direction
LWindDirVarVectorLocal wind direction variance
StrengthFloatStrength of 1st constraint
Strength2FloatStrength of 2nd constraint
HeightFloatBase height of each straw
HeightVarFloatHeight variance of each straw
SegmentsIntNumber of segments
ColorColorColor of the grass

Output ports

NameTypeDescription
ObjectObjectObject

Lines

Draws random lines in a criss cross pattern
Lines screenshot

Input ports

NameTypeDescription
WidthFloatWidth of drawing area
HeightFloatHeight of drawing area
NumSectionsWidthIntNumber of subdivisions we should do along the width of the line. Usefull when applying a vertex shaders
NumSectionsHeightIntNumber of subdivisions we should do along the height of the line. Usefull when applying a vertex shaders
RepeatTexUIntHow many times we should repeat the texture U over the line
RepeatTexVIntHow many times we should repeat the texture V over the line
ThicknessFloatThickness of the lines. Set when line is created
LocalThicknessFloatThickness to add to the base thickness. (Local)
ColorColorColor of the lines
LocalColorColorColor of the lines (Local)
LinesPerSecFloatNumber of lines to add per second
LineLifeTimeFloatHow long time line should live. Set when line is created
RotationSpeedFloatThe speed of the line rotation
RotationSpeedVarFloatThe speed of the line rotation variance
EffectEffectEffect

Output ports

NameTypeDescription
ObjectObjectObject

Metaballs

Draws metaballs

Input ports

NameTypeDescription
NumBallsIntNumber of metaballs
GridSizeIntSize of the grid subdivision. Higher value will be smoother but slower
ThresholdFloatAt what energy threshold we will create the hull of the balls
SpeedFloatSpeed of ball movement
EffectEffectEffect

Output ports

NameTypeDescription
ObjectObjectObject

Bars

Draws a set of bars by local evaluation of input

Input ports

NameTypeDescription
NumBarsIntNumber of bars
BarHeightFloatHeight of each bar (Local)
ColorColorColor of the bars
OutlineEffectEffectEffect to apply to the outline of the bars

Output ports

NameTypeDescription
ObjectObjectObject

Oscilloscope

A oscilloscope
Oscilloscope screenshot

Input ports

NameTypeDescription
NumLinesIntNumber of line segments
ColorColorColor of the lines
WaveFloatThe wave that should be shown (Local)
EffectEffectEffect to apply to the lines

Output ports

NameTypeDescription
ObjectObjectObject

Starfield

A starfield
Starfield screenshot

Input ports

NameTypeDescription
EffectEffectEffect
ObjectObjectObject
NumStarsIntNumber of stars
DirVectorStar movement dir
CamRotVectorCamera rotation
SpaceSizeVectorSize of space
StartColMinColorStar start color (Min)
StartColMaxColorStar start color (Max)
EndColMinColorStar end color (Min)
EndColMaxColorStar end color (Max)
StarSizeVectorSize of a single star (Used for all but point and line modes)
PrimTypeIntType of primitive

Output ports

NameTypeDescription
ObjectObjectObject

Planestate

Objects moving around in hypnotic ways. Will draw a 'Object' in each location. If there isn't any 'Object' connection it will draw quads using 'Effect' instead
Planestate screenshot

Input ports

NameTypeDescription
PointEffectEffectPoint Effect
PointObjectObjectPoint Object
OutlineEffectEffectOutline Effect
EffectEffectEffect
ObjectObjectObject. If not corrected we will use quads using the 'effect' instead
NumObjectsIntNumber of objects
ObjectYDeltaFloatDistance between each object
CenterAxisRotVectorRotation of the center axis
ObjectCAxisRotVectorObjects center axis rotation
ObjectRotVectorObjects rotation
ObjectScaleVectorScale of objects
CenterAxisDistVectorObjects distance from center axis
ObjectColColorColor of object
PointColColorPoint color
OutlineColColorOutline color of the plane
PointSizeVectorPoint size
ObjectPivotPosVectorPivot position of objects
PrimTypeIntType of primitive

Output ports

NameTypeDescription
ObjectObjectObject

MatrixTrails

Matrix trails
MatrixTrails screenshot

Input ports

NameTypeDescription
EffectEffectEffect
CharDelayFloatTime to wait before we add a new char
FadeSpeedFloatHow quickly the trails will fade away
NumColumnsIntNumber of columns
NumRowsIntNumber of rows
CharColColorColor of the trails
NumCharsIntNumber of characters in the font texture
CharWidthTexFloatThe width of a character
CharHeightTexFloatThe height of a character
WidthFloatWidth of object
HeightFloatHeight of object
AdjustForAspectBoolAdjust the width and height depending on the screen aspect

Output ports

NameTypeDescription
ObjectObjectObject

LineBounce

A number of lines bouncing around in a box
LineBounce screenshot

Input ports

NameTypeDescription
EffectEffectEffect
ColorColorColor of the line
PointSpeedFloatMovement speed of each point. The point speed will be updated at each bounce
NumObjectsIntNumber of objects
NumPointsPerObjIntNumber of lines in each object
NumTrailsIntNumber of trails that will be left by the objects
WidthFloatWidth of space
HeightFloatHeight of space
DepthFloatDepth of space
AdjustForAspectBoolAdjust the width and height depending on the screen aspect

Output ports

NameTypeDescription
ObjectObjectObject

DelayedTransform

Rotates a set of objects at different scales using a delay

Input ports

NameTypeDescription
ObjectObjectObject
NumObjectsIntNumber of objects
DelayFloatDelay before moving current transform to the next object
PosDeltaVectorPosition change between each object
RotDeltaVectorRotation rotation change between each object
ScaleDeltaVectorHow much to scale each object relative to the last object
DelayedPosDeltaVectorDelayed position
DelayedRotDeltaVectorDelayed rotation
DelayedScaleDeltaVectorHow much to scale each object relative to the last object
ColorColorThe color of the center object

Output ports

NameTypeDescription
ObjectObjectObject

MeshObject

A simple object formed by a mesh and an effect

Input ports

NameTypeDescription
EffectEffectEffect
MeshMeshMesh

Output ports

NameTypeDescription
ObjectObjectObject

Clone

Clones a object

Input ports

NameTypeDescription
NumClonesIntNumber of clones to create
PosVectorPosition of object object
RotVectorRotation of object
ScaleVectorScale of object
PosChangeVectorChange in position per cloned object
RotChangeVectorChange in rotation per cloned object
ScaleChangeVectorChange in scale per cloned object
ColorColorColor of object
CenterBoolCenter the row of cloned objects
ObjectObjectObject

Output ports

NameTypeDescription
ObjectObjectObject

CloneExpression

Clones object using an expression

Input ports

NameTypeDescription
NumObjectsXIntNumber of objects to create in X
NumObjectsYIntNumber of objects to create in Y
NumObjectsZIntNumber of objects to create in Z
AdjustForAspectBoolAdjust the number of clones in X by the screen aspect
CenterBoolCenter the objects. Assumes distance between cloned objects are 1.0
In1FloatInput value 1
In2FloatInput value 1
In3FloatInput value 1
In4FloatInput value 1
In5FloatInput value 1
ExpressionStringExpression to be evaluated for each cloned object. x/y/z contains the index of the current object. time=runtime in seconds. aspect=window aspect. numobjectsx/y/z is the number of objects in each axis. Output values are pos.x, pos.y, pos.z, rot.x, rot.y, scale.x, scale.y, scale.z, rot.z, col.r, col.g, col.b, col.a. Please see the website for detailed description of this port.
EffectEffectThe effect to place on the square if no object is connected
ObjectObjectObject to clone. If nothing is connected a square in the x/y plane will be used

Output ports

NameTypeDescription
ObjectObjectObject

Transform

Transforms 1 to 5 objects using the same transformation

Input ports

NameTypeDescription
PosVectorPosition of object object
RotVectorRotation of object
ScaleVectorScale of object
ColorColorColor of object
Object1ObjectObject 1
Object2ObjectObject 2
Object3ObjectObject 3
Object4ObjectObject 4
Object5ObjectObject 5

Output ports

NameTypeDescription
ObjectObjectObject

Particles

A particle system
Particles screenshot

Input ports

NameTypeDescription
EffectEffectEffect
ObjectObjectObject
ParticlesPerSecIntNumber of particles added per second
SpeedFloatInitial speed of particles
DirectionVectorDirection of particles (Not used by object emitter)
SpreadMinFloatMinimum angle of inital particle direction. For cone type emitters
SpreadMaxFloatMaximum angle of inital particle direction. For cone type emitters
TimeToLiveFloatHow long time the particle should live
TimeToLiveVarFloatHow long time the particle should live variance
ColorBaseColorBase color of particle. This is set during particle creation
ColorColorColor of particle (Local). Added to base color
SizeFloatThe size of the particle when created
SizeVarFloatThe size of the particle when created variance
SizeLocalFloatSize of particle (Local). Added to 'StartSize'
EmitterTypeIntType of emitter. Particles will be generated inside the shape
EmitterPosVectorPosition of emitter
EmitterRotVectorRotation of emitter
EmitterWidthFloatWidth of emitter. (Used by cube)
EmitterHeightFloatHeight of emitter. (Used by cube, cylinder, line)
EmitterDepthFloatDepth of emitter. (Used by cube)
EmitterRadiusFloatRadius of emitter. (Used by sphere, cylinder)
ScaleByAspectBoolAdjust the size of the emitter depending on the aspect of the screen.
PrimTypeIntType of primitive
GravityVectorDirection and strength of gravity

Output ports

NameTypeDescription
ObjectObjectObject

Voronoi

Calculates a 2d voronoi diagram. Ports marked as 'local' are locally evaluated with a time value going from 0.0 to 1.0 depeding on the index of the point

Input ports

NameTypeDescription
NumPointsIntNumber of points/sites
LineWidthFloatWidth of the lines
PointSizeFloatSize of points
LineColorColorLine color (Local)
PointColorColorPoint/site color (Local)
CellColorColorColor of the cell (Local)
ExpressionStringEvaluates points using an expression. Inputs are time,pointnr,numpoints. Inputs & outputs are vel.x,vel.y,pos.x,pos.y. Please see the website for detailed description of this port. Some of the allowed values are abs, mod, min, max, sqrt, sin, cos, tan, atan, log, lb, exp, ceil, floor, deg, rad, if, select, equal, above, below, clip, clamp, and, or, not.
PointEffectEffectEffect applied to the points (also known as sites)
LineEffectEffectEffect applied to the lines
CellEffectEffectEffect applied to the inside of the cells

Output ports

NameTypeDescription
ObjectObjectObject

Mesh

Plane

A 2d plane

Input ports

NameTypeDescription
WidthFloatWidth
HeightFloatHeight
TesselateWIntWidth tessellation
TesselateHIntHeight tessellation
ScaleUFloatScale of texture U
ScaleVFloatScale of texture V

Output ports

NameTypeDescription
MeshMeshMesh

Cube

A cube

Input ports

NameTypeDescription
SizeVectorCube size
ScaleUFloatScale of texture U
ScaleVFloatScale of texture V

Output ports

NameTypeDescription
MeshMeshMesh

Sphere

A sphere

Input ports

NameTypeDescription
RadiusFloatRadius
NumRingsIntNumber of rings
NumSegmentsIntNumber of segments
ScaleUFloatScale of texture U
ScaleVFloatScale of texture V

Output ports

NameTypeDescription
MeshMeshMesh

Cone

A cone

Input ports

NameTypeDescription
RadiusFloatRadius
HeightFloatHeight
NumSegmentsIntNumber of segments
ScaleUFloatScale of texture U
ScaleVFloatScale of texture V

Output ports

NameTypeDescription
MeshMeshMesh

Cylinder

A cylinder

Input ports

NameTypeDescription
RadiusFloatRadius
RadiusScaleTopFloatScale adjustment of top ring
RadiusScaleBottomFloatScale adjustment of bottom ring
HeightFloatHeight
NumSegmentsIntNumber of segments
ScaleUFloatScale of texture U
ScaleVFloatScale of texture V
CappedBoolPut caps on the top and bottom of the cylinder

Output ports

NameTypeDescription
MeshMeshMesh

Disc

Creates a disc mesh

Input ports

NameTypeDescription
OuterRadiusFloatRadius of the outer ring
InnerRadiusFloatRadius of the inner ring
NumSegmentsIntNumber of segments
EndFloatWhere the disc should end if we shouldn't create a complete disc
ScaleUFloatScale of texture U
ScaleVFloatScale of texture V

Output ports

NameTypeDescription
MeshMeshMesh

Torus

A torus. Can also be twisted into a knot

Input ports

NameTypeDescription
SubAxisIntSubdivisions axis
SubHeightIntSubdivisions height
RadiusFloatRadius
ThicknessFloatThickness
ClumpsIntNumber of clones to create
ClumpOffsetFloatOffset of the clumps
ClumpScaleFloatScale of a clumps
PFloatP
QFloatQ
ScaleUFloatScale of texture U
ScaleVFloatScale of texture V

Output ports

NameTypeDescription
MeshMeshMesh

CloneMesh

Clones a mesh

Input ports

NameTypeDescription
NumClonesIntNumber of clones to create
PosChangeVectorChange in position per cloned mesh
RotChangeVectorChange in rotation per cloned mesh
ScaleChangeVectorChange in scale per cloned mesh
MeshMeshMesh

Output ports

NameTypeDescription
MeshMeshMesh

CloneMeshExpression

Clones a mesh using an expression

Input ports

NameTypeDescription
NumObjectsXIntNumber of objects to create in X
NumObjectsYIntNumber of objects to create in Y
NumObjectsZIntNumber of objects to create in Z
In1FloatInput value 1
In2FloatInput value 1
In3FloatInput value 1
In4FloatInput value 1
In5FloatInput value 1
ExpressionStringExpression to be evaluated for each cloned object. x/y/z contains the index of the current object. numobjectsx/y/z is the number of objects in each axis. Output values are pos.x, pos.y, pos.z, rot.x, rot.y, scale.x, scale.y, scale.z, rot.z, col.r, col.g, col.b, col.a. Please see the website for detailed description of this port.
MeshMeshMesh to clone

Output ports

NameTypeDescription
MeshMeshMesh

Effect

BasicEffect

A basic effect with a texture

Input ports

NameTypeDescription
TextureTextureTexture
DepthTestBoolTest any written values against the depth buffer
DepthWriteBoolWrite to the depth buffer when rendering new objects
AALineBoolAntialiased line
AlphaBlendBoolAlpha blend
SrcBlendIntSource blend mode
DstBlendIntDestination blend mode
CullModeIntCull mode

Output ports

NameTypeDescription
EffectEffectEffect

Shader

A customer cgfx shader

Input ports

NameTypeDescription
DepthTestBoolTest any written values against the depth buffer
DepthWriteBoolWrite to the depth buffer when rendering new objects
AALineBoolAntialiased line
SrcBlendIntSource blend mode
DstBlendIntDestination blend mode
CullModeIntCull mode
In1VectorInput vector 1
In2VectorInput vector 2
In3VectorInput vector 3
Color1ColorInput color 1
Color2ColorInput color 2
ShaderStringCgfx shader to be used. Most common matrices exists in the form gWVP for the WorldViewProjection matrix. There is also time,in1,in2,in3,color1,color2,tex1,tex2,tex3. VSInput contains pos,col,tex,normal
ExpressionStringPreprocessing expression. Inputs are the same as the node inputs in1.x, in2.y and so on. There is also time,deltatime,perm (Not reset for the life of the node. Initial value 0) and permrand (Not reset for the life of the node. Initial value 0.0-1.0). Before the input values will be set they can be changed using this expression. Use this to moving an expression like 'sin(time)' from the vertex/pixel shader. Please see the website for detailed description of this port.
Texture1TextureTexture 1
Texture2TextureTexture 2
Texture3TextureTexture 3

Output ports

NameTypeDescription
EffectEffectEffect

Texture

FileTexture

Loads in a texture from disk. Handles various formats including but not limited to jpeg, png, bmp, gif, tga. But only in the size of 256x256

Input ports

NameTypeDescription
FilenameStringFilename of the 256x256 texture we should use

Output ports

NameTypeDescription
TextureTextureTexture

RenderToTexture

Converts a render port to a texture port

Input ports

NameTypeDescription
RenderRenderRender

Output ports

NameTypeDescription
TextureTextureTexture

CopyToTexture

Copies everything that has been rendered so far to a texture

Input ports

NameTypeDescription
RectRectThe rectangle to copy from the render buffer
RenderRenderRender

Output ports

NameTypeDescription
RenderRenderRender
TextureTextureTexture

Blur

Blurs a texture

Input ports

NameTypeDescription
WidthIntWidth of the blur
AmplifyIntAmplification
TextureTextureTexture

Output ports

NameTypeDescription
TextureTextureTexture