Node Types

Here you can find a complete reference for every available graphs node. The nodes are categorized into 16 classes shown below.

 

Category
Explanation
BitA bit can have two states: 0 and 1, also called "True" and "False". Bit operations are mainly used with conditions, because there you always compare values against each other to decide whether the given condition is fulfilled (0) or not (1). Bits can also be used for logical operations in order to evaluate a result. There, two results are connected and the graph checks if the conjunction of these bits is true or false again. If both bits are 0, for example, then the conjunction is true (0) again. If one bit is 0 and the other one 1 then the result is false (1). For this purpose there are the classic operators like "AND", "OR", and "NOR" implemented as nodes.
StringA string is a series of characters and what you are reading here right now is already a string. Since strings consist of a sequence of numbers, words or single characters, it is possible to perform various operations with them: different strings can be combined, keywords can be filtered, numbers can be converted into strings, or folder names can be assembled to a complete path. It is also possible to sort a string or extract a certain part of it. The graph engine's "String" nodes offer various helpers for complex tasks – even for arrays with multiple string entries.
ConversionA very common operation with graphs is the conversion of data types: integers have to be transferred into real numbers and vice versa, vectors are split into their X, Y, and Z components, and numbers are turned into strings. It is, of course, also possible to create a vector from three individual values. This is important when you calculate positions, forces, or velocities. The "Conversion" class provides nodes for virtually any purpose.
Constant

Constants are user-definable numbers. They can be created anywhere in a graph and, in most cases, constants are needed to define a value, for example a temperature, velocity, density, or even colour. There are several types of constants for different fields of application:

  • "Bits" only have two states: 0 and 1. 
  • "Integers" are numbers like 5, 873, or 43324.
  • "Real" numbers are also called decimal fractions and the number of decimals is called precision. Examples are 3.1415, 642.5, or 1054.343578. 
  • "Vector3" expects a trio of values and these values can be integers or reals. A typical "Vector3" is a particle's position or normal. These vectors always consist of three elements – one for each axes.
  • "Color4" stores a total four values: RGB plus an Alpha channel

In RealFlow, fields are used for a wide variety of applications and they come in different flavors. In a distance field we know the distance of an arbitrary point from an object's surface. We can also say whether this point is inside or outside the object. This information is important for interactions between Hybrido fluids and objects. Vector fields, on the other hand, are mainly used with forces. These fields describe the strength and orientation of a force in 3D space. A good example is RealFlow's "Noise Field" daemon. Finally, there are real fields, also called scalar fields. Here, every point of the field has a real value assigned. The representation of a real field in 3D space is a surface.

With the members of the "Field" class you can not only create these fields, but even perform operations and calculations. When field nodes are connected to elements of the "Display" class it is also possible to show them in RealFlow's viewport.

ParticleIn RealFlow, fluids are represented as particles and these particle carry lots of information stored in so-called channels. With the nodes in this class you have direct access to these channels. It is also possible to add and remove particles, filter them and add forces. The latter opens a huge area of applications, because you can create force fields from images, objects, and even other particles. These forces can then be applied to an emitter's particles and act like a custom daemon.
MathMathematical operations can be seen as the core of a programming language - even if it is a node-based, visual system. With the nodes of the "Math" class you are able to perform calculations and produce a result. The interesting thing with the graph engine's "Math" nodes is that they do not only support single elements, for example basic operations like 7 + 5, or 3 * 8, but also predefined nodes for vector calculations, complex matrices, and even arrays (arrays can store more than one element, even millions). Aside from these convenient helpers, there is also a broad range of functions (sine, logarithms, square root etc.), and nodes for rounding operations. Another group of nodes provides ready-to-use methods for the interpolation of values from an array.
CurveRealFlow has strong built-in animation features and most of its parameters can be changed over time. When we talk about animations we have to differentiate between curves and keys. The curve's shape and progress is determined by the keys. The keys, on the other hand, are defined by two values: current time and the value's magnitude. All these attributes can be manipulated with graphs. Additionally, there is also a wide variety of nodes to combine curves, add keys, or remove certain parts.
Scene Node

The elements of this group grant access to any RealFlow node of your scene. You can choose whether you want to get the nodes individually, e.g. by name, or all nodes of a kind like emitters or daemons, or even by the current selection. Node groups are stored as arrays and a "For" node is required to loop through them. It is also possible to manage the nodes' export resources.

Additionally, this class contains many RealWave-related nodes. A very interesting method is to convert a RealWave surface into a height field and save it as 32-bit image. You will also find nodes for manipulating RealWave surfaces.

ConditionThe members of this class provide nodes for comparisons to make a decision. The result of a comparison is "True" or "False" or, in a bit-wise notation, 0 and 1; it determines which route the graph will follow. When you create a condition you compare two values against each other with an operator. Operators are, for example, "equal to'", "greater than", or "less than or equal to". Conditions cannot only be used with single elements, but also data types which support more than one value – these types are called arrays. A typical array are the position of the data of an emitter's particles. The "FilterBy" nodes have been designed for exactly this purpose. When the condition is fulfilled, the array will only contain the elements that satisfy the given condition. The other, "false", elements are removed.
Import-Export

These nodes are a perfect addition to RealFlow's comprehensive import and export capabilities, because they provide much more flexibility. The nodes support:

  • Fields
  • Images
  • Meshes
  • Particles

Some nodes are also directly connected to RealFlow's "Export Central" dialogue and create an output according to the active export resource. You can also choose from a wide variety of file formats.

Execution

This class contains nodes for a wide variety of applications. With these nodes it is, for example, possible to

  • create loops
  • add helper nodes for cleaner graphs
  • purge the memory allocated by a graph
  • change the number of threads used for the execution of a graph
  • print out information to RealFlow's "Messages" window

Some of the "Execution" nodes have certain requirements and we recommend reading "RealFlow's Graphs Guide". There we have prepared a dedicated chapter explaining how to use these nodes.

Scene

This group contains everything you need to read out the current frame and time, keep track of the simulation's current settings, and trigger the simulation. Many nodes also allow you to add objects. Please bear in mind that objects should not be created at simulation time, because they may behave incorrectly. The best and safest way is to add them with a batch graph before the simulation starts. You can not only add RealFlow's native polygon objects, but also any other node type: emitters, Hybrido domains, secondary particle emitters, meshes, daemons, and so on.

ImageWith graphs, images can be processed in many different ways. Images can be loaded and analysed, blurred and blended, copied, tiled and transformed. The most versatile node, though creates the image of an ocean statistical spectrum, similar to one you know from Hybrido and RealWave. The information from this image can be used to create force fields and displace surfaces. RealFlow's "Image" nodes support all colour depths from 1 bit to 32 bit per channel.
DisplayWith the nodes of the "Display" class it is possible to visualize fundamental RealFlow elements like particles or meshes, but also complex structures such as vector fields. A vector field can be used to make forces visible. These forces are drawn as arrows of varying length and orientation.
GeometryWith these nodes you can apply almost any possible transformation on polygonal objects and their vertices – including RealWave meshes. These operations include tessellation, displacement, transformation with matrices, and clipping. Additionally, you can create a bounding box around an object, gather information, and extract channel data from the vertices, for example velocity.