Fabrik is a visual programming environment - a kit of computational and user-interface components that can be "wired" together to build new components and useful applications. The Fabrik diagrams utilize bidirectional dataflow connections as shorthand for multiple paths of flow. Built on object-oriented foundations. The Fabrik components can compute arbitrary objects as outputs. Animation and music can be programmed in this way and the user interface can even be extended by generating graphical structures that depend on other data. The interactive type system guards against meaningless connections. Each Fabrik component can be compiled into an object with access methods corresponding to each of the possible paths of data propagation.
|inst var name||description|
|c1||a TimesDivide component|
|c2||generates the constant 9/5|
|c3||a PlusMinus component|
|c4||generates the constant 32|
|v1||holds Centigrade value|
|v2||holds the constant 9/5|
|v3||holds intermediate result between PlusMinus & TimesDivide|
|v4||holds the constant 32|
|v5||holds Farenheit value|
Instance structure for FtoC application.p1: x "called when a new Centigrade value arrives from the left" c3 p1: x. "traverse the Times/Divide from left" c5 p1: v3. "traverse the Plus/Minus from left" self export: v5 outChannel: 2 "ship v5 value out output channel 2" p2: x "called when a new Farenheit value arrives from the right" c5 p2: x. "traverse the Plus/Minus from right" c3 p2: v3. "traverse the Times/Divide from right" self export: v1 outChannel: 1 "ship v1 value out output channel 1" Compiled methods for FtoC application.