A node is a block that represents either some physical device like a sensor, motor, or relay, or some operation such as addition, comparison, or text concatenation.
Each node has one or more inputs that accept values to be processed, and outputs that return results. Creating a link from an output to an input builds a path for data, allowing one node to feed values into another. Use this simple yet powerful principle to define what the program does.
You’re protected against creating programs that don’t compile. If it links, it’s likely going to work.
Add a new node and link to make the next little improvement.
XOD generates native code for the target platform. No need for Firmata or a controlling PC. The board runs fully autonomously, just as if it was programmed with native tools.
Nodes can be built from other nodes. The process is simple. Connect two or more existing nodes together and...you’re done. Use your newly created composite node as many times as you want. That’s how modularity is done in XOD.
Create and share your nodes with the world. Explore what others have created. Search for community nodes and reuse them in your project.
XOD isn’t locked to a particular vendor or platform. In fact, we intend to provide every tool necessary to communicate with any component, board, or module. XOD is currently compatible with Arduino boards, and several popular modules. The body of supported components grows.
The XOD language, XOD IDE, and library sources are available on GitHub. We believe that’s the best way to benefit xoders, implement new features, squash bugs, build a powerful ecosystem, and make XOD reliable and exciting.
The XOD project is in its early stages. There are many things to do before it could be used in production. We appretiate any feedback on our forum.
There are plenty of high-level and low-level nodes that let you implement very complex things. If you can do something on a target platform with a native programming language and tools, our goal is for you to be able to do it in XOD.