Welcome to the Embrio blog.   This blog will contain posts about the development of the software and deeper discussions about the philosophy behind the software than the documents and tutorials can get into.

Embrio is an “agent based” visual programming environment for real time embedded and “embodied” software.  “Agent based” refers to a structure where the program is broken down into individual pieces called “agents” that each do one job, are always running, and communicate by turning on and off other agents.   An agent in Embrio is implemented as a group of interconnected nodes that update at a configurable frequency.  All agents and all nodes that make up their agents continuously update for as long as the program is running.  This highly parallel structure (loosely based on the brain) is quite different than the sequential structure of a traditional program, and is well suited for embedded and embodied software.

Embedded and embodied software is software that controls a physical item, like a robot.  It is quite different than traditional software which runs on a screen.  A regular application reacts to predictable user input, like mouse clicks and key presses.  Software running a physical body needs to react to the noisy and chaotic real world.  I generally think of embedded and embodied software as different; embedded software runs on a physical device, but the inputs to the device can be quite predictable, like a thermostat or coffee maker.  “Embodied” software controls a robot or virtual character, it moves a body through the world, and has to interact with a dynamic environment.  Embrio was designed specifically for embodied software, and it is here where the difference between its structure and the structure of a traditional program have the most impact, but it also makes writing embedded software much easier and more fun.

Further blog posts will delve deeper into these concepts and how they are addressed in Embrio.