Urbi is a robotics software platform. It includes a C++/Java middleware API called UObject to interface components such as motors, cameras, and algorithms, and an innovative scripting language, urbiscript, with built-in support for parallel and event-based programming, used to write high-level behaviors and orchestrate the interactions between components. UObject components are built as shared libraries exposed as native objects within urbiscript, and either hot-plugged in a running Urbi engine, or started as a remote autonomous process communicating with the engine via the network. At any time, new urbiscript code can be sent to a running Urbi engine via a simple telnet, to introspect the state of components, modify existing code, or add new behaviors. Urbi is cross-platform and supports several robots (Gostai Jazz, Lego Mindstorms, Aldebaran Nao, Segway RMP, Spykee, Bioloid, etc.) and a simulator (Webots).
The DUP System is a language for productive, parallel, and distributed stream processing on POSIX systems. Programming with DUP is similar to writing shell scripts with pipes except that filters can have multiple inputs and outputs. Furthermore, the computation can be spread across multiple computers. A distinguishing characteristic of DUP compared to other streaming languages is that filters can be written in almost any programming language. The DUP System distribution includes the runtime system and a collection of over a dozen multi-stream filters.
libpersist is a small library of C++ base classes and templates providing the capability to store and load objects in their entirety across executions. It also provides for object relocation between threads in a NUMA (non-uniform memory access) parallel processing environment. Objects are stored to disk as POD. They are reconstructed when reloaded into memory. Relocation is a special case of persistence, requiring reconstruction after the POD has been moved in memory. After all objects have been relocated, all references to the objects are swizzled (their IDs are resolved to their addresses), so that they can be dereferenced efficiently.
Jug is a task-based parallelism framework. Jug allows you to write code that is broken up into tasks and run different tasks on different processors. It uses the filesystem to communicate between processes and works correctly over NFS, so you can coordinate processes on different machines. Jug is a pure Python implementation and should work on any platform that can run Python.
YML is a research project that aims to provide tools for using global computing middleware such as GRID, peer to peer, and metacomputing environments. The YML software architecture enables the definition of parallel applications, independently of the underlying middleware used. Parallel applications are defined using a workflow language called YvetteML.