Node graph architecture

Node graph architecture

Node graph architecture is a type of software design which builds around modular node components which can be connected together to form a graph. Often the software's underlying node graph architecture is also exposed to the end user as a 2 dimensional visualization of the node graph. The node graph architecture is popular in the film and computer games industry.

There are often many different node types participating in the node graph. For example in the Nuke Manual they list hundreds of nodes. Each node type performs one specific task. For example Nuke's Merge node produces an output image in which a number of input images have been layered. By connecting many different node types together complex image effects can be produced.

The node graph architecture often allows grouping of nodes inside other group nodes. This hides complexity inside of the group nodes, and limits their coupling with other nodes outside the group. This leads to a hierarchy where smaller graphs are embedded in group nodes. In Nuke the group node is simply called the Group node.

In the paper Hierarchical Small Worlds in Software Architecture they argue that most large software systems are built in a modular and hierarchical fashion, and they use node graphs to analyze large software systems. In fact a large number of software analysis papers often use node graphs to analyze large software systems suggesting that node graphs are good models of the internal structure and operation of the software.

Many commercial and non-commercial software systems allow users to visualize and interact with internal components via the node graph. Below are a number of node graph based software applications from the film and games industry.

Contents

Commercial applications

Nuke is a compositing application for film made by The Foundry. The nodes in its graph can be connected together to produce complex 2D image processing effects.

Shake is a discontinued compositing application for film made by Apple. The nodes in its graph can be connected together to produce complex 2D image processing effects.

Maya is a modeling, animation, and rendering application made by Autodesk. The nodes in its graph are more general and produce 3D geometry and various other attributes.

Houdini is a procedural modelling, animation, and rendering application made by Side Effects Software. The nodes in its graph produce procedural geometry. Side Effects Software refers to their node graphs as networks.

Valve's Source SDK allows players to create custom maps for all of their games. The nodes in its graphs are used in AI path planning and also in sending signals between game entities.

Open source applications

Blender is a modelling, animation, compositing, and rendering application. The nodes in its graph produce images, 3D geometry, and various other attriutes.

NodeBox is procedural image creation application. The nodes in its graph produce vector based images.

In-house studio applications

Many large movie studios are rumored to be using the node graph architecture to design many of their in-house software tools. Sony Pictures Imageworks uses an in-house compositing and lighting tool called Katana. In a recent press release (November 2009) it was announced that the Sony Pictures Imageworks' Katana software would be integrated into The Foundry's Nuke software.

References


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • Node (computer science) — A node is a record consisting of one or more fields that are links to other nodes, and a data field. The link and data fields are often implemented by pointers or references although it is also quite common for the data to be embedded directly in …   Wikipedia

  • Architecture Design and Assessment System — The Architecture Design and Assessment System (ADAS) was a set of software programs offered by the Research Triangle Institute from the mid 1980s untilthe early 1990s. [G.A. Frank, D.L. Franke, and W.F. Ingogly, An Architecture Design and… …   Wikipedia

  • Named graph — A Named Graph Named graphs are a key concept of Semantic Web architecture in which a set of Resource Description Framework statements (a graph) are identified using a URI,[1] allowing descriptions to be made of that set of statements such as… …   Wikipedia

  • Visibility graph — A visibility graph is a graph of intervisible locations. Each node or vertex in the graph represents a point location, and each edge represents a visible connection between them (that is, if two locations can see each other, an edge is drawn… …   Wikipedia

  • Autodesk Maya — 2011 running on Windows 7 using realtime CGFX shaders …   Wikipedia

  • Houdini (software) — This article is about a high end 3D animation software. For chess engine, see Houdini (chess). Houdini is a high end 3D animation package developed by Side Effects Software which is headquartered in Toronto, Canada. Its chief distinction from… …   Wikipedia

  • Commitment ordering — In concurrency control of databases, transaction processing (transaction management), and related applications, Commitment ordering (or Commit ordering; CO; (Raz 1990, 1992, 1994, 2009)) is a class of interoperable Serializability techniques …   Wikipedia

  • Distributed computing — is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal …   Wikipedia

  • computer science — computer scientist. the science that deals with the theory and methods of processing information in digital computers, the design of computer hardware and software, and the applications of computers. [1970 75] * * * Study of computers, their… …   Universalium

  • Windows Vista networking technologies — This article is part of a series on Windows Vista New features Overview Technical and core system Security and safety Networking technologies I/O technologies Management and administration Removed features …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”