Home » Experiments » Nodable – node oriented programming

Nodable – node oriented programming

Nodable is simple node-able software. The goal of this project is to develop a tool able to edit expressions in both graphic and text way.

The first version of the program was a command line. Now the software uses Dear ImGui (by Omar Cornut) to draw a nice GUI:

An expression example

A quick demo video :

 

Architecture

The software is built to be dynamically reflective. The base class Object has members called Values. Members can be added or removed at runtime. A Value is a Variant class that can handle basic data types such as Booleans (bool), Numbers (double) or Strings (std::string).

Two Values can be linked by a Wire. A Wire is an oriented edge, so it has a source and a target Value.

The derived class Entity is an Object able to attach Components on it. Component is the abstract base class for all components. For now there are ony three components :

  • Views : to draw the entity on screen.
  • Operations : to perform a computation.
  • Container : to contain other entities.

Variable class is an Entity with a single member named « value ».

Lexer class is an Entity able to convert an expression to a graph.

Application is a clas to rule them all !

Source code

If you’re interested by the code source, you can download it from github.com

History

 

The video below show a demo of Nodable 0.1 (terminal only) :

 

Bibliography

Laisser un commentaire