Knowledge (XXG)

Node graph architecture

Source 📝

268: 1693: 20: 1713:
the weights in the output layer through a sequence of functional evaluations over the weights from previous layers. During training, the machine learning algorithm uses optimization to minimize a loss function, where the loss function depends on the difference between the weights in the output layer and the expected values. Node graphs are used to visualize, configure and debug these neural network layers.
408: 1609: 399:. Another survey focuses on peoples beliefs on the cognitive effects of visual programming, in which they found that professional programmers are the most skeptical of visual programming. Other studies have shown in psychological experiments that visual programming can have significant positive effects on performance in cognitive tasks. 1712:
applications. The diagram above shows a simple neural network composed of 3 layers. The 3 layers are the input layer, the hidden layer, and the output layer. The elements in each layer are weights and are connected to weights in other layers. During inference, the machine learning algorithm evaluates
330:
In the paper Hierarchical Small Worlds in Software Architecture author Sergi Valverde argues that most large software systems are built in a modular and hierarchical fashion, and that node graphs can be used to analyze large software systems. Many other software analysis papers often use node graphs
1500:
in the same as other nodes. This node simply groups a subset of connected nodes together and manages the inputs and outputs into or out of the group. 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
394:
Research studies tend to shed more details on these discussions and highlight more of the advantages and disadvantages of node graphs. They indicate that node graphs and visual programming are easy to understand for new users, but as the users move to more complex tasks they often need to resort to
154:
as to the benefits of visual programming and node graph architecture. Advocates highlight how the abstraction that node graphs provide makes the tool easier to use. Critics highlight how visual programming is too restrictive and how they must resort to modifying source code or scripts to accomplish
1637:). In this software's operational model, a video sequence is being passed through the lines onto the next node, and each node performs some additional modifications to the video sequence. In this example one video is translated in 2D, another is pixelated, and finally, both streams are merged. 1544:
With the increasing usage of node graphs, there is currently increased attention on creating user-friendly interfaces. Often these new interfaces are being designed by user interface specialists and graphical designers. The following are some user interfaces designed by artists and designers.
210:
A program's execution need not be controlled by the usual explicit sequential flow conventions. The movement of data through a program may determine its operation. A data controlled convention corresponds closely to our intuitive ideas of how a graphical program should operate and also allows
275:
Some of the more recent uses of node graph architectures started around 2005. Node graphs in this time frame start to develop paradigms to deal with complexity in the node graph. The complexity arose as the number of nodes and links in the graph increased. One of the main ideas dealing with
362:
Advocates of visual programming generally emphasize how it simplifies programming because it abstracts away many details and only exposes controls that are necessary for their domain. These controls are the parameters on the nodes which control their behavior and the links between
423:
refers to an organization of software functionality into atomic units known as nodes, and where nodes can be connected to each other via links. The manipulation of nodes and links in the node graph can be often be accomplished through a programmable
779:
Mathematically they can be thought of as additional input values to the node's compute function. The only difference is that these values are controlled directly by the user instead of being output by another node as a by-product of its
204:
The ease of debugging programs, particularly parallel ones, will be enhanced by a pictorial language form. Being able to attach data probes and to see a program run gives one a grasp of detail that is hard to obtain in any other
245:
Important organizational concepts in the GRAIL system are the sequential flow of control, the hierarchy of subroutines, and the language (flow diagrams) for pictorially relating the organization within the concepts of the first
787:
Visually the node's parameters are often exposed after the user clicks on the node. This helps to reduce visually cluttering the node graph. In the diagram above we see a parameter window opening up beside the "Add Star" node.
1269: 755:
Visually nodes are often represented by rectangles. However, this is not a convention that is followed by all applications. In the diagram above there are three nodes labeled "Video", "Add Star" and "Add Circle".
1632:
industries. The diagram above shows a simplified user interface for an artistic tool for editing and creating videos. The nodes are represented as rectangles and are connected to each other through curved lines
100:
its operation on these inputs to produce its own outputs. The ability to link nodes together in this way allows complex tasks or problems to be broken down into atomic nodal units that are easier to understand.
251:
The sequential nature of control allows the man to envision isolated processes that are adapted to specific functions--which, in turn, allow the organizer to think of the total program in terms of manageable
940: 595: 1676: 300: 190:
workflows or programs. Since then his thesis has been used as "prior art" in order to quash lawsuits about dataflow ideas today. His work is often thought to have led the way to what is known as
784:. For example, in the simple example above regarding a node that adds two numbers, we can introduce a bias parameter on the node so that the node can add an extra fixed number onto the sum. 1112:
between different nodes. They are analogous to mathematical composition. For example, if node A is feeding its outputs to node B, this can be represented mathematically as follows.
358:
industries node graphs are synonymous with visual programming. There is currently some debate on the power, abstraction, and need of node graphs and visual programming languages.
175:. The effort attempts to document the evolution and explosion of node graph user interfaces starting from their initial roots. This visual history is hosted on a blog page called 1095: 750: 1461: 1404: 1036: 691: 1350: 1311: 982: 637: 1520:
using node graph architecture will typically expose the node graph visually or graphically to the user, allowing the user to make changes to the node graph. Using the
199:
A pictorial program is a natural way of expressing parallel processes. The two-dimensional nature of the language helps in visualizing many things happening at once.
1501:
graphs are embedded in group nodes. The following are examples of group nodes which are used to group a subset of connected nodes and to help simplify the graph.
435:
In modern-day usage, the term "node graph" is an open compound word. However, in older software it was referred to as a "nodegraph", a closed compound word.
374:
This remains an active area of debate with new discussions occurring in open forums to this day. The following are a few of the largest discussions to date.
262:
Flow diagrams help the man to picture his control options and the relationship between processes by expressing these interrelationships in two dimensions.
179:. Work leading to node graph architectures and visual programming seems to have started in the 1960s, in the area known as "man-machine communications". 1489:
Katana, a popular look and lighting software, includes hundreds of nodes. each performing specific tasks related to lighting computer graphics scenes.
366:
Critics of visual programming generally emphasize how it does not offer enough control, and how for more complex tasks it becomes necessary to author
77: 69: 463:. A simple example is a node that adds two numbers together. The inputs are the two numbers to add and the output is the sum of the two numbers. 1566: 1117: 276:
complexity was the concept of a group or package node which hid nodes inside of itself, only exposing the inputs and outputs of the group.
331:
to analyze large software systems suggesting that node graphs are good models of the internal structure and operation of the software.
319: 2137: 2041: 816: 471: 232:. The GRAIL system used a flowchart-based graphical programming language and could recognize handwritten letters and gestures. 1766: 1596:
by following links. To avoid these problems many node graphs architectures restrict themselves to a subset of graphs known as
388: 2382: 1941: 93: 81: 1582: 1492:
Mari, a popular 3D painting software, includes hundreds of nodes. each performing specific tasks related to 3D painting.
176: 73: 65: 343: 85: 50: 2161: 2113: 1671: 1666: 295: 290: 2367: 2193: 49:
are designed around the editing and composition (or linking) of atomic functional units. Node graphs are a type of
1847: 1756: 217: 121: 113: 1475:. There are often many different node types participating in the node graph. The following are some examples: 346:. Node graphs allow you to design programs in a visual and structured way instead of through the authoring of 186:, he describes and analyses topics around a 2D pictorial language. This is one of the first investigations in 2235:
Palsingh, Rishi; Vandana, Vandana (2014). "Application of Graph Theory in Computer Science and Engineering".
2318: 2252: 2200: 1886: 1597: 2332: 2296: 2214: 1993: 1900: 1593: 1578: 1496:
The most important node type for managing complexity is the group node. This node type does not execute
1472: 805: 781: 765: 460: 456: 420: 191: 147:
are the main adopters of this software design with the majority of tools using node graph architecture.
97: 89: 1864:
Valverde, Sergi; Sole, Ricard V. (11 July 2003). "Hierarchical Small Worlds in Software Architecture".
1041: 696: 1681: 370:. However, these more complex tasks often fall outside the intended usage or domain of the node graph. 309: 132:. Nodes are often drawn as rectangles, and connections between nodes are drawn with lines or splines. 2244: 1589: 1517: 1409: 187: 172: 109: 61: 2323: 2257: 2205: 2089: 1955: 1891: 1355: 987: 811:
Mathematically the node's inputs and outputs are analogous to input and output values of functions.
642: 2065: 1649: 1629: 1483: 444: 355: 2188: 2282: 2047: 1981: 1865: 1788: 305: 80:
for all inputs and all outputs. Outputs and inputs can refer to each other, typically by holding
72:
for all nodes. Each node can have inputs and outputs, which are typically also implemented using
24: 1592:. When cycles are present in the node graph, the evaluation never ends as nodes are continually 112:
will often visually display the node graph to the user. This is often accomplished by using the
2276:"Implementing a Reverse Dictionary, based on word definitions, using a Node-Graph Architecture" 1956:"Strengths and weaknesses of a visual programming language in a learning context with children" 1316: 1277: 948: 603: 2037: 1656: 280: 1549: 2262: 2029: 1973: 1820: 1740: 1717: 1709: 1574: 1573:
Many theoretical results from graph theory apply to node graphs, especially with regards to
267: 184:
William Robert Sutherland's MIT thesis (1966) "Online Graphical Specification of Procedures"
116:
to perform the rendering which is subsequently displayed on the desktop to the user. Common
1486:
program, includes hundreds of nodes. each performing specific tasks related to compositing.
2345: 2309: 2227: 2006: 1913: 1705: 1661: 1621: 1479: 796:
Nodes often have inputs and outputs, as discussed above. Inputs and outputs are backed by
285: 229: 34: 1634: 2248: 257:
The subroutine hierarchy emphasizes the notion of isolated processes even more strongly.
228:, a system where users could write computer commands directly on a tablet, conducted by 19: 2199:"Graph Grammars and Constraint Solving for Software Architecture Styles". 1998: 69–72. 1814: 1692: 1565: 1521: 429: 183: 105: 46: 1824: 2376: 1645: 1625: 351: 216:
In 1969, T. O. Ellis, J. F. Heafner, and W. L. Sibley published a paper concerning a
64:
is organized into atomic functional units called nodes. This is typically done using
2051: 1985: 1608: 2275: 1927: 801: 773: 459:
functionality and will often take inputs and produce outputs as a by-product of
439: 396: 383: 367: 347: 221: 57: 42: 804:. Inputs and outputs are crucial to storing values before and after the node's 407: 378: 139:
started in the 1960s. Today the use of node graphs has exploded. The fields of
2022:"Metacognitive theories of visual programming: what do we think we are doing?" 2021: 237: 2352: 1100:
Visually the inputs and outputs of nodes are often represented with circles.
314: 1109: 797: 769: 225: 2033: 96:
stored in its inputs to retrieve data output by other nodes. The node then
1977: 1471:
The type of a node indicates which compute operation it will perform when
1870: 1497: 233: 2362: 1264:{\displaystyle {outputs}_{nodeB}=f_{nodeB}(f_{nodeA}({inputs}_{nodeA}))} 2266: 432:. In the diagram above, the node graph appears on the right-hand side. 168: 129: 1776: 2189:
Metrics of Software Architecture Changes Based on Structural Distance
466:
Nodes are analogous to mathematical functions of the following form.
125: 1972:"Visual programming: the outlook from academia and industry". 1997. 2287: 1691: 1607: 1564: 1554: 406: 266: 18: 240:, however, he was not involved with the creation of the system. 1588:
One particular area of concern during node graph evaluation is
171:
to collect snapshots of all node graph user interfaces in most
1733: 455:
Nodes perform some type of computation. They encapsulate this
425: 117: 935:{\displaystyle {outputs}_{nodeA}=f_{nodeA}({inputs}_{nodeA})} 590:{\displaystyle {outputs}_{nodeA}=f_{nodeA}({inputs}_{nodeA})} 1761: 92:
its functionality, it retrieves its inputs by following the
164: 2357: 1816:
The on-line graphical specification of computer procedures
764:
Nodes often have additional parameters, that define their
1751: 211:
parallel programming without explicit flow designations.
1771: 1728: 1808: 1806: 1804: 2353:
A History of Visual Programming: From Basic to Bubble
1412: 1358: 1319: 1280: 1120: 1044: 990: 951: 819: 699: 645: 606: 474: 2026:
Proceedings 1996 IEEE Symposium on Visual Languages
1724:without a graphical interface for the node graphs. 1352:are the operations performed by node B and node A, 1640:The following are some examples of software using 1455: 1398: 1344: 1305: 1263: 1089: 1030: 976: 934: 744: 685: 631: 589: 1819:(Thesis). Massachusetts Institute of Technology. 1612:An example of a node graph based user interface 2237:International Journal of Computer Applications 151: 16:Software design structured around a node graph 1406:is a vector of the node A's input values and 140: 8: 144: 2317:"Representation and Analysis of Software". 1885:"Representation and Analysis of Software". 1463:is a vector of the node B's output values. 1038:is a vector of the node's input values and 693:is a vector of the node's input values and 428:or through a visual interface by using the 2274:Thorat, Sushrut; Choudhari, Varad (2016). 2138:"Nuke: Grouping Nodes with the Group Node" 1942:"Visual Programming - Why it's a Bad Idea" 2322: 2286: 2256: 2204: 1890: 1869: 1842: 1840: 1838: 1836: 1834: 1435: 1411: 1378: 1357: 1324: 1318: 1285: 1279: 1237: 1217: 1195: 1170: 1145: 1122: 1119: 1097:is a vector of the node's output values. 1069: 1046: 1043: 1010: 989: 956: 950: 911: 891: 869: 844: 821: 818: 752:is a vector of the node's output values. 724: 701: 698: 665: 644: 611: 605: 566: 546: 524: 499: 476: 473: 306:Blender (software) § Geometry Nodes 177:Visual Programming Languages - Snapshots 88:of other outputs or inputs. When a node 2194:Representation and Analysis of Software 1800: 1540:view the current output values on nodes 1537:evaluate the graph up to a certain node 2341: 2330: 2305: 2294: 2223: 2212: 2002: 1991: 1909: 1898: 342:are a subset of the broader class of 7: 1708:has recently become very popular in 1524:, users will typically be able to: 1108:Links transfer the values stored in 315:Grasshopper, McNeel & Associates 1813:Sutherland, William Robert (1966). 1739:The following are some examples of 1762:Deep Cognition, Deep Congition Inc 37:structured around the notion of a 14: 1928:"Visual Programming Doesn't Suck" 1090:{\displaystyle {outputs}_{nodeA}} 768:. These parameters are backed by 745:{\displaystyle {outputs}_{nodeA}} 1848:"GRAIL Graphical Input Language" 220:. Their work was related to the 218:Graphical Input Language (GRAIL) 1456:{\displaystyle outputs_{nodeB}} 384:Discussion on Hacker News, 2019 379:Discussion on Hacker News, 2014 339: 38: 1716:The following are examples of 1569:Example directed acyclic graph 1399:{\displaystyle inputs_{nodeA}} 1258: 1255: 1213: 1188: 1031:{\displaystyle inputs_{nodeA}} 929: 887: 686:{\displaystyle inputs_{nodeA}} 584: 542: 163:There is an ongoing effort by 1: 1624:is especially popular in the 224:which began with research on 1772:Neural Network Console, Sony 1696:Simple neural network layers 1581:are linked together to form 344:visual programming languages 1767:Neural Network Modeler, IBM 984:is the node's computation, 639:is the node's computation, 192:computer-aided design (CAD) 150:To this day, there is some 51:visual programming language 2399: 2368:What is visual programming 1825:1721.1/13474?show=full 1734:TensorFlow, GitHub, Google 1577:. This subject area where 1484:visual effects compositing 326:Abstraction and Complexity 1729:PyTorch, GitHub, Facebook 1345:{\displaystyle f_{nodeA}} 1306:{\displaystyle f_{nodeB}} 977:{\displaystyle f_{nodeA}} 632:{\displaystyle f_{nodeA}} 440:Nodegraph, Valve Software 335:Visual Programming Debate 238:demos of the GRAIL system 2162:"Katana: Grouping Nodes" 2090:"Katana Reference Guide" 2020:Blackwell, A.F. (1996). 1789:Adobe Substance Designer 1604:Use in Computer Graphics 1531:edit parameters on nodes 271:Blender node graph, 2006 1757:PerceptiLabs, KDnuggets 1745:node graph architecture 1722:node graph architecture 1702:node graph architecture 1688:Use in Machine Learning 1642:node graph architecture 1618:node graph architecture 1598:directed acyclic graphs 1561:Directed Acyclic Graphs 1550:Node graphs on Dribbble 792:Node Inputs and Outputs 389:Reddit discussion, 2019 137:node graph architecture 31:Node graph architecture 2340:Cite journal requires 2304:Cite journal requires 2222:Cite journal requires 2114:"Mari Reference Guide" 2066:"Nuke Reference Guide" 2034:10.1109/VL.1996.545293 2001:Cite journal requires 1908:Cite journal requires 1697: 1613: 1570: 1534:connect nodes together 1508:Group nodes in Katana. 1457: 1400: 1346: 1307: 1265: 1091: 1032: 978: 936: 746: 687: 633: 591: 412: 310:Official Documentation 272: 236:has given a number of 27: 2383:Software architecture 1978:10.1145/266399.266415 1695: 1611: 1568: 1518:Software applications 1458: 1401: 1347: 1308: 1266: 1092: 1033: 979: 937: 747: 688: 634: 592: 421:software architecture 411:An example node graph 410: 270: 173:software applications 22: 2028:. pp. 240–246. 1505:Group nodes in Nuke. 1410: 1356: 1317: 1278: 1118: 1042: 988: 949: 817: 697: 643: 604: 472: 110:software application 62:software application 2249:2014IJCA..104a..10P 2267:10.5120/18165-9025 1752:Graphbook, Cerbrec 1698: 1614: 1571: 1453: 1396: 1342: 1303: 1261: 1087: 1028: 974: 932: 742: 683: 629: 587: 419:in the context of 413: 395:authoring textual 273: 28: 2166:learn.foundry.com 2142:learn.foundry.com 2118:learn.foundry.com 2094:learn.foundry.com 2070:learn.foundry.com 1585:is well studied. 1555:Nodes on Dribbble 2390: 2363:Blockly Software 2358:Scratch Software 2349: 2343: 2338: 2336: 2328: 2326: 2313: 2307: 2302: 2300: 2292: 2290: 2280: 2270: 2260: 2231: 2225: 2220: 2218: 2210: 2208: 2176: 2175: 2173: 2172: 2158: 2152: 2151: 2149: 2148: 2134: 2128: 2127: 2125: 2124: 2110: 2104: 2103: 2101: 2100: 2086: 2080: 2079: 2077: 2076: 2062: 2056: 2055: 2017: 2011: 2010: 2004: 1999: 1997: 1989: 1969: 1963: 1962: 1960: 1952: 1946: 1945: 1938: 1932: 1931: 1924: 1918: 1917: 1911: 1906: 1904: 1896: 1894: 1882: 1876: 1875: 1873: 1871:cond-mat/0307278 1861: 1855: 1854: 1852: 1844: 1829: 1828: 1810: 1741:machine learning 1718:machine learning 1710:machine learning 1528:create new nodes 1462: 1460: 1459: 1454: 1452: 1451: 1405: 1403: 1402: 1397: 1395: 1394: 1351: 1349: 1348: 1343: 1341: 1340: 1312: 1310: 1309: 1304: 1302: 1301: 1270: 1268: 1267: 1262: 1254: 1253: 1236: 1212: 1211: 1187: 1186: 1162: 1161: 1144: 1096: 1094: 1093: 1088: 1086: 1085: 1068: 1037: 1035: 1034: 1029: 1027: 1026: 983: 981: 980: 975: 973: 972: 941: 939: 938: 933: 928: 927: 910: 886: 885: 861: 860: 843: 751: 749: 748: 743: 741: 740: 723: 692: 690: 689: 684: 682: 681: 638: 636: 635: 630: 628: 627: 596: 594: 593: 588: 583: 582: 565: 541: 540: 516: 515: 498: 445:Nodegraph, Notch 320:Dynamo, Autodesk 145:machine learning 23:Shader nodes in 2398: 2397: 2393: 2392: 2391: 2389: 2388: 2387: 2373: 2372: 2339: 2329: 2324:10.1.1.394.4865 2316: 2303: 2293: 2278: 2273: 2258:10.1.1.800.2735 2234: 2221: 2211: 2206:10.1.1.108.9362 2198: 2185: 2180: 2179: 2170: 2168: 2160: 2159: 2155: 2146: 2144: 2136: 2135: 2131: 2122: 2120: 2112: 2111: 2107: 2098: 2096: 2088: 2087: 2083: 2074: 2072: 2064: 2063: 2059: 2044: 2019: 2018: 2014: 2000: 1990: 1971: 1970: 1966: 1958: 1954: 1953: 1949: 1944:. October 2018. 1940: 1939: 1935: 1926: 1925: 1921: 1907: 1897: 1892:10.1.1.394.4865 1884: 1883: 1879: 1863: 1862: 1858: 1850: 1846: 1845: 1832: 1812: 1811: 1802: 1797: 1785: 1743:software using 1720:software using 1706:software design 1690: 1662:Houdini, SideFX 1657:Katana, Foundry 1622:software design 1606: 1563: 1515: 1469: 1431: 1408: 1407: 1374: 1354: 1353: 1320: 1315: 1314: 1281: 1276: 1275: 1272: 1216: 1191: 1166: 1121: 1116: 1115: 1106: 1045: 1040: 1039: 1006: 986: 985: 952: 947: 946: 943: 890: 865: 820: 815: 814: 794: 762: 760:Node Parameters 700: 695: 694: 661: 641: 640: 607: 602: 601: 598: 545: 520: 475: 470: 469: 453: 405: 337: 328: 286:Houdini, SideFX 281:Katana, Foundry 230:Ivan Sutherland 161: 141:graphics, games 68:derived from a 35:software design 17: 12: 11: 5: 2396: 2394: 2386: 2385: 2375: 2374: 2371: 2370: 2365: 2360: 2355: 2350: 2342:|journal= 2314: 2306:|journal= 2271: 2232: 2224:|journal= 2196: 2191: 2184: 2181: 2178: 2177: 2153: 2129: 2105: 2081: 2057: 2042: 2012: 2003:|journal= 1964: 1947: 1933: 1919: 1910:|journal= 1877: 1856: 1830: 1799: 1798: 1796: 1793: 1792: 1791: 1784: 1781: 1780: 1779: 1777:Digits, nVIDIA 1774: 1769: 1764: 1759: 1754: 1737: 1736: 1731: 1689: 1686: 1685: 1684: 1679: 1677:Maya, Autodesk 1674: 1669: 1664: 1659: 1605: 1602: 1562: 1559: 1558: 1557: 1552: 1542: 1541: 1538: 1535: 1532: 1529: 1514: 1513:User Interface 1511: 1510: 1509: 1506: 1494: 1493: 1490: 1487: 1468: 1465: 1450: 1447: 1444: 1441: 1438: 1434: 1430: 1427: 1424: 1421: 1418: 1415: 1393: 1390: 1387: 1384: 1381: 1377: 1373: 1370: 1367: 1364: 1361: 1339: 1336: 1333: 1330: 1327: 1323: 1300: 1297: 1294: 1291: 1288: 1284: 1260: 1257: 1252: 1249: 1246: 1243: 1240: 1235: 1232: 1229: 1226: 1223: 1220: 1215: 1210: 1207: 1204: 1201: 1198: 1194: 1190: 1185: 1182: 1179: 1176: 1173: 1169: 1165: 1160: 1157: 1154: 1151: 1148: 1143: 1140: 1137: 1134: 1131: 1128: 1125: 1114: 1105: 1102: 1084: 1081: 1078: 1075: 1072: 1067: 1064: 1061: 1058: 1055: 1052: 1049: 1025: 1022: 1019: 1016: 1013: 1009: 1005: 1002: 999: 996: 993: 971: 968: 965: 962: 959: 955: 931: 926: 923: 920: 917: 914: 909: 906: 903: 900: 897: 894: 889: 884: 881: 878: 875: 872: 868: 864: 859: 856: 853: 850: 847: 842: 839: 836: 833: 830: 827: 824: 813: 800:in the node's 793: 790: 772:in the node's 761: 758: 739: 736: 733: 730: 727: 722: 719: 716: 713: 710: 707: 704: 680: 677: 674: 671: 668: 664: 660: 657: 654: 651: 648: 626: 623: 620: 617: 614: 610: 586: 581: 578: 575: 572: 569: 564: 561: 558: 555: 552: 549: 544: 539: 536: 533: 530: 527: 523: 519: 514: 511: 508: 505: 502: 497: 494: 491: 488: 485: 482: 479: 468: 452: 449: 448: 447: 442: 404: 401: 392: 391: 386: 381: 372: 371: 364: 336: 333: 327: 324: 323: 322: 317: 312: 303: 301:Maya, Autodesk 298: 293: 288: 283: 265: 264: 259: 254: 248: 214: 213: 207: 201: 188:dataflow-based 160: 157: 106:user interface 47:user interface 15: 13: 10: 9: 6: 4: 3: 2: 2395: 2384: 2381: 2380: 2378: 2369: 2366: 2364: 2361: 2359: 2356: 2354: 2351: 2347: 2334: 2325: 2320: 2315: 2311: 2298: 2289: 2284: 2277: 2272: 2268: 2264: 2259: 2254: 2250: 2246: 2242: 2238: 2233: 2229: 2216: 2207: 2202: 2197: 2195: 2192: 2190: 2187: 2186: 2182: 2167: 2163: 2157: 2154: 2143: 2139: 2133: 2130: 2119: 2115: 2109: 2106: 2095: 2091: 2085: 2082: 2071: 2067: 2061: 2058: 2053: 2049: 2045: 2043:0-8186-7508-X 2039: 2035: 2031: 2027: 2023: 2016: 2013: 2008: 1995: 1987: 1983: 1979: 1975: 1968: 1965: 1957: 1951: 1948: 1943: 1937: 1934: 1929: 1923: 1920: 1915: 1902: 1893: 1888: 1881: 1878: 1872: 1867: 1860: 1857: 1849: 1843: 1841: 1839: 1837: 1835: 1831: 1826: 1822: 1818: 1817: 1809: 1807: 1805: 1801: 1794: 1790: 1787: 1786: 1782: 1778: 1775: 1773: 1770: 1768: 1765: 1763: 1760: 1758: 1755: 1753: 1750: 1749: 1748: 1746: 1742: 1735: 1732: 1730: 1727: 1726: 1725: 1723: 1719: 1714: 1711: 1707: 1703: 1694: 1687: 1683: 1680: 1678: 1675: 1673: 1672:Mari, Foundry 1670: 1668: 1667:Nuke, Foundry 1665: 1663: 1660: 1658: 1655: 1654: 1653: 1651: 1647: 1643: 1638: 1636: 1635:Bézier curves 1631: 1627: 1623: 1619: 1610: 1603: 1601: 1599: 1595: 1591: 1586: 1584: 1580: 1576: 1567: 1560: 1556: 1553: 1551: 1548: 1547: 1546: 1539: 1536: 1533: 1530: 1527: 1526: 1525: 1523: 1519: 1512: 1507: 1504: 1503: 1502: 1499: 1498:software code 1491: 1488: 1485: 1481: 1478: 1477: 1476: 1474: 1466: 1464: 1448: 1445: 1442: 1439: 1436: 1432: 1428: 1425: 1422: 1419: 1416: 1413: 1391: 1388: 1385: 1382: 1379: 1375: 1371: 1368: 1365: 1362: 1359: 1337: 1334: 1331: 1328: 1325: 1321: 1298: 1295: 1292: 1289: 1286: 1282: 1250: 1247: 1244: 1241: 1238: 1233: 1230: 1227: 1224: 1221: 1218: 1208: 1205: 1202: 1199: 1196: 1192: 1183: 1180: 1177: 1174: 1171: 1167: 1163: 1158: 1155: 1152: 1149: 1146: 1141: 1138: 1135: 1132: 1129: 1126: 1123: 1113: 1111: 1103: 1101: 1098: 1082: 1079: 1076: 1073: 1070: 1065: 1062: 1059: 1056: 1053: 1050: 1047: 1023: 1020: 1017: 1014: 1011: 1007: 1003: 1000: 997: 994: 991: 969: 966: 963: 960: 957: 953: 924: 921: 918: 915: 912: 907: 904: 901: 898: 895: 892: 882: 879: 876: 873: 870: 866: 862: 857: 854: 851: 848: 845: 840: 837: 834: 831: 828: 825: 822: 812: 809: 807: 803: 799: 791: 789: 785: 783: 777: 775: 771: 767: 759: 757: 753: 737: 734: 731: 728: 725: 720: 717: 714: 711: 708: 705: 702: 678: 675: 672: 669: 666: 662: 658: 655: 652: 649: 646: 624: 621: 618: 615: 612: 608: 579: 576: 573: 570: 567: 562: 559: 556: 553: 550: 547: 537: 534: 531: 528: 525: 521: 517: 512: 509: 506: 503: 500: 495: 492: 489: 486: 483: 480: 477: 467: 464: 462: 458: 450: 446: 443: 441: 438: 437: 436: 433: 431: 427: 422: 418: 409: 402: 400: 398: 390: 387: 385: 382: 380: 377: 376: 375: 369: 365: 361: 360: 359: 357: 353: 349: 345: 341: 334: 332: 325: 321: 318: 316: 313: 311: 307: 304: 302: 299: 297: 296:Mari, Foundry 294: 292: 291:Nuke, Foundry 289: 287: 284: 282: 279: 278: 277: 269: 263: 260: 258: 255: 253: 249: 247: 243: 242: 241: 239: 235: 231: 227: 223: 219: 212: 208: 206: 202: 200: 197: 196: 195: 193: 189: 185: 180: 178: 174: 170: 166: 158: 156: 155:their tasks. 153: 148: 146: 142: 138: 133: 131: 127: 123: 119: 115: 111: 107: 102: 99: 95: 91: 87: 83: 79: 76:derived from 75: 71: 67: 63: 59: 54: 52: 48: 44: 40: 36: 32: 26: 21: 2333:cite journal 2297:cite journal 2240: 2236: 2215:cite journal 2169:. Retrieved 2165: 2156: 2145:. Retrieved 2141: 2132: 2121:. Retrieved 2117: 2108: 2097:. Retrieved 2093: 2084: 2073:. Retrieved 2069: 2060: 2025: 2015: 1994:cite journal 1967: 1950: 1936: 1922: 1901:cite journal 1880: 1859: 1815: 1744: 1738: 1721: 1715: 1701: 1699: 1652:industries. 1641: 1639: 1617: 1615: 1587: 1572: 1543: 1516: 1495: 1482:, a popular 1470: 1273: 1107: 1099: 944: 810: 795: 786: 778: 763: 754: 599: 465: 454: 434: 416: 414: 393: 373: 338: 329: 274: 261: 256: 250: 244: 215: 209: 203: 198: 181: 162: 149: 136: 134: 103: 78:base classes 55: 30: 29: 1700:The use of 1616:The use of 802:source code 774:source code 397:source code 368:source code 348:source code 340:Node graphs 222:RAND Tablet 165:Eric Hosick 135:The use of 58:source code 43:source code 41:. Both the 2288:1606.00025 2243:(1): 1–4. 2183:References 2171:2020-12-21 2147:2020-12-21 2123:2020-12-21 2099:2020-12-21 2075:2020-12-21 1650:video game 1630:video game 1467:Node Types 1110:data types 1104:Node Links 798:data types 770:data types 457:executable 417:node graph 403:Node Graph 356:video game 70:base class 39:node graph 2319:CiteSeerX 2253:CiteSeerX 2201:CiteSeerX 1887:CiteSeerX 806:execution 782:execution 766:execution 461:execution 350:. In the 252:subparts. 226:Sketchpad 86:instances 2377:Category 2052:36822160 1986:18983760 1783:See also 1594:executed 1575:topology 1473:executed 234:Alan Kay 120:for the 98:executes 94:pointers 90:executes 82:pointers 60:for the 45:and the 2245:Bibcode 1682:Blender 1644:in the 194:today. 169:Twitter 159:History 130:DirectX 108:of the 74:classes 66:classes 25:Blender 2321:  2255:  2203:  2050:  2040:  1984:  1889:  1590:cycles 1583:graphs 1274:where 945:where 600:where 363:nodes. 152:debate 143:, and 126:OpenGL 2283:arXiv 2279:(PDF) 2048:S2CID 1982:S2CID 1959:(PDF) 1866:arXiv 1851:(PDF) 1795:Notes 1579:Nodes 1522:mouse 430:mouse 33:is a 2346:help 2310:help 2228:help 2038:ISBN 2007:help 1914:help 1648:and 1646:film 1628:and 1626:film 1480:Nuke 1313:and 451:Node 354:and 352:film 246:two. 205:way. 128:and 124:are 118:APIs 104:The 56:The 2263:doi 2241:104 2030:doi 1974:doi 1821:hdl 1704:in 1620:in 426:API 182:In 167:on 122:GPU 114:GPU 84:to 2379:: 2337:: 2335:}} 2331:{{ 2301:: 2299:}} 2295:{{ 2281:. 2261:. 2251:. 2239:. 2219:: 2217:}} 2213:{{ 2164:. 2140:. 2116:. 2092:. 2068:. 2046:. 2036:. 2024:. 1998:: 1996:}} 1992:{{ 1980:. 1905:: 1903:}} 1899:{{ 1833:^ 1803:^ 1747:. 1600:. 808:. 776:. 415:A 308:— 53:. 2348:) 2344:( 2327:. 2312:) 2308:( 2291:. 2285:: 2269:. 2265:: 2247:: 2230:) 2226:( 2209:. 2174:. 2150:. 2126:. 2102:. 2078:. 2054:. 2032:: 2009:) 2005:( 1988:. 1976:: 1961:. 1930:. 1916:) 1912:( 1895:. 1874:. 1868:: 1853:. 1827:. 1823:: 1633:( 1449:B 1446:e 1443:d 1440:o 1437:n 1433:s 1429:t 1426:u 1423:p 1420:t 1417:u 1414:o 1392:A 1389:e 1386:d 1383:o 1380:n 1376:s 1372:t 1369:u 1366:p 1363:n 1360:i 1338:A 1335:e 1332:d 1329:o 1326:n 1322:f 1299:B 1296:e 1293:d 1290:o 1287:n 1283:f 1271:, 1259:) 1256:) 1251:A 1248:e 1245:d 1242:o 1239:n 1234:s 1231:t 1228:u 1225:p 1222:n 1219:i 1214:( 1209:A 1206:e 1203:d 1200:o 1197:n 1193:f 1189:( 1184:B 1181:e 1178:d 1175:o 1172:n 1168:f 1164:= 1159:B 1156:e 1153:d 1150:o 1147:n 1142:s 1139:t 1136:u 1133:p 1130:t 1127:u 1124:o 1083:A 1080:e 1077:d 1074:o 1071:n 1066:s 1063:t 1060:u 1057:p 1054:t 1051:u 1048:o 1024:A 1021:e 1018:d 1015:o 1012:n 1008:s 1004:t 1001:u 998:p 995:n 992:i 970:A 967:e 964:d 961:o 958:n 954:f 942:, 930:) 925:A 922:e 919:d 916:o 913:n 908:s 905:t 902:u 899:p 896:n 893:i 888:( 883:A 880:e 877:d 874:o 871:n 867:f 863:= 858:A 855:e 852:d 849:o 846:n 841:s 838:t 835:u 832:p 829:t 826:u 823:o 738:A 735:e 732:d 729:o 726:n 721:s 718:t 715:u 712:p 709:t 706:u 703:o 679:A 676:e 673:d 670:o 667:n 663:s 659:t 656:u 653:p 650:n 647:i 625:A 622:e 619:d 616:o 613:n 609:f 597:, 585:) 580:A 577:e 574:d 571:o 568:n 563:s 560:t 557:u 554:p 551:n 548:i 543:( 538:A 535:e 532:d 529:o 526:n 522:f 518:= 513:A 510:e 507:d 504:o 501:n 496:s 493:t 490:u 487:p 484:t 481:u 478:o

Index


Blender
software design
node graph
source code
user interface
visual programming language
source code
software application
classes
base class
classes
base classes
pointers
instances
executes
pointers
executes
user interface
software application
GPU
APIs
GPU
OpenGL
DirectX
graphics, games
machine learning
debate
Eric Hosick
Twitter

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.