Implementar una interfaz gráfica basada en nodos?

Me gustaría implementar una interfaz nodal, básicamente unaTROZO DE CUER donde cada nodo realiza una operación en sus conexiones de entrada y emite algo (que puede conectar a otro nodo)

Algunas aplicaciones de ejemplo:

Apple "Shake" - captura de pantall The Foundrys "Nuke" - captura de pantall MindNode - captura de pantall vvvv - capturas de pantallaQuartz Composer - captura de pantall

omo primer objetivo, me gustaría tener un aplicación gráfica con solo 2 nodos. Un "número" que simplemente genera un número fijo y un nodo "Agregar", que toma dos entradas y genera la suma de las dos.

Como la gente ha respondido hasta ahora, tengo una idea aproximada de cómo representar los datos en el código, por ejemplo, en el pseudocódigo Python'y looking:

class Number:
    def __init__(self, value):
        self.value = value

    def eval(self):
        return self.value

class Add:
    def __init__(self, input1, input2):
        self.input1 = input1
        self.input2 = input2

    def eval(self):
        return self.input1.eval() + self.input2.eval()


a = Number(20)
b = Number(72)

adder = Add(a, b)
print adder.eval()

¿Cómo podría obtener una interfaz gráfica de usuario personalizada alrededor de esto? ¡Algo parecido a lo siguiente, pero un poco menos dibujado a mano!

¿Dónde comenzaría? Actualmente planeo escribirlo en Objective-C / Cocoa, aunque estoy más que abierto a sugerencias para otros idiomas.

Respuestas a la pregunta(7)

Su respuesta a la pregunta